import unittest
import textwrap
import antlr3
import testbase
class T(testbase.ANTLRTest):
def testRewrite(self):
self.compileGrammar()
input = textwrap.dedent(
'''\
method foo() {
i = 3;
k = i;
i = k*4;
}
method bar() {
j = i*2;
}
''')
cStream = antlr3.StringStream(input)
lexer = self.getLexer(cStream)
tStream = antlr3.TokenRewriteStream(lexer)
parser = self.getParser(tStream)
parser.program()
expectedOutput = textwrap.dedent('''\
public class Wrapper {
public void foo() {
int k;
int i;
i = 3;
k = i;
i = k*4;
}
public void bar() {
int j;
j = i*2;
}
}
''')
self.assertEqual(str(tStream), expectedOutput)
if __name__ == '__main__':
unittest.main()