Main program: Scala_Program
Scala syntax:
<- == != <= >= += -= *= /=
| Count | Terminals: | |
| Scala_Comment: // comment to end of line | ||
| Scala_EOLN: End of line | ||
| Scala_Function_Definition: An identifier | ||
| Scala_Identifier: An identifier | ||
| Scala_Identifier_Reference: An identifier | ||
| Scala_Literal: Literal quotes:" escape:\ doubled:no multiline:no | ||
| Scala_Number: Number exponent_chars:Ee suffix_chars:LlFfDd trailing_period:yes ignore_char:none | ||
| Scala_Object_Definition: An identifier | ||
| 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") | ||
| Scala_EqualityExpression: Scala_Expression ("=="|"!=") Scala_Expression | ||
| Scala_FunctionCall: Scala_Variable '(' [Scala_Expression]* ')' | ||
| Scala_LogicalAndExpression: Scala_Expression "&&" Scala_Expression | ||
| Scala_LogicalNotExpression: '~' Scala_Expression | ||
| Scala_LogicalOrExpression: Scala_Expression "||" Scala_Expression | ||
| 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 | ||
| Scala_RangeExpression: Scala_Expression "to" Scala_Expression | ||
| Scala_RelationalExpression: Scala_Expression ("<"|">"|"<="|">=") Scala_Expression | ||
| 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 | ||
| 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) | ||
| Scala_Program: Scala_Element* | ||
| | Scala_Element: (Scala_CommentEoln | Scala_Import | Scala_Object | Scala_Package | Scala_Statement) | ||
| 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) | ||
| Scala_Type: (Scala_TypeArray | ("Bool"|"Boolean"|"Int"|"String")) | ||
| | Scala_TypeArray: ("Array"|"List") '[' Scala_Type ']' | ||
| Scala_Variable: Scala_Identifier_Reference* [Scala_Subscript] | ||
| | Scala_Subscript: '[' Scala_Expression ']' | ||
| Scala_Assignment: Scala_Variable ("="|"+="|"-="|"*="|"/="|":=") Scala_Expression Scala_EOLN | ||
| 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 | ||
| Scala_ForStatement: "for" '(' Scala_Variable "<-" Scala_Expression ')' Scala_Statement | ||
| Scala_Function: ["override"] "def" Scala_Function_Definition [Scala_FunctionParams] [Scala_FunctionReturns] ['='] Scala_Statement | ||
| | Scala_FunctionParameter: Scala_Variable_Definition ':' Scala_Type | ||
| | Scala_FunctionParams: '(' [Scala_FunctionParameter]* ')' | ||
| | Scala_FunctionReturns: ':' Scala_Type | ||
| Scala_IfStatement: "if" '(' Scala_Expression ')' Scala_Statement [Scala_IfElseClause] | ||
| | Scala_IfElseClause: "else" [Scala_EOLN] Scala_Statement | ||
| Scala_Import: "import" Scala_Variable Scala_EOLN | ||
| Scala_Object: "object" Scala_Object_Definition [Scala_ObjectExtends] Scala_BlockStatement | ||
| | Scala_ObjectExtends: "extends" Scala_Identifier_Reference | ||
| Scala_Package: "package" Scala_Identifier Scala_EOLN | ||
| Scala_PrintLnStatement: "println" '(' Scala_Expression ')' Scala_EOLN | ||
| Scala_ReturnStatement: "return" Scala_Expression Scala_EOLN | ||
| 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=0)
Tokens = 53 (instances=0)
(*) 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.