コード例 #1
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
 def testPrefix(self):
     t = fsymbol.T("boo")
     v = Var(Int, 1)
     t["x"] = v
     self.assertEqual(t["x"].cname, "boox")
     self.assertEqual(t.realName("@x"), "t__a_x")
     self.assertEqual(t.mangled_name("@x"), "t__a_x")
コード例 #2
0
def main(outfile):
    with open(outfile, "w") as out:
        d = fsymbol.T()
        printer = SymbolPrinter(out)

        for k in list(d.default_dict.keys()):
            printer.add_symbol(d.demangle(k), d[k])

        printer.output_all()
コード例 #3
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
    def testOrderOfParamsMerges(self):
        (t1, t2) = (fsymbol.T("a"), fsymbol.T("b"))
        t1["@a"] = Var(Int, 1)
        t1["d"] = Var(Int, 100)
        t2["d"] = Var(Int, 200)
        t2["@a"] = Var(Int, 3)
        t2["@b"] = Var(Float, 2)
        t1["@myfunc"] = fsymbol.OverloadList(
            [function.Func([Int], Int, "ident")])
        t2["@myotherfunc"] = fsymbol.OverloadList(
            [function.Func([Int], Int, "ident")])
        t1.merge(t2)

        op = t1.order_of_params()
        self.assertEqual(0, op["t__a_a"])
        self.assertEqual(1, op["t__a_ba"])
        self.assertEqual(2, op["t__a_bb"])
        self.assertEqual(-1, t1["d"].param_slot)
        self.assertEqual(-1, t2["d"].param_slot)
コード例 #4
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
    def testParameterTypes(self):
        t = fsymbol.T("f")
        t["@a"] = Var(Int, 1)
        t["@b"] = Var(Bool, False)
        t["@c"] = Var(Float, 1.0)
        t["@d"] = Var(Complex, [10, 20])
        t["@e"] = Var(Hyper, [1.0, 1.0, 1.0, 1.0])
        t["@f"] = Var(Gradient, None)
        t["@g"] = Var(Color, [0.0, 1.0, 2.0, 3.0])
        t["@h"] = Var(Image, None)

        self.assertEqual([
            Int, Bool, Float, Float, Float, Float, Float, Float, Float,
            Gradient, Float, Float, Float, Float, Image
        ], t.type_of_params())
コード例 #5
0
def main(outfile):
    with open(outfile, "w") as out:
        # insert front matter
        print('''---
title: "Standard Library Reference"
draft: false
---
''',
              file=out)
        d = fsymbol.T()
        printer = SymbolPrinter(out)

        for k in list(d.default_dict.keys()):
            printer.add_symbol(d.demangle(k), d[k])

        printer.output_all()
コード例 #6
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
    def testOrderOfParams(self):
        "Are parameters returned in the right order?"
        t = fsymbol.T("f")
        t["@a"] = Var(Int, 1)

        op = t.order_of_params()
        self.assertEqual(0, op["t__a_a"])

        # add another param
        t["@y"] = Var(Int, 1)
        op = t.order_of_params()
        self.assertEqual(1, op["t__a_y"])

        # and another earlier in the alphabet. This should
        # still end up later, unlikely when order_of_params
        # sorted by keys
        t["@p"] = Var(Int, 1)
        op = t.order_of_params()
        self.assertEqual(2, op["t__a_p"])
        self.assertEqual(3, op["__SIZE__"])
コード例 #7
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
    def testParamSlots(self):
        t = fsymbol.T("boo")
        v = Var(Int, 1)
        self.assertEqual(-1, v.param_slot)
        t["x"] = v
        self.assertEqual(-1, v.param_slot)

        v2 = Var(Complex, [1.0, 2.0])
        self.assertEqual(-1, v2.param_slot)
        t["@p"] = v2
        self.assertEqual(0, v2.param_slot)
        self.assertEqual(2, t.nextParamSlot)

        v3 = Var(Hyper, [1.0, 2.0, 3.0, 4.0])
        self.assertEqual(-1, v3.param_slot)
        t["@pc"] = v3
        self.assertEqual(2, v3.param_slot)
        self.assertEqual(6, t.nextParamSlot)

        v4 = Var(Int, 77)
        self.assertEqual(-1, v4.param_slot)
        t["@pi"] = v4
        self.assertEqual(6, v4.param_slot)
        self.assertEqual(7, t.nextParamSlot)

        # functions shouldn't affect this
        f = fsymbol.OverloadList([function.Func([Int], Int, "ident")])
        t["@myfunc"] = f
        self.assertNotEqual(True, hasattr(f, "param_slot"))
        self.assertEqual(7, t.nextParamSlot)

        v5 = Var(Image, None)
        self.assertEqual(-1, v5.param_slot)
        t["@image"] = v5
        self.assertEqual(7, v5.param_slot)
        self.assertEqual(8, t.nextParamSlot)
コード例 #8
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
 def testGetDefaultParamSetsSlot(self):
     t = fsymbol.T("f")
     x = t["@p1"]
     self.assertEqual(0, x.param_slot)
コード例 #9
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
 def testZ(self):
     t1 = fsymbol.T("a")
     x = t1["z"]
     self.assertEqual(-1, x.param_slot)
コード例 #10
0
ファイル: test_symbol.py プロジェクト: asa-Q/HL
 def setUp(self):
     self.t = fsymbol.T()
コード例 #11
0
ファイル: test_canon.py プロジェクト: asa-Q/HL
 def setUp(self):
     self.fakeNode = absyn.Empty(0)
     self.canon = canon.T(fsymbol.T())