U  e@srdZddlZddlmZddlmZGdddZGdddZGd d d eZGd d d ZGd ddeZ dS)zjutilities for analyzing expressions and blocks of Python code, as well as generating Python from AST nodesN) exceptions)pyparserc@seZdZdZddZdS) PythonCodezappendpoprZExpressionGeneratorvaluevarargsreverse) rZas_callZ namedeclsrAr?rBrCnamedefaultrrrget_argument_expressionssB       z%FunctionDecl.get_argument_expressionscCst|jt|jS)N)tuplerAr?)rrrr allargnamesszFunctionDecl.allargnamesN)T)F)rrrrrrKpropertyrMrrrrr:qs   9r:cs eZdZdZfddZZS) FunctionArgsz.the argument portion of a function declarationc stjd|f|dS)Nzdef ANON(%s):pass)r3r)rrr>r6rrrszFunctionArgs.__init__r8rrr6rrOsrO) rrmakorrrrr!r:rOrrrrs  ")T