コード例 #1
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testStringKey(self):
     p=Parser('foo=42')
     self.assertTrue(p.kvpair())
     result = p.result
     self.assertTrue(isinstance(result, fern.ast.kvpair.KVPair))
     self.assertEqual(result.key, 'foo')
     self.assertEqual(result.value, 42)
コード例 #2
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testAlone(self):
     p = Parser('42 goop {a=3} [5 4]')
     p.itemstream()
     result = p.result
     self.assertEqual(result[0], 42)
     self.assertEqual(result[1].name, 'goop')
     self.assertEqual(result[2].eval(), {'a':3})
     self.assertEqual(result[3].eval(), [5, 4])
コード例 #3
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testInRootMap(self):
     p = Parser('''
         -- first comment
         foo = 23 -- 23 means nothing
         -- all done
     ''')
     m = p.parse()
     self.assertEqual(m['foo'], 23)
コード例 #4
0
ファイル: testLet.py プロジェクト: andrewf/fern
 def setUp(self):
     p = Parser(
         '''let a=4 b='hey' in
             root_var = [a b]
         end
         
         list = [1 let x=4 in {f = x} end 'arg']
         
         var = let y='herp' in {saying=y} end
     ''')
     self.root = p.parse()
コード例 #5
0
ファイル: testFunction.py プロジェクト: andrewf/fern
 def setUp(self):
     p = Parser('''
         f = function()  {urk = 42} end
         person = function(name age) {
             name = name
             age = age
         } end
         oop = f()
         p = person('Joe' 42)
     ''')
     self.root = p.parse()
コード例 #6
0
ファイル: testParser.py プロジェクト: andrewf/fern
class Basics(unittest.TestCase):
    def setUp(self):
        self.p = Parser("foo= 42@'bar' = 'ggg'")
        self.fdg = self.p.parse()
    def testIsMap(self):
        self.assertTrue(isinstance(self.fdg, fern.ast.Map))
    def testKeys(self):
        self.assertEqual(self.fdg['foo'], 42)
        self.assertEqual(self.fdg['bar'], 'ggg')
コード例 #7
0
ファイル: testConditional.py プロジェクト: andrewf/fern
 def testKVPairsIf(self):
     p = Parser('''
         var = true
         var2 = 'f'
         if var then
             foo = 3
             bar = 4
         elif var2 then
             foo = 4
             bar = 3
         else
             ggg = 5
         end
     ''')
     m = p.parse()
     self.assertEqual(m.eval(), {'var':True,'var2':'f','foo':3,'bar':4})
     m.set_key('var', False)
     self.assertEqual(m.eval(), {'var':False,'var2':'f','foo':4,'bar':3})
     m.set_key('var2', False)
     self.assertEqual(m.eval(), {'var':False,'var2':False,'ggg':5})
コード例 #8
0
ファイル: testConditional.py プロジェクト: andrewf/fern
 def testItemsIf(self):
     p = Parser('''
         var = true
         var2 = true
         list = [
             'first'
             if var then
                 1 'foo' {}
             elif var2 then
                 14 [] var
             else
                 'ack'
             end
             'last'
         ]
     ''')
     m = p.parse()
     self.assertEqual(m['list'], ['first', 1, 'foo', {}, 'last'])
     m.set_key('var', False)
     self.assertEqual(m['list'], ['first', 14, [], False, 'last'])
     m.set_key('var2', False)
     self.assertEqual(m['list'], ['first', 'ack', 'last'])
コード例 #9
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def setUp(self):
     self.p = Parser("foo= 42@'bar' = 'ggg'")
     self.fdg = self.p.parse()
コード例 #10
0
ファイル: testConditional.py プロジェクト: andrewf/fern
 def testItemIf(self):
     p = Parser('var = false foo = if var then 13 else 17 end')
     m = p.parse()
     self.assertEqual(m['foo'], 17)
     m.set_key('var', True)
     self.assertEqual(m['foo'], 13)
コード例 #11
0
ファイル: testPrimitives.py プロジェクト: andrewf/fern
 def testFalse(self):
     p=Parser('false')
     p.bool()
     self.assertEqual(p.result, False)
コード例 #12
0
ファイル: testPrimitives.py プロジェクト: andrewf/fern
 def testTrue(self):
     p=Parser('true')
     p.bool()
     self.assertEqual(p.result, True)
コード例 #13
0
ファイル: testPrimitives.py プロジェクト: andrewf/fern
 def testExpression(self):
     p=Parser('true')
     p.expression()
     self.assertEqual(p.result, True)
コード例 #14
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testAcceptsFileLike(self):
     f = StringIO("foo=17 bar='ughu'")
     p = Parser(f)
     m = p.parse()
     self.assertEqual(m['foo'], 17)
     self.assertEqual(m['bar'], 'ughu')
コード例 #15
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testStringToString(self):
     p=Parser("foo='bar'")
     self.assertTrue(p.kvpair())
     result = p.result
     self.assertEqual(result.key, 'foo')
     self.assertEqual(result.value, 'bar')
コード例 #16
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testWithMaps(self):
     p=Parser('a={bar=42} b={foo=a}')
     m = p.parse()
     self.assertEqual(m.eval(), {'a':{'bar':42}, 'b':{'foo':{'bar':42}}})
コード例 #17
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testBasic(self):
     p=Parser('a=3 b=a')
     m = p.parse()
     self.assertEqual(m['b'], 3)
     m.set_key('a', 5)
     self.assertEqual(m['b'], 5)
コード例 #18
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testAlone(self):
     p=Parser('foo')
     self.assertTrue(p.nameref())
     self.assertEqual(p.result.name, 'foo')
コード例 #19
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testParseMap(self):
     p=Parser("{a=42 b={foo='bar'} @'guh' =   [3 4]}")
     self.assertTrue(p.map())
     self.assertEqual({'a':42,'b':{'foo':'bar'}, 'guh':[3, 4]}, p.result.eval())
コード例 #20
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testParseEmptyMap(self):
     p=Parser('{}')
     self.assertTrue(p.map())
     self.assertEqual({}, p.result.eval())
コード例 #21
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testParseList(self):
     p=Parser("[1 2 'foo' ['hey' 5] 4]")
     self.assertTrue(p.list())
     result = p.result
     self.assertTrue(isinstance(result, fern.ast.List))
     self.assertEqual(result.eval(), [1, 2, 'foo', ['hey', 5], 4])
コード例 #22
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testAtKey(self):
     p=Parser("@'foo'=42")
     self.assertTrue(p.kvpair())
     result = p.result
     self.assertEqual(result.key, 'foo')
     self.assertEqual(result.value, 42)
コード例 #23
0
ファイル: testParser.py プロジェクト: andrewf/fern
 def testParseEmptyList(self):
     p=Parser("[]")
     self.assertTrue(p.list())
     self.assertEqual([], p.result.eval())