Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:

FWIW, I wrote a generic AST pretty printer for a personal compiler project (see 
attached file).  Perhaps it can be adapted to the Python AST.

## Example input ###############################

Program(procs=[Procedure(name='FACTORIAL', params=['N'], is_test=False, 
body=Block(blocknum=0, stmts=[Assign(name=Output(is_bool=False), 
value=Number(x=1)), Assign(name=Cell(i=0), value=Number(x=1)), 
Loop(times=Id(name='N'), fixed=False, body=Block(blocknum=1, 
stmts=[Assign(name=Output(is_bool=False), 
value=BinOp(value1=Output(is_bool=False), op='x', value2=Cell(i=0))), 
Assign(name=Cell(i=0), value=BinOp(value1=Cell(i=0), op='+', 
value2=Number(x=1)))]))]))], calls=[])

## Example output ###############################

Program(
   procs = [
      Procedure(
         name = 'FACTORIAL',
         params = [
            'N'
         ],
         is_test = False,
         body = Block(
            blocknum = 0,
            stmts = [
               Assign(
                  name = Output(is_bool=False),
                  value = Number(x=1)
               ),
               Assign(
                  name = Cell(i=0),
                  value = Number(x=1)
               ),
               Loop(
                  times = Id(name='N'),
                  fixed = False,
                  body = Block(
                     blocknum = 1,
                     stmts = [
                        Assign(
                           name = Output(is_bool=False),
                           value = BinOp(
                              value1 = Output(is_bool=False),
                              op = 'x',
                              value2 = Cell(i=0)
                           )
                        ),
                        Assign(
                           name = Cell(i=0),
                           value = BinOp(
                              value1 = Cell(i=0),
                              op = '+',
                              value2 = Number(x=1)
                           )
                        )
                     ]
                  )
               )
            ]
         )
      )
   ],
   calls = []
)

----------
Added file: https://bugs.python.org/file48579/ast_bloop.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37995>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to