summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
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)