Main program: Ruby_Program
Ruby syntax:
== != <= >= ++ -- += ..
| Count | Terminals: | |
| Ruby_Comment: # comment to end of line | ||
| Ruby_EOLN: End of line | ||
| Ruby_Function_Definition: An identifier | ||
| Ruby_Identifier_Reference: An identifier | ||
| Ruby_Literal: Literal quotes:"' escape:\ doubled:no multiline:no | ||
| Ruby_Number: Number exponent_chars:Ee suffix_chars:LlFfDd trailing_period:yes ignore_char:none | ||
| Ruby_Variable_Definition: An identifier | ||
| Count | Statistics(*) | Tokens: |
| Ruby_AdditiveExpression: Ruby_Expression ("+"|"-") Ruby_Expression | ||
| Ruby_AssignmentExpression: Ruby_Expression (":="|"*="|"/="|"%="|"+="|"-=") Ruby_Expression | ||
| Ruby_BitwiseNotExpression: '~' Ruby_Expression | ||
| Ruby_BracketsExpression: '[' Ruby_Expression* ']' | ||
| Ruby_BuiltIn: ("false"|"true") | ||
| Ruby_EqualityExpression: Ruby_Expression ("=="|"!=") Ruby_Expression | ||
| Ruby_FunctionCall: Ruby_Variable '(' Ruby_Expression* ')' | ||
| Ruby_LogicalAndExpression: Ruby_Expression "&&" Ruby_Expression | ||
| Ruby_LogicalNotExpression: '!' Ruby_Expression | ||
| Ruby_LogicalOrExpression: Ruby_Expression "||" Ruby_Expression | ||
| Ruby_MultiplicativeExpression: Ruby_Expression ("*"|"/"|"%") Ruby_Expression | ||
| Ruby_NegativeExpression: ("-") Ruby_Expression | ||
| Ruby_ParenthesizedExpression: '(' Ruby_Expression ')' | ||
| Ruby_PostIncrementExpression: Ruby_Variable ("++"|"--") | ||
| Ruby_PreIncrementExpression: ("++"|"--") Ruby_Variable | ||
| Ruby_RangeExpression: Ruby_Expression ".." Ruby_Expression | ||
| Ruby_RelationalExpression: Ruby_Expression ("<"|">"|"<="|">=") Ruby_Expression | ||
| Ruby_Subfield: Ruby_Expression '.' Ruby_Expression | ||
| Ruby_SubscriptExpression: Ruby_Expression '[' Ruby_Expression ']' | ||
| Ruby_VariableExpression: Ruby_Variable | ||
| Ruby_DownToMethod: Ruby_Expression '.' "downto" Ruby_Expression | ||
| Ruby_LengthMethod: Ruby_Expression '.' "length" | ||
| Ruby_StartWithMethod: Ruby_Expression '.' "start_with" '?' '(' Ruby_Expression ')' | ||
| Ruby_CommentEoln: Ruby_Comment Ruby_EOLN | ||
| Ruby_Expression: (Ruby_Number | Ruby_Literal | Ruby_FunctionCall | Ruby_PreIncrementExpression | Ruby_PostIncrementExpression | Ruby_NegativeExpression | Ruby_BitwiseNotExpression | Ruby_LogicalNotExpression | Ruby_BuiltIn | Ruby_VariableExpression | Ruby_BracketsExpression | Ruby_ParenthesizedExpression | Ruby_SubscriptExpression | Ruby_StartWithMethod | Ruby_LengthMethod | Ruby_DownToMethod | Ruby_Subfield | Ruby_MultiplicativeExpression | Ruby_AdditiveExpression | Ruby_RelationalExpression | Ruby_EqualityExpression | Ruby_LogicalAndExpression | Ruby_LogicalOrExpression | Ruby_AssignmentExpression | Ruby_RangeExpression) | ||
| Ruby_Program: Ruby_Statement* | ||
| Ruby_Statement: (Ruby_Assignment | Ruby_BlockStatement | Ruby_BreakStatement | Ruby_CommentEoln | Ruby_Data | Ruby_ForStatement | Ruby_Function | Ruby_IfStatement | Ruby_PutsStatement | Ruby_ReturnStatement | Ruby_WhileStatement | Ruby_ExpressionStatement) | ||
| Ruby_Variable: ['$'] Ruby_Identifier_Reference* | ||
| Ruby_Assignment: Ruby_Variable ("="|"+="|"-="|"*="|"/="|":=") Ruby_Expression Ruby_EOLN | ||
| Ruby_BlockStatement: '{' Ruby_EOLN Ruby_Statement* '}' [Ruby_EOLN] | ||
| Ruby_BreakStatement: "break" Ruby_EOLN | ||
| Ruby_Data: "var" Ruby_Variable_Definition '=' Ruby_Expression Ruby_EOLN | ||
| Ruby_ExpressionStatement: Ruby_Expression [Ruby_Comment] Ruby_EOLN | ||
| Ruby_ForStatement: "for" Ruby_Variable "in" Ruby_Expression Ruby_EOLN Ruby_Statement* "end" Ruby_EOLN | ||
| Ruby_Function: "def" Ruby_Function_Definition [Ruby_FunctionParams] Ruby_EOLN Ruby_Statement* "end" Ruby_EOLN | ||
| | Ruby_FunctionParams: '(' [Ruby_Variable]* ')' | ||
| Ruby_IfStatement: "if" Ruby_Expression Ruby_EOLN Ruby_Statement* [Ruby_IfElsif]* [Ruby_IfElseClause] "end" Ruby_EOLN | ||
| | Ruby_IfElseClause: "else" [Ruby_EOLN] Ruby_Statement* | ||
| | Ruby_IfElsif: "elsif" Ruby_Expression [Ruby_EOLN] Ruby_Statement* | ||
| Ruby_PutsStatement: "puts" Ruby_Expression Ruby_EOLN | ||
| Ruby_ReturnStatement: "return" Ruby_Expression Ruby_EOLN | ||
| Ruby_WhileStatement: "while" Ruby_Expression ["do"] Ruby_EOLN Ruby_Statement* "end" Ruby_EOLN | ||
Terminals = 7 (instances=0)
Tokens = 42 (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.