Пример #1
0
    def test_linecount(self):
        b = Buffer('')
        self.assertEqual(1, b.linecount)

        b = Buffer('Hello World!')
        self.assertEqual(1, b.linecount)

        b = Buffer('\n')
        self.assertEqual(2, b.linecount)
Пример #2
0
def main(filename, trace):
    parser = ANTLRParser()
    with io.open(filename) as f:
        buffer = Buffer(f.read(),
                        filename=filename,
                        comments_re=COMMENTS_RE,
                        trace=True)
        gname = path.splitext(path.basename(filename))[0]
        semantics = ANTLRSemantics(gname)
        model = parser.parse(buffer,
                             filename=filename,
                             semantics=semantics,
                             trace=trace)
        print(model)
Пример #3
0
    def start(self):
        while True:
            ui = input("> ")
            if ui == "quit" or ui == "exit":
                break
            else:
                try:
                    ast = self.parser.parse(Buffer(ui, nameguard=False), rule_name='start')

                    if self.debug:
                        print("AST:", ast)

                    self.interp.interpret(ast)

                    if self.debug:
                        self.interp.stack.print_stack()

                except Exception as e:
                    print("ERROR: " + str(e))
                    e.traceback.print_exc()
Пример #4
0
 def setUp(self):
     testfile = os.path.splitext(__file__)[0] + '.py'
     with open(testfile) as f:
         self.text = str(f.read())
     self.buf = Buffer(self.text, whitespace='')