Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program ::= SourceElements?
- SourceElements ::= SourceElement | SourceElements SourceElement
- SourceElement ::= Statement | FunctionDeclaration
- FunctionDeclaration ::= 'function' Identifier '(' FormalParameterList? ')' '{' FunctionBody '}'
- FormalParameterList ::= Identifier | FormalParameterList ',' Identifier
- FunctionBody ::= SourceElements?
- Statement ::= Block | VariableStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ContinueStatement | BreakStatement |
- ReturnStatement | WithStatement | LabelledStatement | SwitchStatement | ThrowStatement | TryStatement | DebuggerStatement
- Block ::= '{' StatementList? '}'
- StatementList ::= Statement | StatementList Statement
- VariableStatement ::= 'var' VariableDeclarationList ';'
- VariableDeclarationList ::= VariableDeclaration | VariableDeclarationList ',' VariableDeclaration
- VariableDeclaration ::= Identifier Initialiser?
- Initialiser ::= '=' AssignmentExpression
- EmptyStatement ::= ';'
- ExpressionStatement ::= (Expression - ('{'|'function')) ';'
- IfStatement ::= 'if' '(' Expression ')' Statement 'else' Statement | 'if' '(' Expression ')' Statement
- IterationStatement ::= 'do' Statement 'while' '(' Expression ')'';' | 'while' '(' Expression ')' Statement |
- 'for' '(' ExpressionNoIn? ';' Expression? ';' Expression? ')' Statement | 'for' '(' 'var' VariableDeclarationListNoIn ';' Expression? ';' Expression? ')' Statement |
- 'for' '(' LeftHandSideExpression 'in' Expression ')' Statement | 'for' '(' 'var' VariableDeclarationNoIn 'in' Expression ')' Statement
- ContinueStatement ::= 'continue' ';' | 'continue' (. - LineTerminator) Identifier ';'
- BreakStatement ::= 'break' ';'| 'break' (. - LineTerminator ) Identifier ';'
- ReturnStatement ::= 'return' ';' | 'return' (. - LineTerminator ) Expression ';'
- WithStatement ::= 'with' '(' Expression ')' Statement
- SwitchStatement ::= 'switch' '(' Expression ')' CaseBlock
- CaseBlock ::= '{' CaseClauses? '}' | '{' CaseClauses? DefaultClause CaseClauses? '}'
- CaseClauses ::= CaseClause | CaseClauses CaseClause
- CaseClause ::= 'case' Expression ':' StatementList?
- DefaultClause ::= 'default' ':' StatementList?
- LabelledStatement ::= Identifier ':' Statement
- ThrowStatement ::= 'throw' (. - LineTerminator ) Expression ';'
- TryStatement ::= 'try' Block Catch | 'try' Block Finally | 'try' Block Catch Finally
- Catch ::= 'catch' '(' Identifier ')' Block
- Finally ::= 'finally' Block
- DebuggerStatement ::= 'debugger' ';'
- Expression ::= AssignmentExpression | Expression ',' AssignmentExpression
- AssignmentExpression ::= ConditionalExpression | LeftHandSideExpression '=' AssignmentExpression | LeftHandSideExpression AssignmentOperator AssignmentExpression
- LeftHandSideExpression ::= NewExpression | CallExpression
- MemberExpression ::= PrimaryExpression | FunctionExpression | MemberExpression '[' Expression ']' | MemberExpression '.' IdentifierName | 'new' MemberExpression Arguments
- PrimaryExpression ::= 'this' | Identifier | Literal | ArrayLiteral | ObjectLiteral | '(' Expression ')'
- ArrayLiteral ::= '[' Elison? ']' | '[' ElementList ']' | '[' ElementList ',' Elison? ']'
- ElementList ::= Elison? AssignmentExpression | ElementList ',' Elison? AssignmentExpression
- Elison ::= ',' | Elison ','
- ObjectLiteral ::= '{' '}' | '{' PropertyNameAndValueList '}' | '{' PropertyNameAndValueList ',' '}'
- PropertyNameAndValueList ::= PropertyAssignment | PropertyNameAndValueList ',' PropertyAssignment
- PropertyAssignment ::= PropertyName ':' AssignmentExpression | 'get' PropertyName '(' ')' '{' FunctionBody '}' | 'set' PropertyName '(' PropertySetParameterList ')' '{' FunctionBody '}'
- PropertyName ::= IdentifierName | StringLiteral | NumericLiteral
- PropertySetParameterList ::= Identifier
- FunctionExpression ::= 'function' Identifier? '(' FormalParameterList? ')' '{' FunctionBody '}'
- NewExpression ::= MemberExpression | 'new' NewExpression
- CallExpression ::= MemberExpression Arguments | CallExpression Arguments | CallExpression '[' Expression ']' | CallExpression '.' IdentifierName
- Arguments ::= '(' ')' | '(' ArgumentList ')'
- ArgumentList ::= AssignmentExpression | ArgumentList ',' AssignmentExpression
- ConditionalExpression ::= LogicalORExpression | LogicalORExpression '?' AssignmentExpression ':' AssignmentExpression
- LogicalORExpression ::= LogicalANDExpression | LogicalORExpression '||' LogicalANDExpression
- LogicalANDExpression ::= BitwiseORExpression | LogicalANDExpression '&&' BitwiseORExpression
- BitwiseORExpression ::= BitwiseXORExpression | BitwiseORExpression '|' BitwiseXORExpression
- BitwiseXORExpression ::= BitwiseANDExpression | BitwiseXORExpression '^' BitwiseANDExpression
- BitwiseANDExpression ::= EqualityExpression | BitwiseANDExpression '&' EqualityExpression
- EqualityExpression ::= RelationalExpression | EqualityExpression '==' RelationalExpression | EqualityExpression '!=' RelationalExpression | EqualityExpression '===' RelationalExpression | EqualityExpression '!==' RelationalExpression
- RelationalExpression ::= ShiftExpression | RelationalExpression '<' ShiftExpression | RelationalExpression '>' ShiftExpression | RelationalExpression '<=' ShiftExpression | RelationalExpression '>=' ShiftExpression | RelationalExpression 'instanceof' ShiftExpression | RelationalExpression 'in' ShiftExpression
- ShiftExpression ::= AdditiveExpression | ShiftExpression '<<' AdditiveExpression | ShiftExpression '>>' AdditiveExpression | ShiftExpression '>>>' AdditiveExpression
- AdditiveExpression ::= MultiplicativeExpression | AdditiveExpression '+' MultiplicativeExpression | AdditiveExpression '-' MultiplicativeExpression
- MultiplicativeExpression ::= UnaryExpression | MultiplicativeExpression '*' UnaryExpression | MultiplicativeExpression '/' UnaryExpression | MultiplicativeExpression '%' UnaryExpression
- UnaryExpression ::= PostfixExpression | 'delete' UnaryExpression | 'void' UnaryExpression | 'typeof' UnaryExpression | '++' UnaryExpression | '--' UnaryExpression | '+' UnaryExpression | '-' UnaryExpression | '~' UnaryExpression | '!' UnaryExpression
- PostfixExpression ::= LeftHandSideExpression | LeftHandSideExpression (. - LineTerminator) '++' | LeftHandSideExpression (. - LineTerminator) '--'
- AssignmentOperator ::= '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|='
- LineTerminator ::= '<LF>' | '<CR>' | '<LS>' | '<PS>'
- Identifier ::= IdentifierName - ReservedWord
- IdentifierName ::= IdentifierStart | IdentifierName IdentifierPart
- IdentifierStart ::= UnicodeLetter | '$' | '_' | '\' UnicodeEscapeSequence
- IdentifierPart ::= IdentifierStart | UnicodeCombiningMark | UnicodeDigit | UnicodeConnectorPunctuation | '<ZWNJ>' | '<ZWJ>'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement