Eagle Legacy Modernization, LLC

Julia Grammar

Main program: Julia_Program

Julia syntax:

 Count  Terminals:
  Julia_Comment: # comment to end of line
  Julia_EOLN: End of line
  Julia_Function_Definition: An identifier
  Julia_Identifier_Reference: An identifier
  Julia_Literal: Literal quotes:" escape:\ doubled:no multiline:no
  Julia_Number: Number exponent_chars:Ee suffix_chars:LlFfDd trailing_period:yes ignore_char:none
  Julia_Variable_Definition: An identifier
 Count  Statistics(*) Tokens:
    Julia_AdditiveExpression: Julia_Expression ("+"|"-") Julia_Expression
    Julia_AssignmentExpression: Julia_Expression (":="|"*="|"/="|"%="|"+="|"-=") Julia_Expression
    Julia_BracketsExpression: '[' Julia_Expression* ']'
    Julia_BuiltIn: ("false"|"true")
    Julia_EqualityExpression: Julia_Expression ("=="|"!=") Julia_Expression
    Julia_FunctionCall: Julia_Variable '(' Julia_Expression* ')'
    Julia_LogicalAndExpression: Julia_Expression "&&" Julia_Expression
    Julia_LogicalNotExpression: '!' Julia_Expression
    Julia_LogicalOrExpression: Julia_Expression "||" Julia_Expression
    Julia_MultiplicativeExpression: Julia_Expression ("*"|"/"|"%") Julia_Expression
    Julia_NegativeExpression: ("-") Julia_Expression
    Julia_ParenthesizedExpression: '(' Julia_Expression ')'
    Julia_PostIncrementExpression: Julia_Variable ("++"|"--")
    Julia_PreIncrementExpression: ("++"|"--") Julia_Variable
    Julia_RangeExpression: Julia_Expression ':' Julia_Expression [Julia_Range_HasIncrement]
    |   Julia_Range_HasIncrement: ':' Julia_Expression
    Julia_RelationalExpression: Julia_Expression ("<"|">"|"<="|">=") Julia_Expression
    Julia_Subfield: Julia_Expression '.' Julia_Expression
    Julia_SubscriptExpression: Julia_Expression '[' [Julia_Expression] [':'] [Julia_SubscriptionEnd] ']'
    |   Julia_SubscriptionEnd: ("end" | Julia_Expression)
    Julia_VariableExpression: Julia_Variable
    Julia_DivFunction: "div" '(' Julia_Expression ',' Julia_Expression ')'
    Julia_LengthFunction: "length" '(' Julia_Expression ')'
    Julia_StartsWithFunction: "startswith" '(' Julia_Expression ',' Julia_Expression ')'
    Julia_StringFunction: "string" '(' Julia_Expression* ')'
    Julia_SubStringFunction: "SubString" '(' Julia_Expression ',' Julia_Expression [Julia_SubStringEC] ')'
    |   Julia_SubStringEC: ',' Julia_Expression
    Julia_Expression: (Julia_Number | Julia_Literal | Julia_DivFunction | Julia_LengthFunction | Julia_StartsWithFunction | Julia_StringFunction | Julia_SubStringFunction | Julia_FunctionCall | Julia_PreIncrementExpression | Julia_PostIncrementExpression | Julia_NegativeExpression | Julia_LogicalNotExpression | Julia_BuiltIn | Julia_VariableExpression | Julia_BracketsExpression | Julia_ParenthesizedExpression | Julia_SubscriptExpression | Julia_Subfield | Julia_MultiplicativeExpression | Julia_AdditiveExpression | Julia_RelationalExpression | Julia_EqualityExpression | Julia_LogicalAndExpression | Julia_LogicalOrExpression | Julia_AssignmentExpression | Julia_RangeExpression)
    Julia_Program: Julia_Element*
    |   Julia_CommentEoln: Julia_Comment Julia_EOLN
    |   Julia_Element: (Julia_CommentEoln | Julia_Statement)
    Julia_Statement: (Julia_Assignment | Julia_BlockStatement | Julia_BreakStatement | Julia_CommentEoln | Julia_Data | Julia_ForStatement | Julia_Function | Julia_IfStatement | Julia_PrintlnStatement | Julia_ReturnStatement | Julia_WhileStatement | Julia_ExpressionStatement)
    Julia_Variable: ['$'] Julia_Identifier_Reference* [Julia_Subscript]
    |   Julia_Subscript: '[' Julia_Expression ']'
    Julia_Assignment: ["global"] Julia_Variable ("="|"+="|"-="|"*="|"/="|":=") Julia_Expression Julia_EOLN
    Julia_BlockStatement: '{' Julia_EOLN Julia_Statement* '}' [Julia_EOLN]
    Julia_BreakStatement: "break" Julia_EOLN
    Julia_Data: "var" Julia_Variable_Definition '=' Julia_Expression Julia_EOLN
    Julia_ExpressionStatement: Julia_Expression [Julia_Comment] Julia_EOLN
    Julia_ForStatement: "for" Julia_Variable Julia_ForOperator Julia_Expression Julia_EOLN Julia_Statement* "end" Julia_EOLN
    |   Julia_ForOperator: ("in" | '=')
    Julia_Function: "function" Julia_Function_Definition [Julia_FunctionParams] Julia_EOLN Julia_Statement* "end" Julia_EOLN
    |   Julia_FunctionParams: '(' [Julia_Variable]* ')'
    Julia_IfStatement: "if" Julia_Expression Julia_EOLN Julia_Statement* [Julia_ElseIfClause]* [Julia_IfElseClause] "end" Julia_EOLN
    |   Julia_ElseIfClause: "elseif" Julia_Expression [Julia_EOLN] Julia_Statement*
    |   Julia_IfElseClause: "else" [Julia_EOLN] Julia_Statement*
    Julia_PrintlnStatement: "println" Julia_Expression Julia_EOLN
    Julia_ReturnStatement: "return" Julia_Expression Julia_EOLN
    Julia_WhileStatement: "while" Julia_Expression Julia_EOLN Julia_Statement* "end" Julia_EOLN

Terminals = 7 (instances=0)
Tokens = 49 (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.