clone.putTerminalNode((TerminalNode)((TerminalNode)node).clone());
clone.putTerminalNode((TerminalNode)((TerminalNode)node).clone());
/** * Add a new terminal node. * @param rule The rule. * @param context The build context. */ protected void addTerminalNode(IRule rule, BuildContext context) { // Create and connect the terminal node Map varinfos = context.getVarInfos(); Map extractors = new HashMap(); for(Iterator it=varinfos.keySet().iterator(); it.hasNext(); ) { Variable var = (Variable)it.next(); if(!var.isTemporary()) extractors.put(var.getName(), getLeftVariableExtractor(context, var)); } TerminalNode tnode = new TerminalNode(context.getRootNode().getNextNodeId(), rule, extractors); connectLeft(context.getLastBetaNode(), tnode, context); // Save the terminal node for later removal context.getRootNode().putTerminalNode(tnode); }
/** * Add a new terminal node. * @param rule The rule. * @param context The build context. */ protected void addTerminalNode(IRule rule, BuildContext context) { // Create and connect the terminal node Map varinfos = context.getVarInfos(); Map extractors = new HashMap(); for(Iterator it=varinfos.keySet().iterator(); it.hasNext(); ) { Variable var = (Variable)it.next(); if(!var.isTemporary()) extractors.put(var.getName(), getLeftVariableExtractor(context, var)); } TerminalNode tnode = new TerminalNode(context.getRootNode().getNextNodeId(), rule, extractors); connectLeft(context.getLastBetaNode(), tnode, context); // Save the terminal node for later removal context.getRootNode().putTerminalNode(tnode); }