@Override public void text(String text) { chunks.add(new ActionText(nodeContext,text)); }
public Action(OutputModelFactory factory, StructDecl ctx, ST actionST) { super(factory, null); chunks = new ArrayList<ActionChunk>(); chunks.add(new ActionTemplate(ctx, actionST)); }
@Override public void attr(String expr, Token x) { gen.g.tool.log("action-translator", "attr "+x); Attribute a = node.resolver.resolveToAttribute(x.getText(), node); if ( a!=null ) { switch ( a.dict.type ) { case ARG: chunks.add(new ArgRef(nodeContext,x.getText())); break; case RET: chunks.add(new RetValueRef(rf.ruleCtx, x.getText())); break; case LOCAL: chunks.add(new LocalRef(nodeContext,x.getText())); break; case PREDEFINED_RULE: chunks.add(getRulePropertyRef(x)); break; } } if ( node.resolver.resolvesToToken(x.getText(), node) ) { chunks.add(new TokenRef(nodeContext,getTokenLabel(x.getText()))); // $label return; } if ( node.resolver.resolvesToLabel(x.getText(), node) ) { chunks.add(new LabelRef(nodeContext,getTokenLabel(x.getText()))); // $x for x=ID etc... return; } if ( node.resolver.resolvesToListLabel(x.getText(), node) ) { chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc... return; } Rule r = factory.getGrammar().getRule(x.getText()); if ( r!=null ) { chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref } }
@Override public void setAttr(String expr, Token x, Token rhs) { gen.g.tool.log("action-translator", "setAttr "+x+" "+rhs); List<ActionChunk> rhsChunks = translateActionChunk(factory,rf,rhs.getText(),node); SetAttr s = new SetAttr(nodeContext, x.getText(), rhsChunks); chunks.add(s); }
@Override public void attr(String expr, Token x) { gen.g.tool.log("action-translator", "attr "+x); Attribute a = node.resolver.resolveToAttribute(x.getText(), node); if ( a!=null ) { switch ( a.dict.type ) { case ARG: chunks.add(new ArgRef(nodeContext,x.getText())); break; case RET: chunks.add(new RetValueRef(rf.ruleCtx, x.getText())); break; case LOCAL: chunks.add(new LocalRef(nodeContext,x.getText())); break; case PREDEFINED_RULE: chunks.add(getRulePropertyRef(x)); break; } } if ( node.resolver.resolvesToToken(x.getText(), node) ) { chunks.add(new TokenRef(nodeContext,getTokenLabel(x.getText()))); // $label return; } if ( node.resolver.resolvesToLabel(x.getText(), node) ) { chunks.add(new LabelRef(nodeContext,getTokenLabel(x.getText()))); // $x for x=ID etc... return; } if ( node.resolver.resolvesToListLabel(x.getText(), node) ) { chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc... return; } Rule r = factory.getGrammar().getRule(x.getText()); if ( r!=null ) { chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref } }
@Override public void text(String text) { chunks.add(new ActionText(nodeContext,text)); }
public Action(OutputModelFactory factory, StructDecl ctx, ST actionST) { super(factory, null); chunks = new ArrayList<ActionChunk>(); chunks.add(new ActionTemplate(ctx, actionST)); }
@Override public void setAttr(String expr, Token x, Token rhs) { gen.g.tool.log("action-translator", "setAttr "+x+" "+rhs); List<ActionChunk> rhsChunks = translateActionChunk(factory,rf,rhs.getText(),node); SetAttr s = new SetAttr(nodeContext, x.getText(), rhsChunks); chunks.add(s); }
@Override public void attr(String expr, Token x) { gen.g.tool.log("action-translator", "attr "+x); Attribute a = node.resolver.resolveToAttribute(x.getText(), node); if ( a!=null ) { switch ( a.dict.type ) { case ARG: chunks.add(new ArgRef(nodeContext,x.getText())); break; case RET: chunks.add(new RetValueRef(rf.ruleCtx, x.getText())); break; case LOCAL: chunks.add(new LocalRef(nodeContext,x.getText())); break; case PREDEFINED_RULE: chunks.add(getRulePropertyRef(x)); break; } } if ( node.resolver.resolvesToToken(x.getText(), node) ) { chunks.add(new TokenRef(nodeContext,getTokenLabel(x.getText()))); // $label return; } if ( node.resolver.resolvesToLabel(x.getText(), node) ) { chunks.add(new LabelRef(nodeContext,getTokenLabel(x.getText()))); // $x for x=ID etc... return; } if ( node.resolver.resolvesToListLabel(x.getText(), node) ) { chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc... return; } Rule r = factory.getGrammar().getRule(x.getText()); if ( r!=null ) { chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref } }
@Override public void text(String text) { chunks.add(new ActionText(nodeContext,text)); }
public Action(OutputModelFactory factory, StructDecl ctx, ST actionST) { super(factory, null); chunks = new ArrayList<ActionChunk>(); chunks.add(new ActionTemplate(ctx, actionST)); }
@Override public void setAttr(String expr, Token x, Token rhs) { gen.g.tool.log("action-translator", "setAttr "+x+" "+rhs); List<ActionChunk> rhsChunks = translateActionChunk(factory,rf,rhs.getText(),node); SetAttr s = new SetAttr(nodeContext, x.getText(), rhsChunks); chunks.add(s); }
@Override public void attr(String expr, Token x) { gen.g.tool.log("action-translator", "attr "+x); Attribute a = node.resolver.resolveToAttribute(x.getText(), node); if ( a!=null ) { switch ( a.dict.type ) { case ARG: chunks.add(new ArgRef(nodeContext,x.getText())); break; case RET: chunks.add(new RetValueRef(rf.ruleCtx, x.getText())); break; case LOCAL: chunks.add(new LocalRef(nodeContext,x.getText())); break; case PREDEFINED_RULE: chunks.add(getRulePropertyRef(x)); break; } } if ( node.resolver.resolvesToToken(x.getText(), node) ) { chunks.add(new TokenRef(nodeContext,getTokenLabel(x.getText()))); // $label return; } if ( node.resolver.resolvesToLabel(x.getText(), node) ) { chunks.add(new LabelRef(nodeContext,getTokenLabel(x.getText()))); // $x for x=ID etc... return; } if ( node.resolver.resolvesToListLabel(x.getText(), node) ) { chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc... return; } Rule r = factory.getGrammar().getRule(x.getText()); if ( r!=null ) { chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref } }
@Override public void text(String text) { chunks.add(new ActionText(nodeContext,text)); }
public Action(OutputModelFactory factory, StructDecl ctx, ST actionST) { super(factory, null); chunks = new ArrayList<ActionChunk>(); chunks.add(new ActionTemplate(ctx, actionST)); }
@Override public void attr(String expr, Token x) { gen.g.tool.log("action-translator", "attr "+x); Attribute a = node.resolver.resolveToAttribute(x.getText(), node); if ( a!=null ) { switch ( a.dict.type ) { case ARG: chunks.add(new ArgRef(nodeContext,x.getText())); break; case RET: chunks.add(new RetValueRef(rf.ruleCtx, x.getText())); break; case LOCAL: chunks.add(new LocalRef(nodeContext,x.getText())); break; case PREDEFINED_RULE: chunks.add(getRulePropertyRef(x)); break; } } if ( node.resolver.resolvesToToken(x.getText(), node) ) { chunks.add(new TokenRef(nodeContext,getTokenLabel(x.getText()))); // $label return; } if ( node.resolver.resolvesToLabel(x.getText(), node) ) { chunks.add(new LabelRef(nodeContext,getTokenLabel(x.getText()))); // $x for x=ID etc... return; } if ( node.resolver.resolvesToListLabel(x.getText(), node) ) { chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc... return; } Rule r = factory.getGrammar().getRule(x.getText()); if ( r!=null ) { chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref } }
@Override public void text(String text) { chunks.add(new ActionText(nodeContext,text)); }
public Action(OutputModelFactory factory, StructDecl ctx, ST actionST) { super(factory, null); chunks = new ArrayList<ActionChunk>(); chunks.add(new ActionTemplate(ctx, actionST)); }
public ParserFile(OutputModelFactory factory, String fileName) { super(factory, fileName); Grammar g = factory.getGrammar(); namedActions = buildNamedActions(factory.getGrammar()); genPackage = g.tool.genPackage; exportMacro = factory.getGrammar().getOptionString("exportMacro"); // need the below members in the ST for Python, C++ genListener = g.tool.gen_listener; genVisitor = g.tool.gen_visitor; grammarName = g.name; if (g.getOptionString("contextSuperClass") != null) { contextSuperClass = new ActionText(null, g.getOptionString("contextSuperClass")); } } }
public ParserFile(OutputModelFactory factory, String fileName) { super(factory, fileName); Grammar g = factory.getGrammar(); namedActions = buildNamedActions(factory.getGrammar()); genPackage = g.tool.genPackage; exportMacro = factory.getGrammar().getOptionString("exportMacro"); // need the below members in the ST for Python, C++ genListener = g.tool.gen_listener; genVisitor = g.tool.gen_visitor; grammarName = g.name; if (g.getOptionString("contextSuperClass") != null) { contextSuperClass = new ActionText(null, g.getOptionString("contextSuperClass")); } } }