Exemple #1
0
from lex import tokens
from symbol_table import SymbolTable
from algorithms import attempt_create_quadruple, attempt_create_quadruple_unary, attempt_assignment_quadruple, attempt_pickle, save_param_func_table, attempt_pass_parameter
from expression_handler import ExpressionHandler
from semantic_error import SemanticError
from quadruple import Quadruple
from jumps_stack import JumpsStack, PendingJump, JumpHere
from quadruple import QuadrupleStack
from avail import Avail
from constant_table import ConstantTable
from address_handler import AddressHandler, POINTERS
from helper import Helper
from id_tracker import IdTracker

exp_handler = ExpressionHandler.get_instance()
symbol_table = SymbolTable.get_instance()
quad_stack = QuadrupleStack.get_instance()
const_table = ConstantTable.get_instance()
address_handler = AddressHandler.get_instance()
jumps_stack = JumpsStack.get_instance()
id_tracker = IdTracker.get_instance()


def p_program(p):
    ''' program : init_game init vars goto_main functions main pickle'''


# EMBEDDED ACTION
def p_goto_main(p):
    ''' goto_main :'''
    quad = Quadruple('GOTO', None, None, PendingJump())