summaryrefslogtreecommitdiff
path: root/toolkit/src2xml/source/macroexpander_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/src2xml/source/macroexpander_test.py')
-rw-r--r--toolkit/src2xml/source/macroexpander_test.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/toolkit/src2xml/source/macroexpander_test.py b/toolkit/src2xml/source/macroexpander_test.py
new file mode 100644
index 000000000000..823bcdb36bc2
--- /dev/null
+++ b/toolkit/src2xml/source/macroexpander_test.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+
+import srclexer, srcparser, globals
+
+class TestCase:
+
+ @staticmethod
+ def run (tokens, defines):
+ mcExpander = srcparser.MacroExpander(tokens, defines)
+ mcExpander.debug = True
+ mcExpander.expand()
+ tokens = mcExpander.getTokens()
+ print tokens
+
+ @staticmethod
+ def simpleNoArgs ():
+ tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
+ defines = {}
+ macro = globals.Macro('FUNC_FOO')
+ macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
+ defines['FUNC_FOO'] = macro
+ TestCase.run(tokens, defines)
+
+ @staticmethod
+ def simpleArgs ():
+ tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
+ defines = {}
+ macro = globals.Macro('FUNC_FOO')
+ macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
+ macro.vars['X'] = 0
+ macro.vars['Y'] = 1
+ defines['FUNC_FOO'] = macro
+ TestCase.run(tokens, defines)
+
+ @staticmethod
+ def multiTokenArgs ():
+ tokens = ['FUNC_FOO', '(', 'left1', 'left2', 'left3', ',', 'right', ')']
+ defines = {}
+ macro = globals.Macro('FUNC_FOO')
+ macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
+ macro.vars['X'] = 0
+ macro.vars['Y'] = 1
+ defines['FUNC_FOO'] = macro
+ TestCase.run(tokens, defines)
+
+ @staticmethod
+ def nestedTokenArgs ():
+ tokens = ['FUNC_BAA', '(', 'left', ',', 'right', ')']
+ defines = {}
+ macro = globals.Macro('FUNC_FOO')
+ macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
+ macro.vars['X'] = 0
+ macro.vars['Y'] = 1
+ defines['FUNC_FOO'] = macro
+ macro = globals.Macro('FUNC_BAA')
+ macro.tokens = ['FUNC_FOO']
+ defines['FUNC_BAA'] = macro
+ TestCase.run(tokens, defines)
+
+def main ():
+ print "simple expansion with no arguments"
+ TestCase.simpleNoArgs()
+ print "simple argument expansion"
+ TestCase.simpleArgs()
+ print "multi-token argument expansion"
+ TestCase.multiTokenArgs()
+ print "nested argument expansion"
+ TestCase.nestedTokenArgs()
+
+if __name__ == '__main__':
+ main()