Program

Function_DefinitionFunction_Definition functions 'functions' Main_FunctionMain_Function 'main'

Function_Definition

Function_DeclarationFunction_Declaration 'decl' Function_BodyFunction_Body 'body'

Function_Declaration

DatatypeDatatype 'return_type' identifieridentifier 'name' '(' [suppress] DatatypeDatatype 'type' identifieridentifier 'name' ',' [suppress] DatatypeDatatype 'type' identifieridentifier 'name' 'parameters' ')' [suppress]

Datatype

'int' 'float' 'string'

identifier

RESERVEDRESERVED [NOT] W:(A-Za-z, 0-9A-Z_a-z) [combine]

Function_Body

'{' [suppress] stmt_seqstmt_seq stmts 'stmts' '}' [suppress]

stmt_seq

statementstatement

statement

Declaration_StatementDeclaration_Statement Assignment_StatementAssignment_Statement If_StatementIf_Statement Repeat_StatementRepeat_Statement Read_StatementRead_Statement Write_StatementWrite_Statement Return_StatementReturn_Statement Function_Call_StatementFunction_Call_Statement

Declaration_Statement

DatatypeDatatype 'datatype' var_declvar_decl ',' [suppress] var_declvar_decl 'decls' ';' [suppress]

var_decl

identifieridentifier 'name' var_initializationvar_initialization

var_initialization

':=' [suppress] exprexpr 'init'

bool_expr

term_expression_expression_expressionterm_expression_expression_expression

term_expression_expression_expression

'||' operations'||' operations

'||' operations

'&&' operations'&&' operations '||' '&&' operations'&&' operations '&&' operations'&&' operations

'&&' operations

term_expression_expressionterm_expression_expression nested_term_expression_expression_expressionnested_term_expression_expression_expression '&&' term_expression_expressionterm_expression_expression nested_term_expression_expression_expressionnested_term_expression_expression_expression term_expression_expressionterm_expression_expression nested_term_expression_expression_expressionnested_term_expression_expression_expression

term_expression_expression

'<>' | '<=' | '<' | '>=' | '>' | '=' operations'<>' | '<=' | '<' | '>=' | '>' | '=' operations

'<>' | '<=' | '<' | '>=' | '>' | '=' operations

term_expressionterm_expression nested_term_expression_expressionnested_term_expression_expression '<>' | '<=' | '<' | '>=' | '>' | '=''<>' | '<=' | '<' | '>=' | '>' | '=' term_expressionterm_expression nested_term_expression_expressionnested_term_expression_expression term_expressionterm_expression nested_term_expression_expressionnested_term_expression_expression

term_expression

'+' | '-' operations'+' | '-' operations

'*' | '/' operations

'+' | '-' operations'+' | '-' operations '*' | '/''*' | '/' '+' | '-' operations'+' | '-' operations '+' | '-' operations'+' | '-' operations

'+' | '-' operations

'+' | '-''+' | '-' '+' | '-' operations'+' | '-' operations termterm nested_term_expressionnested_term_expression

term

real number with scientific notationreal number with scientific notation real numberreal number signed integersigned integer StringString function_callfunction_call identifieridentifier

real number with scientific notation

[+-]?(?:\d+(?:[eE][+-]?\d+)|(?:\d+\.\d*|\.\d+)(?:[eE][+-]?\d+)?)

real number

[+-]?(?:\d+\.\d*|\.\d+)

signed integer

[+-]?\d+

String

string enclosed in '"'

function_call

identifieridentifier 'name' '(' [suppress] ')' [suppress] exprexpr ',' [suppress] exprexpr 'args' ')' [suppress]

expr

bool_exprbool_expr

nested_term_expression

'(' [suppress] term_expressionterm_expression ')' [suppress]

'*' | '/'

[*/]

'+' | '-'

[+\-]

nested_term_expression_expression

'(' [suppress] term_expression_expressionterm_expression_expression ')' [suppress]

'<>' | '<=' | '<' | '>=' | '>' | '='

<>|<=|<|>=|>|=

nested_term_expression_expression_expression

'(' [suppress] term_expression_expression_expressionterm_expression_expression_expression ')' [suppress]

Assignment_Statement

identifieridentifier 'target' ':=' [suppress] exprexpr 'value' ';' [suppress]

If_Statement

'if' bool_exprbool_expr 'cond' 'then' stmt_seqstmt_seq then 'then' 'elseif' bool_exprbool_expr 'cond' 'then' stmt_seqstmt_seq then 'then' 'elseif' 'else' stmt_seqstmt_seq else 'else' 'end'

Repeat_Statement

'repeat' stmt_seqstmt_seq body 'body' 'until' bool_exprbool_expr 'cond'

Read_Statement

'read' identifieridentifier 'var' ';' [suppress]

RESERVED

'if' 'then' 'else' 'elseif' 'end' 'repeat' 'until' 'read' 'write' 'return' 'endl' 'int' 'float' 'string' 'main'

Write_Statement

'write' 'endl' exprexpr 'expr' ';' [suppress]

Return_Statement

'return' exprexpr 'expr' ';' [suppress]

Function_Call_Statement

function_callfunction_call ';' [suppress]

Main_Function

DatatypeDatatype 'return_type' 'main' '(' [suppress] ')' [suppress] Function_BodyFunction_Body 'body'