@Override
public ParseContext transform(ParseContext pctx) throws SemanticException {
pGraphContext = pctx;
opToParseCtxMap = pGraphContext.getOpParseCtx();
OpWalkerInfo opWalkerInfo = new OpWalkerInfo(pGraphContext);
Map<Rule, NodeProcessor> opRules = new LinkedHashMap<Rule, NodeProcessor>();
opRules.put(new RuleRegExp("R1", "FIL%"), OpProcFactory.getFilterProc());
opRules.put(new RuleRegExp("R3", "JOIN%"), OpProcFactory.getJoinProc());
opRules.put(new RuleRegExp("R4", "RS%"), OpProcFactory.getRSProc());
opRules.put(new RuleRegExp("R5", "TS%"), OpProcFactory.getTSProc());
opRules.put(new RuleRegExp("R6", "SCR%"), OpProcFactory.getSCRProc());
opRules.put(new RuleRegExp("R6", "LIM%"), OpProcFactory.getLIMProc());
opRules.put(new RuleRegExp("R7", "UDTF%"), OpProcFactory.getUDTFProc());
opRules.put(new RuleRegExp("R8", "LVF%"), OpProcFactory.getLVFProc());
Dispatcher disp = new DefaultRuleDispatcher(OpProcFactory.getDefaultProc(),
opRules, opWalkerInfo);
GraphWalker ogw = new DefaultGraphWalker(disp);
ArrayList<Node> topNodes = new ArrayList<Node>();
topNodes.addAll(pGraphContext.getTopOps().values());
ogw.startWalking(topNodes, null);
return pGraphContext;
}