本文整理汇总了Java中com.romanenco.cfrm.grammar.builder.GrammarJBuilder.addProductions方法的典型用法代码示例。如果您正苦于以下问题:Java GrammarJBuilder.addProductions方法的具体用法?Java GrammarJBuilder.addProductions怎么用?Java GrammarJBuilder.addProductions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.romanenco.cfrm.grammar.builder.GrammarJBuilder
的用法示例。
在下文中一共展示了GrammarJBuilder.addProductions方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: DragonLLGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
public DragonLLGrammar() {
super();
final GrammarJBuilder builder = new GrammarJBuilder(this);
builder.declareNonTerminals("E", "T", "E'", "T'", "F");
builder.declareStartSymbol("E");
builder.declareEpsilon(EPSILON);
builder.addTerminal("id", new LexerRule("\\d+"));
builder.addTerminal("+", new LexerRule("\\+"));
builder.addTerminal("*", new LexerRule("\\*"));
builder.addTerminal("(", new LexerRule("\\("));
builder.addTerminal(")", new LexerRule("\\)"));
builder.addTerminal("WS", new LexerRule(" +", LexerRule.TYPE.IGNORE));
builder.addProductions("E", "T E'");
builder.addProductions("E'", "+ T E'", EPSILON);
builder.addProductions("T", "F T'");
builder.addProductions("T'", "* F T'", EPSILON);
builder.addProductions("F", "( E )", "id");
}
示例2: getGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
private Grammar getGrammar() {
final GrammarJBuilder builder = new GrammarJBuilder();
builder.declareNonTerminals("E", "T", "E'", "T'", "F");
builder.declareStartSymbol("E");
builder.declareEpsilon("epsilon");
builder.addTerminal("id", new LexerRule("\\d+"));
builder.addTerminal("+", new LexerRule("\\+"));
builder.addTerminal("*", new LexerRule("\\*"));
builder.addTerminal("(", new LexerRule("\\("));
builder.addTerminal(")", new LexerRule("\\)"));
builder.addTerminal("WS", new LexerRule(" +", LexerRule.TYPE.IGNORE));
builder.addProductions("E", "T E'");
builder.addProductions("E'", "+ T E'", "epsilon");
builder.addProductions("T", "F T'");
builder.addProductions("T'", "* F T'", "epsilon");
builder.addProductions("F", "( E )", "id");
return builder.getGrammar();
}
示例3: getGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
private Grammar getGrammar() {
final GrammarJBuilder builder = new GrammarJBuilder();
builder.declareNonTerminals("S", "S'", "E");
builder.declareStartSymbol("S");
builder.declareEpsilon("epsilon");
builder.addTerminal("if");
builder.addTerminal("then");
builder.addTerminal("statement");
builder.addTerminal("else");
builder.addTerminal("expression");
builder.addProductions("S", "if E then S S'", "statement");
builder.addProductions("S'", "else S", "epsilon");
builder.addProductions("E", "expression");
return builder.getGrammar();
}
示例4: getGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
private Grammar getGrammar() {
final GrammarJBuilder builder = new GrammarJBuilder();
builder.declareNonTerminals("E", "T", "E'", "T'", "F");
builder.declareStartSymbol("E");
builder.declareEpsilon("epsilon");
builder.addTerminal("+");
builder.addTerminal("*");
builder.addTerminal("(");
builder.addTerminal(")");
builder.addTerminal("id");
builder.addProductions("E", "T E'");
builder.addProductions("E'", "+ T E'", "epsilon");
builder.addProductions("T", "F T'");
builder.addProductions("T'", "* F T'", "epsilon");
builder.addProductions("F", "( E )", "id");
return builder.getGrammar();
}
示例5: ABGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
public ABGrammar() {
super();
final GrammarJBuilder builder = new GrammarJBuilder(this);
builder.declareNonTerminals("SUM");
builder.declareStartSymbol("SUM");
builder.addTerminal("int", new LexerRule("\\d+"));
builder.addTerminal("+", new LexerRule("\\+"));
builder.addProductions("SUM", "int + int");
}
示例6: BrainFKGrammar
import com.romanenco.cfrm.grammar.builder.GrammarJBuilder; //导入方法依赖的package包/类
public BrainFKGrammar() {
super();
final GrammarJBuilder builder = new GrammarJBuilder(this);
builder.addTerminal("moveup", new LexerRule(">"));
builder.addTerminal("movedown", new LexerRule("<"));
builder.addTerminal("inc", new LexerRule("\\+"));
builder.addTerminal("dec", new LexerRule("\\-"));
builder.addTerminal("print", new LexerRule("\\."));
builder.addTerminal("read", new LexerRule(","));
builder.addTerminal("while_start", new LexerRule("\\["));
builder.addTerminal("while_end", new LexerRule("\\]"));
builder.addTerminal("skip", new LexerRule(".", TYPE.IGNORE));
builder.addTerminal("nl", new LexerRule("\\r?\\n", TYPE.IGNORE));
builder.declareNonTerminals("PROGRAM",
"STATEMENTS", "STATEMENT", "MORE_STATEMENTS",
"WHILE"
);
builder.declareStartSymbol("PROGRAM");
builder.declareEpsilon(EPSILON);
builder.addProductions("PROGRAM", "STATEMENTS");
builder.addProductions("STATEMENTS", "STATEMENT MORE_STATEMENTS");
builder.addProductions("MORE_STATEMENTS", "STATEMENT MORE_STATEMENTS", EPSILON);
builder.addProductions("STATEMENT",
"moveup",
"movedown",
"inc",
"dec",
"print",
"read",
"WHILE");
builder.addProductions("WHILE", "while_start STATEMENTS while_end");
builder.validateGrammar();
}