protected final suiteType popSuiteAndSuiteType() { Suite s = (Suite) stack.popNode(); suiteType orelseSuite = (suiteType) stack.popNode(); orelseSuite.body = s.body; addSpecialsAndClearOriginal(s, orelseSuite); return orelseSuite; }
protected final stmtType[] makeStmts(int l) { stmtType[] stmts = new stmtType[l]; for (int i = l - 1; i >= 0; i--) { stmts[i] = (stmtType) stack.popNode(); } return stmts; }
protected final aliasType[] makeAliases(int l) { aliasType[] aliases = new aliasType[l]; for (int i = l - 1; i >= 0; i--) { aliases[i] = (aliasType) stack.popNode(); } return aliases; }
protected final exprType[] makeExprs(int l) { exprType[] exprs = new exprType[l]; for (int i = l - 1; i >= 0; i--) { lastPop = stack.popNode(); exprs[i] = (exprType) lastPop; } return exprs; }
protected final SimpleNode makeDecorator(java.util.List<SimpleNode> nodes) { exprType starargs = null; exprType kwargs = null; exprType func = null; ArrayList<SimpleNode> keywordsl = new ArrayList<SimpleNode>(); ArrayList<SimpleNode> argsl = new ArrayList<SimpleNode>(); for (Iterator<SimpleNode> iter = nodes.iterator(); iter.hasNext(); ) { SimpleNode node = iter.next(); if (node.getId() == JJTEXTRAKEYWORDVALUELIST) { final ExtraArgValue extraArg = (ExtraArgValue) node; kwargs = (extraArg).value; this.addSpecialsAndClearOriginal(extraArg, kwargs); extraArg.specialsBefore = kwargs.getSpecialsBefore(); extraArg.specialsAfter = kwargs.getSpecialsAfter(); } else if (node.getId() == JJTEXTRAARGVALUELIST) { final ExtraArgValue extraArg = (ExtraArgValue) node; starargs = extraArg.value; this.addSpecialsAndClearOriginal(extraArg, starargs); extraArg.specialsBefore = starargs.getSpecialsBefore(); extraArg.specialsAfter = starargs.getSpecialsAfter(); } else if (node instanceof keywordType) { // keyword keywordsl.add(node); } else if (isArg(node)) { // default argsl.add(node); } else if (node instanceof Comprehension) { argsl.add( new ListComp( (exprType) iter.next(), new comprehensionType[] {(comprehensionType) node})); } else if (node instanceof ComprehensionCollection) { // list comp (2 nodes: comp type and the elt -- what does elt mean by the way?) argsl.add( new ListComp((exprType) iter.next(), ((ComprehensionCollection) node).getGenerators())); } else if (node instanceof decoratorsType) { func = (exprType) stack.popNode(); // the func is the last thing in the stack decoratorsType d = (decoratorsType) node; d.func = func; d.args = (exprType[]) argsl.toArray(new exprType[0]); d.keywords = (keywordType[]) keywordsl.toArray(new keywordType[0]); d.starargs = starargs; d.kwargs = kwargs; return d; } else { argsl.add(node); } } throw new RuntimeException("Something wrong happened while making the decorators..."); }
/** * @param suite * @return */ protected final stmtType[] getBodyAndSpecials() { Suite suite = (Suite) stack.popNode(); stmtType[] body; body = suite.body; if (suite.specialsBefore != null && suite.specialsBefore.size() > 0) { body[0].getSpecialsBefore().addAll(suite.specialsBefore); } if (suite.specialsAfter != null && suite.specialsAfter.size() > 0) { body[body.length - 1].getSpecialsAfter().addAll(suite.specialsAfter); } return body; }
protected final NameTok[] makeIdentifiers(int ctx) { int l = stack.nodeArity(); return makeIdentifiers(ctx, l); }
protected final NameTok makeName(int ctx) { Name name = (Name) stack.popNode(); return makeName(ctx, name); }
protected final exprType[] makeExprs() { if (stack.nodeArity() > 0 && stack.peekNode().getId() == JJTCOMMA) stack.popNode(); return makeExprs(stack.nodeArity()); }