def generic_test(self, text): txt = self.get_txt(text) my_scanner = scanner.Scanner(txt) my_parser = pl0_parser.Parser(my_scanner) my_parser.parse(debug=1) txt.close()
if node[1] == 'MINUS': print "\tPUSH -1" print "\tMUL" def accept_print(self, *node): self.visit_node(node[1]) print "\tPRINT" print "\tPOP" def accept_number(self, *node): print "\tPUSH " + `node[1]` def accept_name(self, *node): defined, value, level = self.find(node[1]) if defined == 'VARIABLE': print "\tLOAD", value elif defined == 'CONSTANT': print "\tPUSH", value else: raise NameError("Invalid value name " + node[1] + " of type " + defined) if __name__ == '__main__': code = sys.stdin.read() parser = pl0_parser.Parser() parser.input(code) program = parser.p_program() compiler = Compiler() compiler.generate(program)
def test_ejemplo_9(self): my_scanner = scanner.Scanner(open("../ejemplos/BIEN-09.PL0", 'r')) parser = pl0_parser.Parser(my_scanner, output_file='BIEN-09.ELF') parser.parse()
import scanner import pl0_parser import sys import os filename = sys.argv[1] my_scanner = scanner.Scanner(open(filename, 'r')) parser = pl0_parser.Parser(my_scanner, output_file=os.path.basename(filename) + '.elf') parser.parse()