📄 ecma.txt
字号:
PostfixExpression ContinueStatement BreakStatement ReturnStatement ThrowStatementSourceCharacter :: any Unicode characterPrimaryExpression :: 'this' Identifier Literal ArrayLiteral ObjectLiteral '(' Expression ')'ArrayLiteral :: '[' Elision/opt ']' '[' ElementList ']' '[' ElementList ',' Elision/opt ']'[can be simplified to:]ArrayLiteral :: '[' Elision/opt ']' '[' ElementList Elision/opt ']'ElementList :: Elision/opt AssignmentExpression ElementList ',' Elision/opt AssignmentExpressionElision :: ',' Elision ','ObjectLiteral :: '{' PropertyNameAndValueList/opt '}'PropertyNameAndValueList :: PropertyName ':' AssignmentExpression PropertyNameAndValueList ',' PropertyName ':' AssignmentExpressionPropetyName :: Identifier StringLiteral NumericLiteralMemberExpression :: PrimaryExpression FunctionExpression MemberExpression '[' Expression ']' MemberExpression '.' Identifier 'new' MemberExpression ArgumentsNewExpression :: MemberExpression 'new' NewExpressionCallExpression :: MemberExpression Arguments CallExpression Arguments CallExpression '[' Expression ']' CallExpression '.' IdentifierArguemnts :: '(' ArgumentList/opt ')'ArgumentList :: AssignmentExpression ArgumentList ',' AssignmentExpressionLeftHandSideExpression :: NewExpression CallExpressionPostfixExpression :: LeftHandSideExpression LeftHandSideExpression [no LineTerminator here] '++' LeftHandSideExpression [no LineTerminator here] '--'UnaryExpression :: PostfixExpression 'delete' UnaryExpression 'void' UnaryExpression 'typeof' UnaryExpression '++' UnaryExpression '--' UnaryExpression '+' UnaryExpression '-' UnaryExpression '~' UnaryExpression '!' UnaryExpression['void' returns 'undefined']['typeof' returns one of "undefined", "oject", "boolean","number", "string", "function", <implementation dependent>]MultiplicativeExpression :: UnaryExpression MultiplicativeExpression '*' UnaryExpression MultiplicativeExpression '/' UnaryExpression MultiplicativeExpression '%' UnaryExpressionAdditiveExpression :: MultiplicativeExpression AdditiveExpression '+' MultiplicativeExpression AdditiveExpression '-' MultiplicativeExpressionShiftExpression :: AdditiveExpression ShiftExpression '<<' AdditiveExpression ShiftExpression '>>' AdditiveExpression ShiftExpression '>>>' AdditiveExpressionRelationalExpression :: ShiftExpression RelationalExpression '<' ShiftExpression RelationalExpression '>' ShiftExpression RelationalExpression '<=' ShiftExpression RelationalExpression '>=' ShiftExpression RelationalExpression 'instanceof' ShiftExpression RelationalExpression 'in' ShiftExpressionRelationalExpressionNoIn :: ShiftExpression RelationalExpressionNoIn '<' ShiftExpression RelationalExpressionNoIn '>' ShiftExpression RelationalExpressionNoIn '<=' ShiftExpression RelationalExpressionNoIn '>=' ShiftExpression RelationalExpressionNoIn 'instanceof' ShiftExpressionEqualityExpression :: RelationalExpression EqualityExpression '==' RelationalExpression EqualityExpression '!=' RelationalExpression EqualityExpression '===' RelationalExpression EqualityExpression '!==' RelationalExpressionEqualityExpressionNoIn :: RelationalExpressionNoIn EqualityExpressionNoIn '==' RelationalExpressionNoIn EqualityExpressionNoIn '!=' RelationalExpressionNoIn EqualityExpressionNoIn '===' RelationalExpressionNoIn EqualityExpressionNoIn '!==' RelationalExpressionNoInBitwiseANDExpression :: EqualityExpression BitwiseANDExpression '&' EqualityExpressionBitwiseANDExpressionNoIn :: EqualityExpressionNoIn BitwiseANDExpressionNoIn '&' EqualityExpressionNoInBitwiseXORExpression :: BitwsieANDExpression BitwiseXORExpression '^' BitwsieANDExpressionBitwiseXORExpressionNoIn :: BitwsieANDExpressionNoIn BitwiseXORExpressionNoIn '^' BitwsieANDExpressionNoInBitwiseORExpression :: BitwsieXORExpression BitwiseORExpression '^' BitwsieXORExpressionBitwiseORExpressionNoIn :: BitwsieXORExpressionNoIn BitwiseORExpressionNoIn '^' BitwsieXORExpressionNoInLogicalANDExpression :: BitwiseORExpression LogicalANDExpression '&&' BitwiseORExpressionLogicalANDExpressionNoIn :: BitwiseORExpressionNoIn LogicalANDExpressionNoIn '&&' BitwiseORExpressionNoInLogicalORExpression :: LogicalANDExpression LogicalORExpression '||' LogicalANDExpressionLogicalORExpressionNoIn :: LogicalANDExpressioNoIn LogicalORExpressionNoIn '||' LogicalANDExpressioNoInConditionalExpression :: LogicalORExpression LogicalORExpression '?' AssignmentExpression ':' AssignmentExpressionConditionalExpressionNoIn :: LogicalORExpressionNoIn LogicalORExpressionNoIn '?' AssignmentExpression ':' AssignmentExpressionNoInAssignmentExpression :: ConditionalExpression LeftHandSideExpression AssignmentOperator AssignmentExpressionAssignmentExpressionNoIn :: ConditionalExpressionNoIn LeftHandSideExpression AssignmentOperator AssignmentExpressionNoInAssignmentOperator :: '=' '*=' '/=' '%=' '+=' '-=' '<<=' '>>=' '>>>=' '&=' '^=' '|='Expression :: AssignmentExpression Expression ',' AssignmentExpressionExpresionNoIn :: AssignmentExpressionNoIn ExpressionNoIn ',' AssignmentExpressionNoInStatement :: Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatementBlock :: '{' StatementList/opt '}'StatementList :: Statement StatementList StatementVariableStatement:: 'var' VariableDeclarationList ';'VariableDeclarationList :: VariableDeclaration VariableDeclarationList ',' VariableDeclarationVariableDeclarationListNoIn :: VariableDeclarationNoIn VariableDeclarationListNoIn ',' VariableDeclarationNoInVariableDeclaration :: Identifier Initializer/optVariableDeclarationNoIn :: Identifier InitializerNoIn/optInitializer :: '=' AssignmentExpressionInitializerNoIn :: '=' AssignmentExpressionNoInEmptyStatement :: ';'ExpressionStatement :: Expression ';' BUT NOT '{' or 'function'IfStatement :: 'if' '(' Expression ')' Statement 'else' Statement 'if' '(' Expression ')' StatementIterationStatement :: 'do' Statement 'while' '(' Expression ')' ';' 'while' '(' Expression ')' statement 'for' '(' ExpressionNoIn/opt ';' ExpressionNoIn/opt ';' ExpressionNoIn/opt ')' Statement 'for' '(' 'var' VariableDeclarationListNoIn ';' ExpressionNoIn/opt ';' ExpressionNoIn/opt ')' Statement 'for' '(' LeftHandSideExpression 'in' Expression ')' Statement 'for' '(' 'var' VariableDeclarationListNoIn 'in' Expression ')' StatementContinueStatement :: 'continue' [no LineTerminator here] Identifier/opt ';'BreakStatement :: 'break' [no LineTerminator here] Identifier/opt ';'ReturnStatement :: 'return' [no LineTerminator here] Expression/opt ';'WithStatement :: 'with' '(' Expression ')' StatementSwitchStatement :: 'switch' '(' Expression ')' CaseBlockCaseBlock :: '{' CaseClauses/opt '}' '{' CaseClauses/opt DefaultClause CaseClauses/opt '}'CaseClauses :: CaseClause CaseClauses CaseClauseCaseClause :: 'case' Expression ':' StatementList/optDefaultClause :: 'default' ':' StatementList/optLabelledStatement :: Identifier ':' StatementThrowStatement :: 'throw' [no LineTerminator here] Expression ';'TryStatement :: 'try' Block Catch 'try' Block Finally 'try' Block Catch FinallyCatch :: 'catch' '(' Identifier ')' BlockFinally :: 'finally' BlockFunctionDeclaration :: 'function' Identifier '(' FormalParameterList/opt ')' '{' FunctionBody '}'FunctionExpression :: 'function' Identifier/opt '(' FormalParameterList/opt ')' '{' FunctionBody '}'FormalParameterList :: Identifier FormalParameterList ',' IdentifierFunctionBody :: SourceElementsProgram :: SourceElementsSourceElements :: SourceElement SourceElements SourceElementSourceElement :: Statement FunctionDeclaration[we may offer as much syntax check as we want atcompile time -- that is, on top of the minimumrequirements][we may have additional types, values, objects,properties and functions][number conversion -- only necessary if we want tocheck strings which we know are to be converted to numbers]StringNumericLiteral :: StrWhiteSpace/opt StrWhiteSpace/opt StrNumericLiteral StrWhiteSpace/optStrWhiteSpace :: StrWhiteSpaceChar StrWhiteSpace/optStrWhiteSpaceChar :: <TAB> <SP> <NBSP> <FF> <VT> <CR> <LF> <LS> <PS> <USP>StrNumericLiteral :: StrDecimalLiteral HexIntegerLiteralStrDecimalLiteral :: StrUnsignedDecimalLiteral '+' StrUnsignedDecimalLiteral '-' StrUnsignedDecimalLiteralStrUnsignedDecimalLiteral :: 'Infinity' DecimalDigits '.' DecimalDigits/opt ExponentPart/opt '.' DecimalDigits ExponentPart/opt DecimalDigits ExponentPart/opt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -