本文整理汇总了C#中Irony.Parsing.NonTerminal.AddHintToAll方法的典型用法代码示例。如果您正苦于以下问题:C# NonTerminal.AddHintToAll方法的具体用法?C# NonTerminal.AddHintToAll怎么用?C# NonTerminal.AddHintToAll使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Irony.Parsing.NonTerminal
的用法示例。
在下文中一共展示了NonTerminal.AddHintToAll方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConflictGrammarWithHintsOnTerms
public ConflictGrammarWithHintsOnTerms()
: base(true)
{
var name = new IdentifierTerminal("id");
var stmt = new NonTerminal("Statement");
var stmtList = new NonTerminal("StatementList");
var fieldModifier = new NonTerminal("fieldModifier");
var propModifier = new NonTerminal("propModifier");
var methodModifier = new NonTerminal("methodModifier");
var fieldModifierList = new NonTerminal("fieldModifierList");
var propModifierList = new NonTerminal("propModifierList");
var methodModifierList = new NonTerminal("methodModifierList");
var fieldDef = new NonTerminal("fieldDef");
var propDef = new NonTerminal("propDef");
var methodDef = new NonTerminal("methodDef");
//Rules
this.Root = stmtList;
stmtList.Rule = MakePlusRule(stmtList, stmt);
stmt.Rule = fieldDef | propDef | methodDef;
fieldDef.Rule = fieldModifierList + name + name + ";";
propDef.Rule = propModifierList + name + name + "{" + "}";
methodDef.Rule = methodModifierList + name + name + "(" + ")" + "{" + "}";
fieldModifierList.Rule = MakeStarRule(fieldModifierList, fieldModifier);
propModifierList.Rule = MakeStarRule(propModifierList, propModifier);
methodModifierList.Rule = MakeStarRule(methodModifierList, methodModifier);
fieldModifier.Rule = ToTerm("public") | "private" | "readonly" | "volatile";
propModifier.Rule = ToTerm("public") | "private" | "readonly" | "override";
methodModifier.Rule = ToTerm("public") | "private" | "override";
// conflict resolution
var fieldHint = new TokenPreviewHint(PreferredActionType.Reduce, thisSymbol: ";", comesBefore: new string[] { "(", "{" });
fieldModifier.AddHintToAll(fieldHint);
fieldModifierList.AddHintToAll(fieldHint);
var propHint = new TokenPreviewHint(PreferredActionType.Reduce, thisSymbol: "{", comesBefore: new string[] { ";", "(" });
propModifier.AddHintToAll(propHint);
propModifierList.AddHintToAll(propHint);
MarkReservedWords("public", "private", "readonly", "volatile", "override");
}