def testParseWithText(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B[foo] C[bar])")
     # C pattern has no text arg so despite [bar] in t, no need
     # to match text--check structure only.
     valid = wiz.parse(t, "(A B[foo] C)")
     self.failUnless(valid)
 def testParseWithText2(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B[T__32] (C (D E[a])))")
     # C pattern has no text arg so despite [bar] in t, no need
     # to match text--check structure only.
     valid = wiz.parse(t, "(A B[foo] C)")
     self.assertEquals("(A T__32 (C (D a)))", t.toStringTree())
 def testParseWithWildcardLabels(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     labels = {}
     valid = wiz.parse(t, "(A %b:. %c:.)", labels)
     self.failUnless(valid)
     self.failUnlessEqual("B", str(labels["b"]))
     self.failUnlessEqual("C", str(labels["c"]))
示例#4
0
 def testParseLabels(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     labels = {}
     valid = wiz.parse(t, "(%a:A %b:B %c:C)", labels)
     self.assertTrue(valid)
     self.assertEqual("A", str(labels["a"]))
     self.assertEqual("B", str(labels["b"]))
     self.assertEqual("C", str(labels["c"]))
 def testParseLabelsAndTestText(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B[foo] C)")
     labels = {}
     valid = wiz.parse(t, "(%a:A %b:B[foo] %c:C)", labels)
     self.failUnless(valid)
     self.failUnlessEqual("A", str(labels["a"]))
     self.failUnlessEqual("foo", str(labels["b"]))
     self.failUnlessEqual("C", str(labels["c"]))
示例#6
0
 def testParseLabels(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     labels = {}
     valid = wiz.parse(t, "(%a:A %b:B %c:C)", labels)
     self.assertTrue(valid)
     self.assertEqual("A", str(labels["a"]))
     self.assertEqual("B", str(labels["b"]))
     self.assertEqual("C", str(labels["c"]))
 def testParseLabelsInNestedTree(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A (B C) (D E))")
     labels = {}
     valid = wiz.parse(t, "(%a:A (%b:B %c:C) (%d:D %e:E) )", labels)
     self.failUnless(valid)
     self.failUnlessEqual("A", str(labels["a"]))
     self.failUnlessEqual("B", str(labels["b"]))
     self.failUnlessEqual("C", str(labels["c"]))
     self.failUnlessEqual("D", str(labels["d"]))
     self.failUnlessEqual("E", str(labels["e"]))
示例#8
0
    def testNoParent(self):
        tree = "(PRINT (MULT ID[x] (VEC INT[1] INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t, "(%x:PRINT (MULT ID (VEC INT INT INT)))", labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = False
        found = TreeParser._inContext(adaptor, self.tokenNames, node, "VEC")
        self.assertEqual(expecting, found)
示例#9
0
文件: testtree.py 项目: aopui/antlr
    def testLotsOfWildcards(self):
        tree = "(nil (ASSIGN ID[x] INT[3]) (PRINT (MULT ID[x] (VEC INT[1] INT[2] INT[3]))))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t, "(nil (ASSIGN ID[x] INT[3]) (PRINT (MULT ID (VEC INT %x:INT INT))))", labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = True
        found = TreeParser._inContext(adaptor, self.tokenNames, node, "... PRINT ... VEC ...")
        self.assertEquals(expecting, found)
示例#10
0
文件: testtree.py 项目: aopui/antlr
    def testNotParent(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t, "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))", labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = False
        found = TreeParser._inContext(adaptor, self.tokenNames, node, "VEC")
        self.assertEquals(expecting, found)
示例#11
0
    def testDotDot(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t,
                          "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))",
                          labels)
        self.assertTrue(valid)
        node = labels.get("x")

        self.assertRaisesRegex(ValueError, r'invalid syntax: \.\.',
                               TreeParser._inContext, adaptor, self.tokenNames,
                               node, "PRINT .. VEC")
示例#12
0
文件: testtree.py 项目: 166MMX/antlr3
    def testDotDot(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(
            t,
            "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))",
            labels)
        self.assertTrue(valid)
        node = labels.get("x")

        self.assertRaisesRegex(
            ValueError, r'invalid syntax: \.\.',
            TreeParser._inContext, adaptor, self.tokenNames, node, "PRINT .. VEC")
示例#13
0
    def testDeepAndFindRoot(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t,
                          "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))",
                          labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = True
        found = TreeParser._inContext(adaptor, self.tokenNames, node,
                                      "PRINT ...")
        self.assertEqual(expecting, found)
示例#14
0
    def testWildcardAtStartIgnored(self):
        tree = "(nil (ASSIGN ID[x] INT[3]) (PRINT (MULT ID[x] (VEC INT[1] INT[2] INT[3]))))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(
            t,
            "(nil (ASSIGN ID[x] INT[3]) (PRINT (MULT ID (VEC INT %x:INT INT))))",
            labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = True
        found = TreeParser._inContext(adaptor, self.tokenNames, node, "...VEC")
        self.assertEqual(expecting, found)
示例#15
0
文件: testtree.py 项目: aopui/antlr
    def testDotDot(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t, "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))", labels)
        self.assertTrue(valid)
        node = labels.get("x")

        try:
            TreeParser._inContext(adaptor, self.tokenNames, node, "PRINT .. VEC")
            self.fail()
        except ValueError, exc:
            expecting = "invalid syntax: .."
            found = str(exc)
            self.assertEquals(expecting, found)
示例#16
0
    def testMismatch(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t,
                          "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))",
                          labels)
        self.assertTrue(valid)
        node = labels.get("x")

        expecting = False
        ## missing MULT
        found = TreeParser._inContext(adaptor, self.tokenNames, node,
                                      "PRINT VEC MULT")
        self.assertEquals(expecting, found)
示例#17
0
    def testDotDot(self):
        tree = "(PRINT (MULT ID[x] (VEC (MULT INT[9] INT[1]) INT[2] INT[3])))"
        adaptor = CommonTreeAdaptor()
        wiz = TreeWizard(adaptor, self.tokenNames)
        t = wiz.create(tree)

        labels = {}
        valid = wiz.parse(t,
                          "(PRINT (MULT ID (VEC (MULT INT %x:INT) INT INT)))",
                          labels)
        self.assertTrue(valid)
        node = labels.get("x")

        try:
            TreeParser._inContext(adaptor, self.tokenNames, node,
                                  "PRINT .. VEC")
            self.fail()
        except ValueError, exc:
            expecting = "invalid syntax: .."
            found = str(exc)
            self.assertEquals(expecting, found)
 def testWildcard(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     valid = wiz.parse(t, "(A . .)")
     self.failUnless(valid)
示例#19
0
 def testParseSingleNodeFails(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("A")
     valid = wiz.parse(t, "B")
     self.assertFalse(valid)
示例#20
0
 def testParseFlatTreeFails2(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(nil A B C)")
     valid = wiz.parse(t, "(nil A B A)")
     self.assertFalse(valid)
示例#21
0
 def testParse(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     valid = wiz.parse(t, "(A B C)")
     self.assertTrue(valid)
示例#22
0
 def testParseSingleNodeFails(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("A")
     valid = wiz.parse(t, "B")
     self.assertFalse(valid)
示例#23
0
 def testParseFlatTreeFails2(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(nil A B C)")
     valid = wiz.parse(t, "(nil A B A)")
     self.assertFalse(valid)
 def testParseWithTextFails(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     valid = wiz.parse(t, "(A[foo] B C)")
     self.failUnless(not valid) # fails
 def testParseSingleNodeFails(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("A")
     valid = wiz.parse(t, "B")
     self.failUnless(not valid)
示例#26
0
 def testParse(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(A B C)")
     valid = wiz.parse(t, "(A B C)")
     self.assertTrue(valid)
 def testParseFlatTreeFails2(self):
     wiz = TreeWizard(self.adaptor, self.tokens)
     t = wiz.create("(nil A B C)")
     valid = wiz.parse(t, "(nil A B A)")
     self.failUnless(not valid)