Home | History | Annotate | Download | only in tests
      1 import unittest
      2 import textwrap
      3 import antlr3
      4 import testbase
      5 
      6 class T(testbase.ANTLRTest):
      7     def testRewrite(self):
      8         self.compileGrammar()
      9 
     10         input = textwrap.dedent(
     11             '''\
     12             method foo() {
     13               i = 3;
     14               k = i;
     15               i = k*4;
     16             }
     17 
     18             method bar() {
     19               j = i*2;
     20             }
     21             ''')
     22         
     23         cStream = antlr3.StringStream(input)
     24         lexer = self.getLexer(cStream)
     25         tStream = antlr3.TokenRewriteStream(lexer)
     26         parser = self.getParser(tStream)
     27         parser.program()
     28 
     29         expectedOutput = textwrap.dedent('''\
     30         public class Wrapper {
     31         public void foo() {
     32         int k;
     33         int i;
     34           i = 3;
     35           k = i;
     36           i = k*4;
     37         }
     38 
     39         public void bar() {
     40         int j;
     41           j = i*2;
     42         }
     43         }
     44 
     45         ''')
     46 
     47         self.failUnlessEqual(
     48             str(tStream),
     49             expectedOutput
     50             )
     51 
     52 
     53 if __name__ == '__main__':
     54     unittest.main()
     55 
     56