module PythonAst where data PyBinOp = Add | Subtract | Multiply | Divide | FloorDiv | LessThan | LessThanEq | GreaterThan | GreaterThanEq | Equal | NotEqual | And | Or data PyExpr = BinOp PyBinOp PyExpr PyExpr | IntLiteral Int | StrLiteral String | BoolLiteral Bool | ListLiteral [PyExpr] | DictLiteral [(PyExpr, PyExpr)] | Lambda [PyPat] PyExpr | Var String | TupleLiteral [PyExpr] | FunctionCall PyExpr [PyExpr] | Access PyExpr [PyExpr] | Ternary PyExpr PyExpr PyExpr | Member PyExpr String | In PyExpr PyExpr | NotIn PyExpr PyExpr | Slice (Maybe PyExpr) (Maybe PyExpr) data PyPat = VarPat String | IgnorePat | TuplePat [PyPat] | AccessPat PyExpr [PyExpr] data PyStmt = Assign PyPat PyExpr | IfElse PyExpr [PyStmt] [(PyExpr, [PyStmt])] (Maybe [PyStmt]) | While PyExpr [PyStmt] | For PyPat PyExpr [PyStmt] | FunctionDef String [String] [PyStmt] | Return PyExpr | Standalone PyExpr | Import String | FromImport String [String] | Nonlocal [String]