Skip to content

Instantly share code, notes, and snippets.

@eliben
Created February 4, 2012 03:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eliben/1734923 to your computer and use it in GitHub Desktop.
Save eliben/1734923 to your computer and use it in GitHub Desktop.
AST for parsing Duff's device with pycparser
ileAST:
FuncDef:
Decl: send, [], [], []
FuncDecl:
ParamList:
Decl: to, [], [], []
TypeDecl: to, []
IdentifierType: ['int']
Decl: from, [], [], []
TypeDecl: from, []
IdentifierType: ['int']
Decl: count, [], [], []
TypeDecl: count, []
IdentifierType: ['int']
TypeDecl: send, []
IdentifierType: ['int']
Compound:
Decl: n, [], ['register'], []
TypeDecl: n, []
IdentifierType: []
BinaryOp: /
BinaryOp: +
ID: count
Constant: int, 7
Constant: int, 8
Switch:
BinaryOp: %
ID: count
Constant: int, 8
Compound:
Case:
Constant: int, 0
DoWhile:
BinaryOp: >
UnaryOp: --
ID: n
Constant: int, 0
Compound:
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 7
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 6
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 5
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 4
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 3
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 2
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Case:
Constant: int, 1
Assignment: =
UnaryOp: *
ID: to
UnaryOp: *
UnaryOp: p++
ID: from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment