Example #1
0
 def test_symbol_rewrite(self):
     symtab = rsl.symtab.SymbolTable()
     
     symtab.enter_scope()
     
     symtab.install_symbol('TEST', 'TEST1')
     symtab.install_symbol('TEST', 'TEST2')
     
     value = symtab.find_symbol("TEST")
     symtab.leave_scope()
     
     self.assertEqual(value, 'TEST2')
Example #2
0
 def test_symbol_store(self):
     symtab = rsl.symtab.SymbolTable()
     handle = "TEST"
     
     symtab.enter_scope()
     symtab.enter_scope()
     
     symtab.install_symbol('Test', handle)
     value = symtab.find_symbol("Test")
     symtab.leave_scope()
     
     self.assertRaises(rsl.symtab.SymtabException, symtab.find_symbol, "Test")
     
     self.assertEqual(handle, value)
Example #3
0
    def test_get_scope_symbols(self):
        symtab = rsl.symtab.SymbolTable()
        
        symtab.enter_scope()
        self.assertEqual(len(symtab.scope_head.symbols), 0)
        
        symtab.install_symbol('TEST', 'TEST1')
        symtab.install_symbol('TEST', 'TEST2')
        self.assertEqual(len(symtab.scope_head.symbols), 1)
        
        symtab.install_symbol('TEST1', '')
        self.assertEqual(len(symtab.scope_head.symbols), 2)

        symtab.leave_scope()
        
        symtab.enter_scope()
        self.assertEqual(len(symtab.scope_head.symbols), 0)
Example #4
0
    def test_global_store(self):
        symtab = rsl.symtab.SymbolTable()

        g1 = "Test1"
        g2 = "Test2"
        
        symtab.enter_scope()
        symtab.install_global("g1", g1)
        
        symtab.enter_scope()
        symtab.install_global("g2", g2)
        symtab.leave_scope()

        self.assertEqual(symtab.find_symbol("g1"), g1)
        self.assertEqual(symtab.find_symbol("g2"), g2)
        
        symtab.leave_scope()
        
        self.assertRaises(rsl.symtab.SymtabException, symtab.find_symbol, "g1")
        self.assertRaises(rsl.symtab.SymtabException, symtab.find_symbol, "g2")