summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAkira Hayakawa <ruby.wktk@gmail.com>2014-08-22 13:34:53 +0900
committerAkira Hayakawa <ruby.wktk@gmail.com>2014-08-22 13:34:53 +0900
commita5c492552433ca431ee5cc0804092949558c822f (patch)
tree93d837908335e93a3e1296774c66c0be4209969b /examples
parentb35f7836eb509d5653b6c5346e0f76ed8a8799dd (diff)
downloadpycparser-a5c492552433ca431ee5cc0804092949558c822f.tar.gz
examples: add example of rewriting AST node
Signed-off-by: Akira Hayakawa <ruby.wktk@gmail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/rewrite_ast.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/rewrite_ast.py b/examples/rewrite_ast.py
new file mode 100644
index 0000000..a4630a4
--- /dev/null
+++ b/examples/rewrite_ast.py
@@ -0,0 +1,31 @@
+#-----------------------------------------------------------------
+# pycparser: func_write.py
+#
+# Tiny example of rewriting a AST node
+#
+# Copyright (C) 2014, Akira Hayakawa
+# License: BSD
+#-----------------------------------------------------------------
+from __future__ import print_function
+import sys
+
+from pycparser import c_parser
+
+text = r"""
+void func(void)
+{
+ x = 1;
+}
+"""
+
+parser = c_parser.CParser()
+ast = parser.parse(text)
+print("Before:")
+ast.show(offset=2)
+
+assign = ast.ext[0].body.block_items[0]
+assign.lvalue.name = "y"
+assign.rvalue.value = 2
+
+print("After:")
+ast.show(offset=2)