本文整理汇总了Java中org.eclipse.xtext.xtext.RuleNames.getRuleNames方法的典型用法代码示例。如果您正苦于以下问题:Java RuleNames.getRuleNames方法的具体用法?Java RuleNames.getRuleNames怎么用?Java RuleNames.getRuleNames使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.xtext.xtext.RuleNames
的用法示例。
在下文中一共展示了RuleNames.getRuleNames方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getGrammarPDAs
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
@Override
public SerializationContextMap<Pda<ISerState, RuleCall>> getGrammarPDAs(Grammar grammar) {
RuleNames names = RuleNames.getRuleNames(grammar, true);
RuleFilter filter = new RuleFilter();
filter.setDiscardTerminalRules(true);
filter.setDiscardUnreachableRules(false);
filter.setDiscardRuleTypeRef(false);
Grammar flattened = new FlattenedGrammarAccess(names, filter).getFlattenedGrammar();
Builder<Pda<ISerState, RuleCall>> result = SerializationContextMap.<Pda<ISerState, RuleCall>>builder();
for (ParserRule rule : GrammarUtil.allParserRules(flattened)) {
RuleWithParameterValues withParams = RuleWithParameterValues.findInEmfObject(rule);
AbstractRule original = withParams.getOriginal();
if (original instanceof ParserRule && isValidRule((ParserRule) original)) {
ISerializationContext context = createContext((ParserRule) original, withParams.getParamValues());
try {
Pda<ISerState, RuleCall> pda = createPDA(grammar, rule);
result.put(context, pda);
} catch (Exception e) {
LOG.error("Error creating PDA for context '" + context + "': " + e.getMessage(), e);
}
}
}
return result.create();
}
示例2: generate
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
public void generate(final Grammar it, final AntlrOptions options, final IXtextGeneratorFileSystemAccess fsa) {
this.keywordHelper = KeywordHelper.getHelper(it);
this.originalGrammar = it;
final RuleFilter filter = new RuleFilter();
filter.setDiscardUnreachableRules(options.isSkipUnusedRules());
final RuleNames ruleNames = RuleNames.getRuleNames(it, true);
final Grammar flattened = new FlattenedGrammarAccess(ruleNames, filter).getFlattenedGrammar();
boolean _isCombinedGrammar = this.isCombinedGrammar();
new CombinedGrammarMarker(_isCombinedGrammar).attachToEmfObject(flattened);
fsa.generateFile(this.getGrammarNaming().getParserGrammar(it).getGrammarFileName(), this.compileParser(flattened, options));
boolean _isCombinedGrammar_1 = this.isCombinedGrammar();
boolean _not = (!_isCombinedGrammar_1);
if (_not) {
fsa.generateFile(this.getGrammarNaming().getLexerGrammar(it).getGrammarFileName(), this.compileLexer(flattened, options));
}
}
示例3: generate
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
@Override
public void generate(Grammar grammar, XpandExecutionContext ctx) {
checkGrammar(grammar);
RuleFilter filter = new RuleFilter();
filter.setDiscardUnreachableRules(getOptions().isSkipUnusedRules());
RuleNames ruleNames = RuleNames.getRuleNames(grammar, true);
Grammar flattened = new FlattenedGrammarAccess(ruleNames, filter).getFlattenedGrammar();
super.generate(flattened, ctx);
}
示例4: getRuleName
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
/**
* Returns the effective rule name for the generated Antlr grammar.
* Inherited rules may be prefixed by {@code super[0..9]*}. Otherwise the
* prefix {@code rule or RULE_} is used.
* @since 2.9
*/
public static String getRuleName(AbstractRule rule) {
RuleWithParameterValues parameterValues = RuleWithParameterValues.findInEmfObject(rule);
if (parameterValues != null) {
return rule.getName();
}
RuleNames ruleNames = RuleNames.getRuleNames(rule);
return ruleNames.getAntlrRuleName(rule);
}
示例5: getModel
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
public Grammar getModel(final String model, final boolean dropUnreachable) throws Exception {
EObject _model = super.getModel(model);
Grammar grammar = ((Grammar) _model);
RuleNames ruleNames = RuleNames.getRuleNames(grammar, false);
RuleFilter filter = new RuleFilter();
filter.setDiscardUnreachableRules(dropUnreachable);
Grammar result = new FlattenedGrammarAccess(ruleNames, filter).getFlattenedGrammar();
XtextResource resource = this.<XtextResource>get(XtextResource.class);
resource.getContents().add(result);
resource.setURI(URI.createURI("synthetic://flattened.xtext"));
return result;
}
示例6: initialize
import org.eclipse.xtext.xtext.RuleNames; //导入方法依赖的package包/类
public void initialize(final Grammar grammar) {
this.grammar = grammar;
this.ruleNames = RuleNames.getRuleNames(grammar, true);
}