コード例 #1
0
 def test_make_node_warn(self):
     gl.SYMBOL_TABLE.declare_array('test', 1, symbols.TYPEREF(self.arr.type_, 1),
                                   bounds=self.bounds)
     self.arg[1] = symbols.ARGUMENT(symbols.NUMBER(9, 1), 1)
     aa = symbols.ARRAYACCESS.make_node('test', self.arg, lineno=2)
     self.assertIsNotNone(aa)
     self.assertEqual(self.OUTPUT, "(stdin):2: warning: Array 'test' subscript out of range\n")
コード例 #2
0
 def test_make_node_fail(self):
     gl.SYMBOL_TABLE.declare_array('test', 1, symbols.TYPEREF(self.arr.type_, 1),
                                   bounds=self.bounds)
     self.arg = symbols.ARGLIST(symbols.ARGUMENT(symbols.NUMBER(2, 1), 1))
     aa = symbols.ARRAYACCESS.make_node('test', self.arg, lineno=2)
     self.assertIsNone(aa)
     self.assertEqual(self.OUTPUT, "(stdin):2: Array 'test' has 2 dimensions, not 1\n")
コード例 #3
0
 def setUp(self):
     zxbpp.init()
     l1 = 1
     l2 = 2
     l3 = 3
     l4 = 4
     b = symbols.BOUND(l1, l2)
     c = symbols.BOUND(l3, l4)
     self.bounds = symbols.BOUNDLIST.make_node(None, b, c)
     self.arr = symbols.VARARRAY('test', self.bounds, 1, type_=Type.ubyte)
     self.arg = symbols.ARGLIST(symbols.ARGUMENT(symbols.NUMBER(2, 1, type_=Type.uinteger), 1),
                                symbols.ARGUMENT(symbols.NUMBER(3, 1, type_=Type.uinteger), 1))
     gl.SYMBOL_TABLE = SymbolTable()
     # Clears stderr and prepares for capturing it
     config.OPTIONS.remove_option('stderr')
     config.OPTIONS.add_option('stderr', None, StringIO())
     config.OPTIONS.add_option_if_not_defined('explicit', None, False)
コード例 #4
0
 def setUp(self):
     self.VALUE = 5
     self.value = symbols.NUMBER(self.VALUE, 1)
     self.a = symbols.ARGLIST(
         symbols.ARGUMENT(symbols.NUMBER(self.VALUE, 1), 1))
コード例 #5
0
 def test_make_node_single2(self):
     b = symbols.ARGLIST.make_node(
         None, symbols.ARGUMENT(symbols.NUMBER(self.VALUE, 1), 1))
     self.assertIsInstance(b, symbols.ARGLIST)
     self.assertEqual(len(b), 1)
     self.assertEqual(b[0], self.value)
コード例 #6
0
 def test_args_setter(self):
     self.a[0] = symbols.ARGUMENT(symbols.NUMBER(self.VALUE + 1, 1), 1)
     self.assertEqual(self.a[0], self.value + 1)