Support Python 3.x kw-only arguments.

This commit is contained in:
Michael Hansen
2019-10-08 11:36:12 -07:00
parent 3e379c114e
commit 9309effba9
7 changed files with 102 additions and 20 deletions

View File

@@ -218,17 +218,20 @@ private:
class ASTFunction : public ASTNode {
public:
typedef std::list<PycRef<ASTNode> > defarg_t;
typedef std::list<PycRef<ASTNode>> defarg_t;
ASTFunction(PycRef<ASTNode> code, defarg_t defArgs)
: ASTNode(NODE_FUNCTION), m_code(code), m_defargs(defArgs) { }
ASTFunction(PycRef<ASTNode> code, defarg_t defArgs, defarg_t kwDefArgs)
: ASTNode(NODE_FUNCTION), m_code(std::move(code)),
m_defargs(std::move(defArgs)), m_kwdefargs(std::move(kwDefArgs)) { }
PycRef<ASTNode> code() const { return m_code; }
const defarg_t& defargs() const { return m_defargs; }
const defarg_t& kwdefargs() const { return m_kwdefargs; }
private:
PycRef<ASTNode> m_code;
defarg_t m_defargs;
defarg_t m_kwdefargs;
};