MCPcopy
hub / github.com/jquery/esprima / parseStatement

Method parseStatement

src/parser.ts:2631–2715  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2629 // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations
2630
2631 parseStatement(): Node.Statement {
2632 let statement: Node.Statement;
2633 switch (this.lookahead.type) {
2634 case Token.BooleanLiteral:
2635 case Token.NullLiteral:
2636 case Token.NumericLiteral:
2637 case Token.StringLiteral:
2638 case Token.Template:
2639 case Token.RegularExpression:
2640 statement = this.parseExpressionStatement();
2641 break;
2642
2643 case Token.Punctuator:
2644 const value = this.lookahead.value;
2645 if (value === '{') {
2646 statement = this.parseBlock();
2647 } else if (value === '(') {
2648 statement = this.parseExpressionStatement();
2649 } else if (value === ';') {
2650 statement = this.parseEmptyStatement();
2651 } else {
2652 statement = this.parseExpressionStatement();
2653 }
2654 break;
2655
2656 case Token.Identifier:
2657 statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();
2658 break;
2659
2660 case Token.Keyword:
2661 switch (this.lookahead.value) {
2662 case 'break':
2663 statement = this.parseBreakStatement();
2664 break;
2665 case 'continue':
2666 statement = this.parseContinueStatement();
2667 break;
2668 case 'debugger':
2669 statement = this.parseDebuggerStatement();
2670 break;
2671 case 'do':
2672 statement = this.parseDoWhileStatement();
2673 break;
2674 case 'for':
2675 statement = this.parseForStatement();
2676 break;
2677 case 'function':
2678 statement = this.parseFunctionDeclaration();
2679 break;
2680 case 'if':
2681 statement = this.parseIfStatement();
2682 break;
2683 case 'return':
2684 statement = this.parseReturnStatement();
2685 break;
2686 case 'switch':
2687 statement = this.parseSwitchStatement();
2688 break;

Callers 6

parseIfClauseMethod · 0.95
parseDoWhileStatementMethod · 0.95
parseWhileStatementMethod · 0.95
parseWithStatementMethod · 0.95

Calls 15

parseBlockMethod · 0.95
parseEmptyStatementMethod · 0.95
matchAsyncFunctionMethod · 0.95
parseBreakStatementMethod · 0.95
parseDoWhileStatementMethod · 0.95
parseForStatementMethod · 0.95
parseIfStatementMethod · 0.95

Tested by

no test coverage detected