Antlr3.Tool.Grammar.GetRule C# (CSharp) Method

GetRule() public method

public GetRule ( string ruleName ) : Antlr3.Tool.Rule
ruleName string
return Antlr3.Tool.Rule
        public virtual Rule GetRule( string ruleName )
        {
            Rule r = composite.GetRule( ruleName );
            /*
            if ( r!=null && r.grammar != this ) {
                [email protected](name+".getRule("+ruleName+")="+r);
            }
            */
            return r;
        }

Same methods

Grammar::GetRule ( string scopeName, string ruleName ) : Antlr3.Tool.Rule

Usage Example

Beispiel #1
0
        public void TestBracketArgParsing()
        {
            ErrorQueue equeue = new ErrorQueue();
            ErrorManager.SetErrorListener( equeue );

            // now check in actual grammar.
            Grammar g = new Grammar(
                "parser grammar t;\n" +
                "a[String[\\] ick, int i]\n" +
                "        : A \n" +
                "        ;" );
            AntlrTool antlr = newTool();
            CodeGenerator generator = new CodeGenerator( antlr, g, "Java" );
            g.CodeGenerator = generator;
            generator.GenRecognizer(); // forces load of templates
            Rule r = g.GetRule( "a" );
            AttributeScope parameters = r.ParameterScope;
            var attrs = parameters.Attributes;
            Assert.AreEqual("String[] ick", attrs.ElementAt(0).Decl.ToString(), "attribute mismatch");
            Assert.AreEqual("ick", attrs.ElementAt(0).Name, "parameter name mismatch");
            Assert.AreEqual("String[]", attrs.ElementAt(0).Type, "declarator mismatch");

            Assert.AreEqual("int i", attrs.ElementAt(1).Decl.ToString(), "attribute mismatch");
            Assert.AreEqual("i", attrs.ElementAt(1).Name, "parameter name mismatch");
            Assert.AreEqual("int", attrs.ElementAt(1).Type, "declarator mismatch");

            Assert.AreEqual(0, equeue.errors.Count, "unexpected errors: " + equeue);
        }
All Usage Examples Of Antlr3.Tool.Grammar::GetRule
Grammar