program
decl
decl
decl
variable_decl
variable_decl
function_decl
function_decl
class_decl
class_decl
interface_decl
interface_decl
prototype
prototype
variable_decl
type_
type_
any_keyword
any_keyword
[NOT]
identifier
identifier
SEMI
SEMI
type_
INT
INT
DOUBLE
DOUBLE
BOOL
BOOL
STRING
STRING
ident
ident
'[]'
ident
any_keyword
any_keyword
[NOT]
identifier
identifier
function_decl
INT
INT
DOUBLE
DOUBLE
BOOL
BOOL
STRING
STRING
ident
ident
'[]'
'void'
any_keyword
any_keyword
[NOT]
identifier
identifier
LPAR
LPAR
type_
type_
any_keyword
any_keyword
[NOT]
identifier
identifier
','
[suppress]
type_
type_
any_keyword
any_keyword
[NOT]
identifier
identifier
RPAR
RPAR
LBRACE
LBRACE
variable_decl
variable_decl
stmt
stmt
RBRACE
RBRACE
stmt
if_stmt
if_stmt
while_stmt
while_stmt
for_stmt
for_stmt
break_stmt
break_stmt
return_stmt
return_stmt
print_stmt
print_stmt
stmt_block
stmt_block
expr
expr
SEMI
SEMI
if_stmt
'if'
LPAR
LPAR
expr
expr
RPAR
RPAR
stmt
stmt
ELSE
ELSE
stmt
stmt
expr
assignment
assignment
call
call
THIS
THIS
arith_expr_expression
arith_expr_expression
arith_expr
arith_expr
lvalue
lvalue
real number
real number
TRUE
TRUE
FALSE
FALSE
hex_constant
hex_constant
integer
integer
string enclosed in double quotes
string enclosed in double quotes
NULL
NULL
read_integer
read_integer
read_line
read_line
new_statement
new_statement
new_array
new_array
assignment
any_keyword
any_keyword
[NOT]
identifier
identifier
LPAR
LPAR
expr
expr
RPAR
RPAR
DOT
DOT
ident
ident
expr_parens
expr_parens
LBRACK
LBRACK
expr
expr
RBRACK
RBRACK
EQ
EQ
expr
expr
expr_parens
LPAR
LPAR
expr
expr
RPAR
RPAR
EQ
'='
[suppress]
call
any_keyword
any_keyword
[NOT]
identifier
identifier
LPAR
LPAR
expr
expr
','
[suppress]
expr
expr
RPAR
RPAR
LPAR
LPAR
expr
expr
RPAR
RPAR
DOT
DOT
any_keyword
any_keyword
[NOT]
identifier
identifier
LPAR
LPAR
expr
expr
','
[suppress]
expr
expr
RPAR
RPAR
arith_expr_expression
|| operations
|| operations
|| operations
&& operations
&& operations
||
||
&& operations
&& operations
&& operations
&& operations
&& operations
== | != operations
== | != operations
&&
&&
== | != operations
== | != operations
== | != operations
== | != operations
== | != operations
<= | < | >= | > operations
<= | < | >= | > operations
== | !=
== | !=
<= | < | >= | > operations
<= | < | >= | > operations
<= | < | >= | > operations
<= | < | >= | > operations
<= | < | >= | > operations
'!' operations
'!' operations
<= | < | >= | >
<= | < | >= | >
'!' operations
'!' operations
'!' operations
'!' operations
'!' operations
'!'
'!' operations
'!' operations
arith_expr
arith_expr
nested_arith_expr
nested_arith_expr
arith_expr
+ | - operations
+ | - operations
+ | - operations
* | / | % operations
* | / | % operations
+ | -
+ | -
* | / | % operations
* | / | % operations
* | / | % operations
* | / | % operations
* | / | % operations
'-' operations
'-' operations
* | / | %
* | / | %
'-' operations
'-' operations
'-' operations
'-' operations
'-' operations
'-'
'-' operations
'-' operations
real number
real number
TRUE
TRUE
FALSE
FALSE
hex_constant
hex_constant
integer
integer
string enclosed in double quotes
string enclosed in double quotes
NULL
NULL
call
call
read_integer
read_integer
read_line
read_line
new_statement
new_statement
new_array
new_array
ident
ident
nested_rvalue
nested_rvalue
string enclosed in double quotes
"(?:[^"\n\r\\]|(?:"")|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*
'"'
[combine]
read_integer
READINTEGER
READINTEGER
LPAR
LPAR
RPAR
RPAR
read_line
READLINE
READLINE
LPAR
LPAR
RPAR
RPAR
new_statement
NEW
NEW
any_keyword
any_keyword
[NOT]
identifier
identifier
new_array
NEWARRAY
NEWARRAY
LPAR
LPAR
expr
expr
COMMA
COMMA
type_
type_
RPAR
RPAR
COMMA
','
[suppress]
nested_rvalue
'('
[suppress]
arith_expr
arith_expr
')'
[suppress]
* | / | %
[*/%]
+ | -
[+\-]
nested_arith_expr
'('
[suppress]
arith_expr_expression
arith_expr_expression
')'
[suppress]
<= | < | >= | >
<=|<|>=|>
== | !=
==|!=
&&
\&\&
||
\|\|
lvalue
ident
ident
expr_parens
expr_parens
DOT
DOT
ident
ident
expr_parens
expr_parens
LBRACK
LBRACK
expr
expr
RBRACK
RBRACK
DOT
'.'
[suppress]
LBRACK
'['
[suppress]
RBRACK
']'
[suppress]
real number
[+-]?(?:\d+\.\d*|\.\d+)
hex_constant
0[xX][0-9a-fA-F]+
integer
W:(0-9)
while_stmt
'while'
LPAR
LPAR
expr
expr
RPAR
RPAR
stmt
stmt
for_stmt
'or'
LPAR
LPAR
expr
expr
SEMI
SEMI
expr
expr
SEMI
SEMI
expr
expr
RPAR
RPAR
stmt
stmt
break_stmt
'break'
SEMI
SEMI
return_stmt
'return'
expr
expr
SEMI
SEMI
print_stmt
'Print'
LPAR
LPAR
expr
expr
','
[suppress]
expr
expr
RPAR
RPAR
SEMI
SEMI
stmt_block
LBRACE
LBRACE
variable_decl
variable_decl
stmt
stmt
RBRACE
RBRACE
class_decl
CLASS
CLASS
any_keyword
any_keyword
[NOT]
identifier
identifier
EXTENDS
EXTENDS
any_keyword
any_keyword
[NOT]
identifier
identifier
IMPLEMENTS
IMPLEMENTS
any_keyword
any_keyword
[NOT]
identifier
identifier
','
[suppress]
any_keyword
any_keyword
[NOT]
identifier
identifier
LBRACE
LBRACE
field
field
RBRACE
RBRACE
field
variable_decl
variable_decl
function_decl
function_decl
interface_decl
INTERFACE
INTERFACE
any_keyword
any_keyword
[NOT]
identifier
identifier
LBRACE
LBRACE
prototype
prototype
RBRACE
RBRACE
LBRACE
'{'
[suppress]
prototype
INT
INT
DOUBLE
DOUBLE
BOOL
BOOL
STRING
STRING
ident
ident
'[]'
'void'
any_keyword
any_keyword
[NOT]
identifier
identifier
LPAR
LPAR
type_
type_
any_keyword
any_keyword
[NOT]
identifier
identifier
','
[suppress]
type_
type_
any_keyword
any_keyword
[NOT]
identifier
identifier
RPAR
RPAR
SEMI
SEMI
LPAR
'('
[suppress]
any_keyword
VOID
VOID
INT
INT
DOUBLE
DOUBLE
BOOL
BOOL
STRING
STRING
CLASS
CLASS
INTERFACE
INTERFACE
NULL
NULL
THIS
THIS
EXTENDS
EXTENDS
IMPLEMENTS
IMPLEMENTS
FOR
FOR
WHILE
WHILE
IF
IF
ELSE
ELSE
RETURN
RETURN
BREAK
BREAK
NEW
NEW
NEWARRAY
NEWARRAY
PRINT
PRINT
READINTEGER
READINTEGER
READLINE
READLINE
TRUE
TRUE
FALSE
FALSE
VOID
'void'
INT
'int'
DOUBLE
'double'
BOOL
'bool'
STRING
'string'
CLASS
'class'
INTERFACE
'interface'
NULL
'null'
THIS
'this'
EXTENDS
'extends'
IMPLEMENTS
'implements'
FOR
'or'
WHILE
'while'
IF
'if'
ELSE
'else'
RETURN
'return'
BREAK
'break'
NEW
'new'
NEWARRAY
'NewArray'
PRINT
'Print'
READINTEGER
'ReadInteger'
READLINE
'ReadLine'
TRUE
'true'
FALSE
'false'
identifier
W:(A-Z_a-zªµºÀ-Ö..., 0-9A-Z_a-zªµ·...)
RPAR
')'
[suppress]
SEMI
';'
[suppress]
RBRACE
'}'
[suppress]