public void PegGrammar_ParseLongForm_SerializesToLongForm(IGrammarRule <INode> ruleDef, string ruleText, string name, string expandedRuleText) { var grammar = new DynamicPegGrammar(); var rule = (ProtoRule)Parse($"{name} := {expandedRuleText}"); DefineReferencedRulesAsDummies(grammar, rule, new HashSet <string>()); var root = rule.Create(grammar); root.Name.Should().Be(name); root.ToDisplayText(DisplayMode.Long).Should().Be(expandedRuleText); }
public void PegDefinition_RegisterDefinition_SerializesToLongForm(IGrammarRule <INode> ruleDef, string ruleText, string name, string expandedRuleText) { var grammar = new DynamicPegGrammar(); ruleDef.Register(grammar); grammar.DefineUnresolvedRules(); grammar.StartWith(name); var root = grammar.Ref(name); root.Name.Should().Be(name); root.ToDisplayText(DisplayMode.Long).Should().Be(expandedRuleText); }