blob: 2c42f99cee860d011c032dd3844de0c941da8e7e [file] [log] [blame]
Akira Hayakawaa5c49252014-08-22 13:34:53 +09001#-----------------------------------------------------------------
Hart Chua611da92017-02-19 11:30:42 -06002# pycparser: rewrite_ast.py
Akira Hayakawaa5c49252014-08-22 13:34:53 +09003#
4# Tiny example of rewriting a AST node
5#
Jon Dufresne1d866992018-06-26 13:49:35 -07006# Eli Bendersky [https://eli.thegreenplace.net/]
Akira Hayakawaa5c49252014-08-22 13:34:53 +09007# License: BSD
8#-----------------------------------------------------------------
9from __future__ import print_function
10import sys
11
12from pycparser import c_parser
13
14text = r"""
15void func(void)
16{
Eli Bendersky4a7675a2014-08-22 05:35:06 -070017 x = 1;
Akira Hayakawaa5c49252014-08-22 13:34:53 +090018}
19"""
20
21parser = c_parser.CParser()
22ast = parser.parse(text)
23print("Before:")
24ast.show(offset=2)
25
26assign = ast.ext[0].body.block_items[0]
27assign.lvalue.name = "y"
28assign.rvalue.value = 2
29
30print("After:")
31ast.show(offset=2)