Main program: Javascript_Program
Javascript syntax:
/* != <= == >= // && || === !== !=== => </ ** ...
| Count | Terminals: | |
| Javascript_Class_Definition: An identifier | ||
| Javascript_Class_Reference: An identifier | ||
| 120 | Javascript_Comment: /* comment */ or // comment to end of line | |
| 1,315 | Javascript_Field_Definition: An identifier | |
| 262 | Javascript_Function_Definition: An identifier | |
| Javascript_Function_Reference: An identifier | ||
| Javascript_HexNumber: A hex number | ||
| 38,567 | Javascript_Identifier_Reference: An identifier | |
| 24 | Javascript_Label_Definition: An identifier | |
| 7,120 | Javascript_Literal: Literal quotes:`"' escape:\ doubled:no multiline:yes | |
| 6,386 | Javascript_Number: Number exponent_chars:eE suffix_chars:none trailing_period:yes ignore_char:none | |
| 124 | Javascript_RegularExpression: A regular expression | |
| Javascript_TemplateLiteral: Literal quotes:` escape:\ doubled:no multiline:yes | ||
| 5,054 | Javascript_Variable_Definition: An identifier | |
| Count | Statistics(*) | Tokens: |
| 1,674 | all all all | Javascript_AdditiveExpression: Javascript_Expression ("+"|"-") Javascript_Expression |
| 4,231 | all all all | Javascript_AssignmentExpression: Javascript_Expression ("="|"*="|"/="|"%="|"+="|"-="|"<<="|">>="|">>>="|"&="|"^="|"|=") Javascript_Expression |
| 6 | all all all | Javascript_BitwiseAndExpression: Javascript_Expression '&' Javascript_Expression |
| Javascript_BitwiseNotExpression: '~' Javascript_Expression | ||
| 6 | all all all | Javascript_BitwiseOrExpression: Javascript_Expression '|' Javascript_Expression |
| 2,646 | all | Javascript_BuiltInVar: ("arguments"|"false"|"null"|"String"|"super"|"this"|"true") |
| Javascript_CastExpression: '(' Javascript_Type ')' Javascript_Expression | ||
| 156 | all all all | Javascript_ClassCreationExpression: "new" Javascript_Type Javascript_ParenthesizedExpression |
| Javascript_ClassCreationWithInitializers: "new" Javascript_Type '{' Javascript_ArgumentList '}' | ||
| Javascript_ClassCreationWithSubscript: "new" Javascript_Type Javascript_Subscript* | ||
| Javascript_ClassExpr: "class" [Javascript_Class_Definition] [Javascript_ClassExtends] '{' Javascript_ClassElement* '}' | ||
| Javascript_CommentExpression: Javascript_Comment Javascript_Expression | ||
| 37 | all all | Javascript_DeleteExpression: "delete" Javascript_Expression |
| Javascript_DotClass: Javascript_Type '.' "class" | ||
| Javascript_EllipsisExpr: "..." Javascript_Expression | ||
| 1,191 | all all all none | Javascript_EqualityExpression: Javascript_Expression ("!=="|"==="|"=="|"!=") Javascript_Expression [Javascript_Comment] |
| 283 | all 1.00(0%) none all | Javascript_ExpressionList: '{' [Javascript_Comment]* [Javascript_ArgumentList] '}' |
| 4,070 | all all | Javascript_FunctionCall: Javascript_Variable Javascript_ParenthesizedExpression |
| 65 | all all all | Javascript_InExpression: Javascript_Expression "in" Javascript_Expression |
| 18 | all all all | Javascript_InstanceOfExpression: Javascript_Expression "instanceof" Javascript_Type |
| 1,229 | all all all | Javascript_LogicalAndExpression: Javascript_Expression "&&" Javascript_Expression |
| 870 | all all | Javascript_LogicalNotExpression: '!' Javascript_Expression |
| 724 | all all all | Javascript_LogicalOrExpression: Javascript_Expression "||" Javascript_Expression |
| Javascript_LogicalXorExpression: Javascript_Expression '^' Javascript_Expression | ||
| 365 | all all all | Javascript_MultiplicativeExpression: Javascript_Expression ("*"|"/"|"%") Javascript_Expression |
| 49 | all all | Javascript_NegativeExpression: ("-"|"+") Javascript_Expression |
| 114 | all all | Javascript_NewNoArgsExpression: "new" Javascript_Type |
| 548 | all 7.98 none 3.00(0%) all | Javascript_ObjectLiteral: '{' Javascript_ObjectLiteralItem* [','] [Javascript_Comment]* '}' |
| 2,461 | (all | none) | | Javascript_ObjectLiteralItem: (Javascript_ObjecLiteraltData | Javascript_ObjectFunction) |
| 2,461 | all all | | | Javascript_ObjecLiteraltData: Javascript_ObjectFieldName [Javascript_ObjectFieldValue] |
| 2,461 | (none | 47% | 53%) | | | | Javascript_ObjectFieldName: (Javascript_Number | Javascript_Literal | Javascript_Field_Definition) |
| 2,461 | all all | | | | Javascript_ObjectFieldValue: ':' Javascript_Expression |
| | | Javascript_ObjectFunction: [Javascript_Comment]* ["static"] [("get"|"set")] Javascript_FunctionImplementation | ||
| 929 | all | Javascript_Parenthesized_Expression: Javascript_ParenthesizedExpression |
| 383 | all all | Javascript_PostIncrementExpression: Javascript_Variable ("++"|"--") |
| Javascript_Power_Expression: Javascript_Expression "**" Javascript_Expression | ||
| 38 | all all | Javascript_PreIncrementExpression: ("++"|"--") Javascript_Variable |
| 719 | all all all | Javascript_RelationalExpression: Javascript_Expression ("<"|">"|"<="|">=") Javascript_Expression |
| 6 | all all all | Javascript_ShiftExpression: Javascript_Expression (">>>"|"<<"|">>") Javascript_Expression |
| 864 | all 62% 4.57(48%) all | Javascript_SimpleArray: '[' [Javascript_Expression] [Javascript_MoreArray]* ']' |
| 1,909 | all 99% | | Javascript_MoreArray: ',' [Javascript_Expression] |
| 1,352 | all all all | Javascript_Subfield: Javascript_Expression '.' Javascript_Expression |
| 25 | all all all all | Javascript_SubscriptExpression: Javascript_Expression '[' Javascript_Expression ']' |
| Javascript_TemplateExpr: [Javascript_Function_Reference] Javascript_TemplateLiteral | ||
| 705 | all all none all all none all | Javascript_TrueFalseExpression: Javascript_Expression '?' [Javascript_Comment]* Javascript_Expression ':' [Javascript_Comment]* Javascript_Expression |
| 171 | all all | Javascript_TypeOfExpr: "typeof" Javascript_Expression |
| 18,748 | all | Javascript_VariableExpression: Javascript_Variable |
| 93 | all all | Javascript_VoidExpr: "void" Javascript_Number |
| Javascript_AwaitFunctionCall: "await" ["new"] Javascript_Variable [Javascript_ParenthesizedExpression] | ||
| 3 | all all all all | Javascript_EvalFunction: "eval" '(' Javascript_Expression ')' |
| 1,422 | all 0% | Javascript_FunctionExpr: Javascript_Function [Javascript_ParenthesizedExpression] |
| 2 | all all all all | Javascript_LambdaFunction: ["async"] Javascript_LambdaParams "=>" Javascript_LambdaBody |
| 2 | (all | none) | | Javascript_LambdaBody: (Javascript_FunctionBody | Javascript_Element) |
| 2 | (all | none) | | Javascript_LambdaParams: (Javascript_LambdaManyParams | Javascript_Variable_Definition) |
| 2 | all 3.00(50%) all | | | Javascript_LambdaManyParams: '(' [Javascript_Variable_Definition]* ')' |
| 504 | all all all | Javascript_Length: Javascript_Variable '.' "length" |
| 40 | all all all all all all | Javascript_MathFloor: "Math" '.' "floor" '(' Javascript_Expression ')' |
| 47 | all all all all | Javascript_ParenthesizedFunction: '(' Javascript_Function ')' Javascript_ParenthesizedExpression |
| Javascript_StartsWith: Javascript_Variable '.' "startsWith" '(' Javascript_Expression [','] [Javascript_Expression] ')' | ||
| 1,464 | all all all all all all | Javascript_StrangeFunction: '(' Javascript_Number ',' Javascript_Variable ')' Javascript_ParenthesizedExpression |
| 36 | all all all all | Javascript_StringFunction: "String" '(' Javascript_Expression ')' |
| Javascript_ArgumentList: Javascript_Expression [Javascript_Comment]* [Javascript_MoreArguments]* [','] | ||
| | Javascript_MoreArguments: ',' [Javascript_Comment]* Javascript_Expression [Javascript_Comment]* | ||
| Javascript_Class: ["export"] "class" Javascript_Class_Definition [Javascript_ClassExtends] '{' [Javascript_ClassElement]* '}' | ||
| | Javascript_ClassElement: (Javascript_Method | Javascript_Element) | ||
| | Javascript_ClassExtends: "extends" Javascript_Class_Reference* | ||
| | Javascript_Method: "static" [("get"|"set")] Javascript_Function_Definition '(' [Javascript_FunctionParameters] ')' Javascript_FunctionBody | ||
| 1,809 | all all 80% 1.74(15%) 99% | Javascript_Data: Javascript_Type Javascript_Variable_Definition [Javascript_InitData] [Javascript_More_Variables]* [';'] |
| 1,940 | all all | | Javascript_InitData: '=' Javascript_Expression |
| 628 | all none all 79% | | Javascript_More_Variables: ',' [Javascript_Comment]* Javascript_Variable_Definition [Javascript_InitData] |
| 2,213 | 0% all | Javascript_Element: [Javascript_Label] Javascript_Statement |
| 24 | all all | | Javascript_Label: Javascript_Label_Definition ':' |
| 10,043 | (100% | 0%) | | Javascript_StatementOrComment: (Javascript_Statement | Javascript_Comment) |
| 56,760 | (none | 9% | 11% | 0% | 1% | 0% | none | 0% | none | none | 0% | 0% | 0% | 0% | none | none | 0% | none | 7% | 0% | 1% | 0% | none | 2% | 5% | none | 0% | 33% | 3% | 0% | 2% | 2% | none | 1% | 3% | none | 0% | 0% | none | 0% | 2% | none | 1% | 3% | 0% | 1% | 0% | 0% | 2% | 0% | none | 0% | 2% | 1% | 1% | 7%) | Javascript_Expression: (Javascript_HexNumber | Javascript_Number | Javascript_Literal | Javascript_RegularExpression | Javascript_Length | Javascript_MathFloor | Javascript_StartsWith | Javascript_EvalFunction | Javascript_DotClass | Javascript_CastExpression | Javascript_ExpressionList | Javascript_StringFunction | Javascript_DeleteExpression | Javascript_ClassCreationExpression | Javascript_ClassCreationWithInitializers | Javascript_ClassCreationWithSubscript | Javascript_NewNoArgsExpression | Javascript_AwaitFunctionCall | Javascript_FunctionCall | Javascript_PreIncrementExpression | Javascript_PostIncrementExpression | Javascript_NegativeExpression | Javascript_BitwiseNotExpression | Javascript_LogicalNotExpression | Javascript_BuiltInVar | Javascript_TemplateExpr | Javascript_LambdaFunction | Javascript_VariableExpression | Javascript_StrangeFunction | Javascript_ParenthesizedFunction | Javascript_Parenthesized_Expression | Javascript_SimpleArray | Javascript_CommentExpression | Javascript_ObjectLiteral | Javascript_FunctionExpr | Javascript_ClassExpr | Javascript_TypeOfExpr | Javascript_VoidExpr | Javascript_EllipsisExpr | Javascript_SubscriptExpression | Javascript_Subfield | Javascript_Power_Expression | Javascript_MultiplicativeExpression | Javascript_AdditiveExpression | Javascript_ShiftExpression | Javascript_RelationalExpression | Javascript_InstanceOfExpression | Javascript_InExpression | Javascript_EqualityExpression | Javascript_BitwiseAndExpression | Javascript_LogicalXorExpression | Javascript_BitwiseOrExpression | Javascript_LogicalAndExpression | Javascript_LogicalOrExpression | Javascript_TrueFalseExpression | Javascript_AssignmentExpression) |
| 1,730 | all all all all all | Javascript_Function: [("static"|"async")] ["export"] ["default"] ["function"] Javascript_FunctionImplementation |
| 1,730 | 15% all 70% none all none all | | Javascript_FunctionImplementation: [Javascript_Function_Definition] '(' [Javascript_FunctionParameters] [Javascript_Comment]* ')' [Javascript_Comment]* Javascript_FunctionBody |
| 1,732 | all 2.87(98%) all | Javascript_FunctionBody: '{' [Javascript_StatementOrComment]* '}' |
| 1,219 | all 1.91(52%) | Javascript_FunctionParameters: Javascript_FunctionParameter [Javascript_MoreParameters]* |
| 2,436 | all none | | Javascript_FunctionParameter: Javascript_ParameterName [Javascript_ParameterInitValue] |
| | | Javascript_ParameterInitValue: '=' Javascript_Expression | ||
| 2,436 | (all | none) | | | Javascript_ParameterName: (Javascript_Variable_Definition | '$') |
| 1,217 | all none all | | Javascript_MoreParameters: ',' [Javascript_Comment] Javascript_FunctionParameter |
| 6,669 | all 2.58(91%) none all | Javascript_ParenthesizedExpression: '(' [Javascript_Expression]* [','] ')' |
| 164 | 8.25(70%) | Javascript_Program: [Javascript_TopElement]* |
| 940 | (8% | 25% | 68% | none) | | Javascript_TopElement: (Javascript_Comment | Javascript_Function | Javascript_Statement | Javascript_Class) |
| 12,941 | (12% | 14% | 0% | 1% | 0% | 0% | 1% | 3% | 0% | 0% | 10% | none | 8% | 0% | 0% | 1% | 0% | 49%) | Javascript_Statement: (Javascript_StatementBlock | Javascript_Data | ';' | Javascript_BreakStatement | Javascript_ContinueStatement | Javascript_DoStatement | Javascript_DocumentWriteln | Javascript_ForStatement | Javascript_ForEachStatement | Javascript_Function | Javascript_IfStatement | Javascript_ImportStatement | Javascript_ReturnStatement | Javascript_SwitchStatement | Javascript_ThrowStatement | Javascript_TryStatement | Javascript_WhileStatement | Javascript_ExpressionStmt) |
| 2,415 | all all all | Javascript_Subscript: '[' Javascript_Expression ']' |
| 2,379 | (89% | 11%) | Javascript_Type: (("const"|"let"|"var"|"Array"|"Date"|"Image"|"String") | Javascript_Variable) |
| 25,898 | all 1.39(43%) | Javascript_Variable: Javascript_VariableIdentifier [Javascript_VariableQualifier]* |
| 25,898 | (none | 99% | 1% | none) | | Javascript_VariableIdentifier: (Javascript_CastedVariable | Javascript_Identifier_Reference | ("this") | ("$"|"_")) |
| | | Javascript_CastedVariable: '(' '(' Javascript_Type ')' Javascript_Identifier_Reference ')' | ||
| 15,387 | (84% | 16%) | | Javascript_VariableQualifier: (Javascript_VarField | Javascript_Subscript) |
| 12,972 | all all | | | Javascript_VarField: '.' Javascript_Identifier_Reference |
| 108 | all 22% 62% | Javascript_BreakStatement: "break" [Javascript_Identifier_Reference] [';'] |
| 1 | all all | Javascript_ContinueStatement: "continue" [';'] |
| 6 | all all all all all all 50% | Javascript_DoStatement: "do" Javascript_Element "while" '(' Javascript_Expression ')' [';'] |
| 113 | all all all all all all all | Javascript_DocumentWriteln: "document" '.' ("write"|"writeln") '(' Javascript_Expression ')' ';' |
| 6,371 | all 1.00(1%) 77% | Javascript_ExpressionStmt: Javascript_Expression [Javascript_MoreStatements]* [';'] |
| 60 | all all | | Javascript_MoreStatements: ',' Javascript_Statement |
| 51 | all all all all none all | Javascript_ForEachStatement: "for" '(' Javascript_ForCollectionStatement ')' [Javascript_Comment]* Javascript_Element |
| 51 | all 45% none all all | | Javascript_ForCollectionStatement: [Javascript_Type] [Javascript_Variable] [Javascript_ForVariables] Javascript_InOrColon Javascript_Expression |
| | | Javascript_ForVariables: '[' Javascript_Variable_Definition* ']' | ||
| 51 | (none | all) | | | Javascript_InOrColon: (':' | ("in"|"of")) |
| 417 | all all all all none all | Javascript_ForStatement: "for" '(' Javascript_ForLoopStatement ')' [Javascript_Comment]* Javascript_Element |
| 417 | 97% all 95% 1.83(21%) all all all 92% 1% 1% | | Javascript_ForLoopStatement: [Javascript_ForLoopVariable] ['='] [Javascript_Expression] [Javascript_More_Variables]* ';' [Javascript_Expression] ';' [Javascript_Expression] [','] [Javascript_Expression] |
| 404 | (57% | 43%) | | | Javascript_ForLoopVariable: (Javascript_ForLoopVariableWithType | Javascript_ForLoopVariableNoType) |
| 173 | all | | Javascript_ForLoopVariableNoType: Javascript_Variable |
| 231 | all all | | Javascript_ForLoopVariableWithType: Javascript_Type Javascript_Variable |
| 1,276 | all all 1.02 none all 1.00(1%) all 1.11(1%) 21% | Javascript_IfStatement: "if" '(' Javascript_Expression* [Javascript_Comment]* ')' [Javascript_Comment]* Javascript_Element [Javascript_Comment]* [Javascript_IfElseClause] |
| 267 | all 1% all | | Javascript_IfElseClause: "else" [Javascript_Comment] Javascript_Element |
| Javascript_ImportStatement: "import" Javascript_ImportElement* [';'] | ||
| | Javascript_ImportElement: Javascript_ImportWhat [Javascript_ImportAs] [Javascript_ImportFrom] | ||
| | | Javascript_ImportAs: "as" Javascript_Identifier_Reference | ||
| | | Javascript_ImportFrom: "from" Javascript_Literal | ||
| | | Javascript_ImportWhat: (Javascript_ImportBraces | Javascript_Identifier_Reference | Javascript_Literal) | ||
| | | | Javascript_ImportBraces: '{' Javascript_Identifier_Reference* '}' | ||
| 972 | all 97% 27% | Javascript_ReturnStatement: "return" [Javascript_Expression] [';'] |
| 1,501 | 1% all 2.14(98%) none all | Javascript_StatementBlock: [Javascript_Label] '{' [Javascript_StatementOrComment]* [';'] '}' |
| 22 | all all all all all 4.18 41% all | Javascript_SwitchStatement: "switch" '(' Javascript_Expression ')' '{' Javascript_CaseClause* [Javascript_DefaultClause] '}' |
| 92 | all all all 2.01(85%) | | Javascript_CaseClause: "case" Javascript_Expression ':' [Javascript_StatementOrComment]* |
| 9 | all all 1.00 | | Javascript_DefaultClause: "default" ':' Javascript_StatementOrComment* |
| 53 | all all 6% 6% 92% | Javascript_ThrowStatement: "throw" Javascript_Expression [','] [Javascript_Expression] [';'] |
| 179 | all all 13.41(78%) all all none | Javascript_TryStatement: "try" '{' [Javascript_StatementOrComment]* '}' [Javascript_CatchBlock] [Javascript_FinallyBlock] |
| 179 | all all all all all | | Javascript_CatchBlock: "catch" '(' Javascript_Variable_Definition ')' Javascript_Element |
| | Javascript_FinallyBlock: "finally" Javascript_Element | ||
| 17 | all all all all all | Javascript_WhileStatement: "while" '(' Javascript_Expression ')' Javascript_Element |
Terminals = 14 (instances=58,972)
Tokens = 126 (instances=262,193)
(*) Statistics are shown in the same order as the Tokens.
Percentages are rounded; 'all' and 'none' mean 100% and 0% before rounding.
For lists, it shows the average number of occurrences, excluding empty lists.