Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }