nl_tokens: 15 Program
pl_tokens: function parseSourceElement ( ) { var <mask> ; if ( lookahead . type === Token . Keyword ) { switch ( lookahead . value ) { case 'const' : case 'let' : return parseConstLetDeclaration ( lookahead . value ) ; case 'function' : return parseFunctionDeclaration ( ) ; case 'export' : throwErrorTolerant ( { } , Messages . IllegalExportDeclaration ) ; return parseExportDeclaration ( ) ; case 'import' : throwErrorTolerant ( { } , Messages . IllegalImportDeclaration ) ; return parseImportDeclaration ( ) ; case 'interface' : if ( lookahead2 ( ) . type === Token . Identifier ) { return parseInterface ( ) ; } return parseStatement ( ) ; default : return parseStatement ( ) ; } } if ( matchContextualKeyword ( 'type' ) && lookahead2 ( ) . type === Token . Identifier ) { return parseTypeAlias ( ) ; } if ( matchContextualKeyword ( 'interface' ) && lookahead2 ( ) . type === Token . Identifier ) { return parseInterface ( ) ; } if ( matchContextualKeyword ( 'declare' ) ) { token = lookahead2 ( ) ; if ( token . type === Token . Keyword ) { switch ( token . value ) { case 'class' : return parseDeclareClass ( ) ; case 'function' : return parseDeclareFunction ( ) ; case 'var' : return parseDeclareVariable ( ) ; } } else if ( token . type === Token . Identifier && token . value === 'module' ) { return parseDeclareModule ( ) ; } } if ( lookahead . type !== Token . EOF ) { return parseStatement ( ) ; } }