def clear(): global value_table global type_table global repl_heap global total_stmt value_table = sym_tbl.SymbolTable() type_table = sym_tbl.SymbolTable() repl_heap = {} total_stmt = ast.StmtList()
def __init__(self): # initialize the symbol table (for ids -> types) self.sym_table = symbol_table.SymbolTable() # current_type holds the type of the last expression type self.current_type = None # global env (for return) self.sym_table.push_environment() # set global return type to int self.sym_table.add_id('return') self.sym_table.set_info('return', token.INTTYPE) # load in built-in function types self.sym_table.add_id('print') self.sym_table.set_info('print', [[token.STRINGTYPE], token.NIL]) self.sym_table.add_id('length') self.sym_table.set_info('length', [[token.STRINGTYPE], token.INTTYPE]) self.sym_table.add_id('get') self.sym_table.set_info( 'get', [[token.INTTYPE, token.STRINGTYPE], token.STRINGTYPE]) self.sym_table.add_id('reads') self.sym_table.set_info('reads', [[], token.STRINGTYPE]) self.sym_table.add_id('readi') self.sym_table.set_info('readi', [[], token.INTTYPE]) self.sym_table.add_id('readf') self.sym_table.set_info('readf', [[], token.FLOATTYPE]) self.sym_table.add_id('itos') self.sym_table.set_info('itos', [[token.INTTYPE], token.STRINGTYPE]) self.sym_table.add_id('itof') self.sym_table.set_info('itof', [[token.INTTYPE], token.FLOATTYPE]) self.sym_table.add_id('ftos') self.sym_table.set_info('ftos', [[token.FLOATTYPE], token.STRINGTYPE]) self.sym_table.add_id('stoi') self.sym_table.set_info('stoi', [[token.STRINGTYPE], token.INTTYPE]) self.sym_table.add_id('stof') self.sym_table.set_info('stof', [[token.STRINGTYPE], token.FLOATTYPE])
def __init__(self): # initialize the symbol table (for ids -> values) self.sym_table = sym_tbl.SymbolTable() # holds the type of last expression type self.current_value = None # the heap {oid:struct_obj} self.heap = {}
def __init__(self): # initialize the symbol table (for ids -> values) self.sym_table = sym_tbl.SymbolTable() # holds the type of last expression type self.current_value = None self.current_token = None #keeps the curren token for error reporting self.expressionIsTrue = True #checks for conditional statements and loopss self.structDict = {} #holds values of varDecls of the struct self.inStruct = False #checks to see if enviroment is inside of a struct self.varId = "x" #holds the current var id # the heap {oid:struct_obj} self.structId = 1 self.heap = {}
def __init__(self): # initialize the symbol table (for ids -> types) self.sym_table = symbol_table.SymbolTable() # current_type holds the type of the last expression type self.current_type = None #checks to see if we are inside a struct self.inStruct = False #dictionary for holding values for the dictionary self.dict = {} # global env (for return) self.sym_table.push_environment() # set global return type to int self.sym_table.add_id('return') self.sym_table.set_info('return', token.INTTYPE) # load in built-in function types self.sym_table.add_id('print') self.sym_table.set_info('print', [[token.STRINGVAL], token.NIL]) self.sym_table.add_id('pass') self.sym_table.set_info('pass', token.INTTYPE) self.sym_table.add_id('reads') self.sym_table.set_info('reads', [[], token.STRINGVAL]) self.sym_table.add_id('length') self.sym_table.set_info('length', [[token.STRINGVAL], token.INTVAL]) self.sym_table.add_id('get') self.sym_table.set_info( 'get', [[token.INTVAL, token.STRINGVAL], token.STRINGVAL]) self.sym_table.add_id('stof') self.sym_table.set_info('stof', [[token.STRINGVAL], token.FLOATVAL]) self.sym_table.add_id('ftos') self.sym_table.set_info('ftos', [[token.FLOATVAL], token.STRINGVAL]) self.sym_table.add_id('itof') self.sym_table.set_info('itof', [[token.INTVAL], token.FLOATVAL]) self.sym_table.add_id('itos') self.sym_table.set_info('itos', [[token.INTVAL], token.STRINGVAL]) self.sym_table.add_id('stoi') self.sym_table.set_info('stoi', [[token.STRINGVAL], token.INTVAL]) self.sym_table.add_id('reads') self.sym_table.set_info('reads', [[], token.STRINGVAL]) self.sym_table.add_id('readf') self.sym_table.set_info('readf', [[], token.FLOATVAL])
def __init__(self): # initialize symbol table (for ids -> values) self.sym_table = sym_tbl.SymbolTable() # holds the value of the last expression self.current_value = None
def __init__(self): self.sym_table = mypl_symbol_table.SymbolTable() self.current_type = None
import mypl_interpreter as interpreter import mypl_symbol_table as sym_tbl import mypl_error as error import mypl_print_visitor as ast_printer import sys # needed for load import copy from io import StringIO # history try: import readline except ImportError: readline = None value_table = sym_tbl.SymbolTable() type_table = sym_tbl.SymbolTable() repl_heap = {} total_stmt = ast.StmtList() def main(): vocab = {'load', 'save', 'clear', 'exit', 'help'} readline.parse_and_bind('tab: complete') readline.set_completer(make_completer(vocab)) print('MyPL REPL Version 1.0') print('Use ":" for commands, :help for list of commands.') keepGoing = True while (keepGoing): cur_stmt = input('>>> ')
def __init__(self): self.sym_table = symbol_table.SymbolTable() self.current_value = None self.heap = {}