Eagle Legacy Modernization, LLC

Scala Grammar

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.