Main program: Scala_Program
Scala syntax:
<- == != <= >= += -= *= /=
| Count | Terminals: | |
| Scala_Comment: // comment to end of line | ||
| 17 | Scala_EOLN: End of line | |
| 1 | Scala_Function_Definition: An identifier | |
| Scala_Identifier: An identifier | ||
| 8 | Scala_Identifier_Reference: An identifier | |
| 3 | Scala_Literal: Literal quotes:" escape:\ doubled:no multiline:no | |
| 6 | Scala_Number: Number exponent_chars:Ee suffix_chars:LlFfDd trailing_period:yes ignore_char:none | |
| 1 | Scala_Object_Definition: An identifier | |
| 3 | Scala_Variable_Definition: An identifier | |
| Count | Statistics(*) | Tokens: |
| Scala_AdditiveExpression: Scala_Expression ("+"|"-") Scala_Expression | ||
| Scala_AssignmentExpression: Scala_Expression (":="|"*="|"/="|"%="|"+="|"-=") Scala_Expression | ||
| Scala_BracesExpression: '{' Scala_Expression* '}' | ||
| Scala_BuiltIn: ("false"|"true") | ||
| 2 | all all all | Scala_EqualityExpression: Scala_Expression ("=="|"!=") Scala_Expression |
| Scala_FunctionCall: Scala_Variable '(' [Scala_Expression]* ')' | ||
| 1 | all all all | Scala_LogicalAndExpression: Scala_Expression "&&" Scala_Expression |
| Scala_LogicalNotExpression: '~' Scala_Expression | ||
| Scala_LogicalOrExpression: Scala_Expression "||" Scala_Expression | ||
| 2 | all all all | Scala_MultiplicativeExpression: Scala_Expression ("*"|"/"|"%") Scala_Expression |
| Scala_NegativeExpression: ("-") Scala_Expression | ||
| Scala_NotExpression: '!' Scala_Expression | ||
| Scala_ParenthesizedExpression: '(' Scala_Expression ')' | ||
| Scala_PostIncrementExpression: Scala_Variable ("++"|"--") | ||
| Scala_PreIncrementExpression: ("++"|"--") Scala_Variable | ||
| 1 | all all all | Scala_RangeExpression: Scala_Expression "to" Scala_Expression |
| Scala_RelationalExpression: Scala_Expression ("<"|">"|"<="|">=") Scala_Expression | ||
| 7 | all | Scala_VariableExpression: Scala_Variable |
| Scala_EqualsMethod: Scala_Expression '.' "equals" '(' Scala_Expression ')' | ||
| Scala_LengthMethod: Scala_Expression '.' "length" '(' ')' | ||
| Scala_ListFunction: "List" '(' Scala_Expression* ')' | ||
| Scala_ReverseMethod: Scala_Expression '.' "reverse" | ||
| Scala_StartsWithMethod: Scala_Expression '.' "startswith" '(' Scala_Expression [','] [Scala_Expression] ')' | ||
| Scala_CommentEoln: Scala_Comment Scala_EOLN | ||
| 22 | (27% | 14% | none | none | none | none | none | none | none | none | 32% | none | none | none | none | none | none | 9% | none | none | 9% | 5% | none | none | 5%) | Scala_Expression: (Scala_Number | Scala_Literal | Scala_FunctionCall | Scala_PreIncrementExpression | Scala_PostIncrementExpression | Scala_NegativeExpression | Scala_LogicalNotExpression | Scala_NotExpression | Scala_BuiltIn | Scala_ListFunction | Scala_VariableExpression | Scala_BracesExpression | Scala_ParenthesizedExpression | Scala_ReverseMethod | Scala_EqualsMethod | Scala_LengthMethod | Scala_StartsWithMethod | Scala_MultiplicativeExpression | Scala_AdditiveExpression | Scala_RelationalExpression | Scala_EqualityExpression | Scala_LogicalAndExpression | Scala_LogicalOrExpression | Scala_AssignmentExpression | Scala_RangeExpression) |
| 1 | 1.00 | Scala_Program: Scala_Element* |
| 1 | (none | none | all | none | none) | | Scala_Element: (Scala_CommentEoln | Scala_Import | Scala_Object | Scala_Package | Scala_Statement) |
| 17 | (none | 35% | none | none | none | none | 12% | 6% | 6% | 18% | 24% | none | none | none) | Scala_Statement: (Scala_Assignment | Scala_BlockStatement | Scala_BreakStatement | Scala_BreakableStatement | Scala_CommentEoln | Scala_VarStatement | Scala_ValStatement | Scala_ForStatement | Scala_Function | Scala_IfStatement | Scala_PrintLnStatement | Scala_ReturnStatement | Scala_WhileStatement | Scala_ExpressionStatement) |
| 4 | (25% | 75%) | Scala_Type: (Scala_TypeArray | ("Bool"|"Boolean"|"Int"|"String")) |
| 1 | all all all all | | Scala_TypeArray: ("Array"|"List") '[' Scala_Type ']' |
| 8 | 1.00 none | Scala_Variable: Scala_Identifier_Reference* [Scala_Subscript] |
| | Scala_Subscript: '[' Scala_Expression ']' | ||
| Scala_Assignment: Scala_Variable ("="|"+="|"-="|"*="|"/="|":=") Scala_Expression Scala_EOLN | ||
| 7 | all all 1.29(all) all 57% | Scala_BlockStatement: '{' Scala_EOLN [Scala_Statement]* '}' [Scala_EOLN] |
| Scala_BreakStatement: "break" Scala_EOLN | ||
| Scala_BreakableStatement: "breakable" Scala_BlockStatement | ||
| Scala_ExpressionStatement: Scala_Expression [Scala_Comment] Scala_EOLN | ||
| 1 | all all all all all all all | Scala_ForStatement: "for" '(' Scala_Variable "<-" Scala_Expression ')' Scala_Statement |
| 1 | all all all all none none all | Scala_Function: ["override"] "def" Scala_Function_Definition [Scala_FunctionParams] [Scala_FunctionReturns] ['='] Scala_Statement |
| 1 | all all all | | Scala_FunctionParameter: Scala_Variable_Definition ':' Scala_Type |
| 1 | all 1.00(all) all | | Scala_FunctionParams: '(' [Scala_FunctionParameter]* ')' |
| | Scala_FunctionReturns: ':' Scala_Type | ||
| 3 | all all all all all all | Scala_IfStatement: "if" '(' Scala_Expression ')' Scala_Statement [Scala_IfElseClause] |
| 3 | all none all | | Scala_IfElseClause: "else" [Scala_EOLN] Scala_Statement |
| Scala_Import: "import" Scala_Variable Scala_EOLN | ||
| 1 | all all none all | Scala_Object: "object" Scala_Object_Definition [Scala_ObjectExtends] Scala_BlockStatement |
| | Scala_ObjectExtends: "extends" Scala_Identifier_Reference | ||
| Scala_Package: "package" Scala_Identifier Scala_EOLN | ||
| 4 | all all all all all | Scala_PrintLnStatement: "println" '(' Scala_Expression ')' Scala_EOLN |
| Scala_ReturnStatement: "return" Scala_Expression Scala_EOLN | ||
| 2 | all all all all all all all | Scala_ValStatement: "val" Scala_Variable_Definition ':' Scala_Type '=' Scala_Expression Scala_EOLN |
| Scala_VarStatement: "var" Scala_Variable_Definition '=' Scala_Expression Scala_EOLN | ||
| Scala_WhileStatement: "while" '(' Scala_Expression ')' Scala_Statement | ||
Terminals = 9 (instances=39)
Tokens = 53 (instances=91)
(*) 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.