Main program: Ada_Program
Ada syntax:
:= /= .. => <= >=
| Count | Terminals: | |
| Ada_Comment: -- comment | ||
| Ada_Function_Definition: An identifier | ||
| Ada_Identifier_Reference: An identifier | ||
| Ada_Label_Definition: An identifier | ||
| Ada_Label_Reference: An identifier | ||
| Ada_Literal: Literal quotes:" escape:\ doubled:no multiline:no | ||
| Ada_Number: Number exponent_chars:Ee suffix_chars:LlFfDd trailing_period:yes ignore_char:none | ||
| Ada_Package_Definition: An identifier | ||
| Ada_Variable_Definition: An identifier | ||
| Count | Statistics(*) | Tokens: |
| Ada_Expression: (Ada_Number | Ada_Literal | Ada_SliceFunction | Ada_LengthFunction | Ada_UnboundFunction | Ada_PreIncrementExpression | Ada_PostIncrementExpression | Ada_NegativeExpression | Ada_LogicalNotExpression | Ada_BuiltIn | Ada_FunctionCall | Ada_VariableExpression | Ada_BracketsExpression | Ada_ParenthesizedExpression | Ada_Subfield | Ada_MultiplicativeExpression | Ada_AdditiveExpression | Ada_RelationalExpression | Ada_EqualityExpression | Ada_LogicalAndExpression | Ada_LogicalOrExpression | Ada_AssignmentExpression | Ada_RangeExpression) | ||
| Ada_Label: Ada_Label_Definition ':' | ||
| Ada_Program: Ada_Element* | ||
| | Ada_Element: (Ada_Comment | Ada_Statement) | ||
| Ada_Statement: (Ada_AppendStatement | Ada_Assignment | Ada_ExitStatement | Ada_Comment | Ada_Data | Ada_ForStatement | Ada_Function | Ada_IfStatement | Ada_PutStatement | Ada_PutIntegerStatement | Ada_Procedure | Ada_ReturnStatement | Ada_WithUseStatement | Ada_WhileStatement | Ada_ExpressionStatement) | ||
| Ada_Type: ["constant"] Ada_WhichType | ||
| | Ada_ArrayType: "array" '(' Ada_Expression ')' "of" Ada_Type | ||
| | Ada_WhichType: (("Boolean"|"Integer"|"Float"|"String"|"Unbounded_String") | Ada_ArrayType) | ||
| Ada_Variable: ['$'] Ada_Identifier_Reference* | ||
| Ada_AdditiveExpression: Ada_Expression ("+"|"-") Ada_Expression | ||
| Ada_AssignmentExpression: Ada_Expression (":="|"*="|"+="|"-=") Ada_Expression | ||
| Ada_BracketsExpression: '[' Ada_Expression* ']' | ||
| Ada_BuiltIn: ("false"|"true") | ||
| Ada_EqualityExpression: Ada_Expression ("="|"/="|"!=") Ada_Expression | ||
| Ada_FunctionCall: Ada_Variable ['?'] Ada_FunctionArguments | ||
| | Ada_FunctionArg: (Ada_FunctionSetArg | Ada_Expression) | ||
| | | Ada_FunctionSetArg: Ada_Identifier_Reference "=>" Ada_Expression | ||
| | Ada_FunctionArguments: '(' Ada_FunctionArg* ')' | ||
| Ada_LogicalAndExpression: Ada_Expression "and" Ada_Expression | ||
| Ada_LogicalNotExpression: Ada_NotOperator Ada_Expression | ||
| | Ada_NotOperator: ('~' | "not") | ||
| Ada_LogicalOrExpression: Ada_Expression ("or"|"xor") Ada_Expression | ||
| Ada_MultiplicativeExpression: Ada_Expression Ada_MultOper Ada_Expression | ||
| | Ada_MultOper: (("*"|"/") | ("mod"|"rem")) | ||
| Ada_NegativeExpression: ("-") Ada_Expression | ||
| Ada_ParenthesizedExpression: '(' Ada_Expression* ')' | ||
| Ada_PostIncrementExpression: Ada_Variable ("++"|"--") | ||
| Ada_PreIncrementExpression: ("++"|"--") Ada_Variable | ||
| Ada_RangeExpression: Ada_Expression ".." Ada_Expression | ||
| Ada_RelationalExpression: Ada_Expression ("<"|">"|"<="|">=") Ada_Expression | ||
| Ada_Subfield: Ada_Expression '.' Ada_Expression | ||
| Ada_VariableExpression: Ada_Variable | ||
| Ada_LengthFunction: "Length" '(' Ada_Expression ')' | ||
| Ada_SliceFunction: "Slice" '(' Ada_Expression ',' Ada_Expression ',' Ada_Expression ')' | ||
| Ada_UnboundFunction: "To_Unbounded_String" '(' Ada_Expression ')' | ||
| Ada_AppendStatement: "Append" '(' Ada_VariableExpression ',' Ada_Expression ')' ';' | ||
| Ada_Assignment: Ada_Variable ("="|"+="|"-="|"*="|"/="|":=") Ada_Expression ';' | ||
| Ada_Data: Ada_Variable_Definition* ':' Ada_Type [Ada_DataInitialValue] ';' | ||
| | Ada_DataInitialValue: ":=" Ada_Expression | ||
| Ada_ExitStatement: "exit" ';' | ||
| Ada_ExpressionStatement: Ada_Expression ';' | ||
| Ada_ForStatement: [Ada_Label] "for" Ada_Variable "in" ["Integer"] ["range"] ["reverse"] Ada_Expression "loop" Ada_Statement* "end" "loop" [Ada_Label_Reference] ';' | ||
| Ada_Function: "function" Ada_Function_Definition [Ada_FunctionParams] [Ada_FunctionReturns] "is" Ada_Statement* "begin" Ada_Statement* "end" [Ada_Identifier_Reference] ';' | ||
| | Ada_FunctionParams: '(' [Ada_Parameter]* ')' | ||
| | Ada_FunctionReturns: "return" Ada_Type | ||
| | Ada_Parameter: Ada_Variable_Definition ':' Ada_Type | ||
| Ada_IfStatement: "if" Ada_Expression "then" Ada_Statement* [Ada_ElseIfClause]* [Ada_IfElseClause] "end" "if" ';' | ||
| | Ada_ElseIfClause: "elsif" Ada_Expression "then" Ada_Statement* | ||
| | Ada_IfElseClause: "else" Ada_Statement* | ||
| Ada_Package: "package" Ada_Package_Definition "is" "new" Ada_Identifier_Reference* '(' Ada_Identifier_Reference* ')' ';' | ||
| Ada_Procedure: "procedure" Ada_Function_Definition [Ada_FunctionParams] "is" [Ada_Package] Ada_Statement* "begin" Ada_Statement* "end" [Ada_Identifier_Reference] ';' | ||
| Ada_PutIntegerStatement: "Integer_IO" '.' ("put") '(' Ada_Expression ',' "Width" "=>" Ada_Expression ')' ';' | ||
| Ada_PutStatement: [Ada_Put_Unbounded_IO] ("put"|"put_line") '(' [Ada_Expression] ')' ';' | ||
| | Ada_Put_Unbounded_IO: "Unbounded_IO" '.' | ||
| Ada_ReturnStatement: "return" Ada_Expression ';' | ||
| Ada_WhileStatement: "while" Ada_Expression "loop" Ada_Statement* "end" "loop" ';' | ||
| Ada_WithUseStatement: "with" Ada_Identifier_Reference* ';' "use" Ada_Identifier_Reference* ';' | ||
Terminals = 9 (instances=0)
Tokens = 57 (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.