Home | History | Annotate | Download | only in compiler
      1 # This file describes the nodes of the AST in ast.py.  The module is
      2 # generated by astgen.py.  
      3 # The descriptions use the following special notation to describe
      4 # properties of the children:
      5 #    *   this child is not a node
      6 #    !   this child is a sequence that contains nodes in it
      7 #    &   this child may be set to None
      8 #  = ... a default value for the node constructor (optional args)
      9 #
     10 # If you add node types here, please be sure to update the list of 
     11 # Node types in Doc/lib/asttable.tex.
     12 Module: doc*, node
     13 Stmt: nodes!
     14 Decorators: nodes!
     15 Function: decorators&, name*, argnames*, defaults!, flags*, doc*, code
     16 Lambda: argnames*, defaults!, flags*, code
     17 Class: name*, bases!, doc*, code, decorators& = None
     18 Pass: 
     19 Break: 
     20 Continue: 
     21 For: assign, list, body, else_&
     22 While: test, body, else_&
     23 With: expr, vars&, body
     24 If: tests!, else_&
     25 IfExp: test, then, else_
     26 Exec: expr, locals&, globals&
     27 From: modname*, names*, level*
     28 Import: names*
     29 Raise: expr1&, expr2&, expr3&
     30 TryFinally: body, final
     31 TryExcept: body, handlers!, else_&
     32 Return: value
     33 Yield: value
     34 Const: value*
     35 Print: nodes!, dest&
     36 Printnl: nodes!, dest&
     37 Discard: expr
     38 AugAssign: node, op*, expr
     39 Assign: nodes!, expr
     40 AssTuple: nodes!
     41 AssList: nodes!
     42 AssName: name*, flags*
     43 AssAttr: expr, attrname*, flags*
     44 ListComp: expr, quals!
     45 ListCompFor: assign, list, ifs!
     46 ListCompIf: test
     47 GenExpr: code
     48 GenExprInner: expr, quals!
     49 GenExprFor: assign, iter, ifs!
     50 GenExprIf: test
     51 List: nodes!
     52 Dict: items!
     53 Not: expr
     54 Compare: expr, ops!
     55 Name: name*
     56 Global: names*
     57 Backquote: expr
     58 Getattr: expr, attrname*
     59 CallFunc: node, args!, star_args& = None, dstar_args& = None
     60 Keyword: name*, expr
     61 Subscript: expr, flags*, subs!
     62 Ellipsis: 
     63 Sliceobj: nodes!
     64 Slice: expr, flags*, lower&, upper&
     65 Assert: test, fail&
     66 Tuple: nodes!
     67 Or: nodes!
     68 And: nodes!
     69 Bitor: nodes!
     70 Bitxor: nodes!
     71 Bitand: nodes!
     72 LeftShift: (left, right)
     73 RightShift: (left, right)
     74 Add: (left, right)
     75 Sub: (left, right)
     76 Mul: (left, right)
     77 Div: (left, right)
     78 Mod: (left, right)
     79 Power: (left, right)
     80 FloorDiv: (left, right)
     81 UnaryAdd: expr
     82 UnarySub: expr
     83 Invert: expr
     84 
     85 init(Function):
     86     self.varargs = self.kwargs = None
     87     if flags & CO_VARARGS:
     88         self.varargs = 1
     89     if flags & CO_VARKEYWORDS:
     90         self.kwargs = 1
     91 
     92 init(Lambda):
     93     self.varargs = self.kwargs = None
     94     if flags & CO_VARARGS:
     95         self.varargs = 1
     96     if flags & CO_VARKEYWORDS:
     97         self.kwargs = 1
     98 
     99 init(GenExpr):
    100     self.argnames = ['.0']
    101     self.varargs = self.kwargs = None
    102 
    103 init(GenExprFor):
    104     self.is_outmost = False
    105