# program

# declaration

# class_decl

# CLASS

# function

# parameters

# block

# LBRACE

# property_

# RBRACE

# fun_decl

# FUN

# var_decl

# VAR

# expression

# assignment

# call

# primary

# arguments

# EQ

# arith_operand_expression

# 'or' operations

# 'and' operations

# '!=' | '==' operations

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

# '-' | '+' operations

# '/' | '*' operations

# '!' | '-' operations

# '!' | '-'

# TRUE

# FALSE

# NIL

# THIS

# number

# string

# SUPER

# identifier

# nested_arith_operand_expression

# '/' | '*'

# '-' | '+'

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

# '!=' | '=='

# AND

# OR

# statement

# expr_statement

# for_statement

# FOR

# if_statement

# IF

# ELSE

# print_statement

# PRINT

# return_statement

# RETURN

# SEMI

# while_statement

# WHILE

# LPAR

# RPAR