コード例 #1
0
 def test_codeGen_17(self):
     tokelist = Lexer('!P, P').tokenize()
     parse_tree = Parser().parse(tokelist)
     generator = CodeGen(tokelist, parse_tree)
     generator.generate()
     output = generator.runCode()
     self.assertEqual(output, 'False')
コード例 #2
0
 def test_codeGen_11(self):
     tokelist = Lexer('B\/(C),A/\!B').tokenize()
     parse_tree = Parser().parse(tokelist)
     generator = CodeGen(tokelist, parse_tree)
     generator.generate()
     output = generator.runCode()
     self.assertEqual(output, 'True')
コード例 #3
0
 def test_codeGen_8(self):
     tokelist = Lexer('A/\((B/\(C\/D))),A\/C').tokenize()
     parse_tree = Parser().parse(tokelist)
     generator = CodeGen(tokelist, parse_tree)
     generator.generate()
     output = generator.runCode()
     self.assertEqual(output, 'True')
コード例 #4
0
 def test_codeGen_5(self):
     tokelist = Lexer('( P \/ Q ) , ( X => Y )').tokenize()
     parse_tree = Parser().parse(tokelist)
     generator = CodeGen(tokelist, parse_tree)
     generator.generate()
     output = generator.runCode()
     self.assertEqual(output, 'True')
コード例 #5
0
 def test_codeGen_10(self):
     tokelist = Lexer('(A/\B)\/C').tokenize()
     parse_tree = Parser().parse(tokelist)
     generator = CodeGen(tokelist, parse_tree)
     generator.generate()
     output = generator.runCode()
     # checks to see if the output has the same
     # error message as the parse tree
     self.assertEqual(output, parse_tree)
コード例 #6
0
 def generateCode(self):
     # special case: for now, it should be passing parsed WuClass objects
     CodeGen.generate(self, open(COMPONENTXML_PATH).read(), ROOT_PATH)
コード例 #7
0
 def generateCode(self):
     # special case: for now, it should be passing parsed WuClass objects
     CodeGen.generate(self, open(COMPONENTXML_PATH).read(), ROOT_PATH)
コード例 #8
0
if __name__ == '__main__' and len(sys.argv) == 1:
    unittest.main()
#else take the input file and run it through lexer and parser
else:
    with open(sys.argv[1], 'r') as file:
        for index, line in enumerate(file):

            #Lexer
            l = Lexer(line)
            l.line = index + 1
            tokelist = l.tokenize()
            l.line += 1

            #Parser
            parse_tree = Parser().parse(tokelist)

            #Code Generator
            g = CodeGen(tokelist, parse_tree)
            generated = g.generate()

            if len(sys.argv) == 3 and str(sys.argv[2]) == '--more':
                print 'Input : \n' + line
                print 'Token List : \n' + str(tokelist.kind) + '\n'
                print 'Parser Output : \n' + str(parse_tree) + '\n'
                print generated + '\n'

            output = g.runCode()
            print output

            print "\n----------\n"