本文整理汇总了C#中Antlr3.Tool.Grammar.GetTokenType方法的典型用法代码示例。如果您正苦于以下问题:C# Antlr3.Tool.Grammar.GetTokenType方法的具体用法?C# Antlr3.Tool.Grammar.GetTokenType怎么用?C# Antlr3.Tool.Grammar.GetTokenType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Antlr3.Tool.Grammar
的用法示例。
在下文中一共展示了Antlr3.Tool.Grammar.GetTokenType方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestMismatchedSetError
public void TestMismatchedSetError()
{
Grammar pg = new Grammar(
"parser grammar p;\n" +
"prog : WHILE ID LCURLY (assign)* RCURLY;\n" +
"assign : ID ASSIGN expr SEMI ;\n" +
"expr : INT | FLOAT | ID ;\n");
Grammar g = new Grammar();
g.ImportTokenVocabulary(pg);
g.FileName = "<string>";
g.SetGrammarContent(
"lexer grammar t;\n" +
"WHILE : 'while';\n" +
"LCURLY : '{';\n" +
"RCURLY : '}';\n" +
"ASSIGN : '=';\n" +
"SEMI : ';';\n" +
"ID : ('a'..'z')+ ;\n" +
"INT : (DIGIT)+ ;\n" +
"FLOAT : (DIGIT)+ '.' (DIGIT)* ;\n" +
"fragment DIGIT : '0'..'9';\n" +
"WS : (' ')+ ;\n");
ICharStream input = new ANTLRStringStream("while x { i=; y=3.42; z=y; }");
Interpreter lexEngine = new Interpreter(g, input);
FilteringTokenStream tokens = new FilteringTokenStream(lexEngine);
tokens.SetTokenTypeChannel(g.GetTokenType("WS"), 99);
//System.out.println("tokens="+tokens.toString());
Interpreter parseEngine = new Interpreter(pg, tokens);
ParseTree t = parseEngine.Parse("prog");
string result = t.ToStringTree();
string expecting =
"(<grammar p> (prog while x { (assign i = (expr MismatchedSetException(10!={5,6,7})))))";
Assert.AreEqual(expecting, result);
}
示例2: TestMultAltLoop
public void TestMultAltLoop()
{
Grammar g = new Grammar(
"lexer grammar t;\n" +
"A : ('0'..'9'|'a'|'b')+ ;\n" );
int Atype = g.GetTokenType( "A" );
Interpreter engine = new Interpreter( g, new ANTLRStringStream( "a" ) );
IToken result = engine.Scan( "A" );
engine = new Interpreter( g, new ANTLRStringStream( "a" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "1234" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "aaa" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "aaaa9" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "b" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "baa" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
}
示例3: TestSingleRuleRef
public void TestSingleRuleRef()
{
Grammar g = new Grammar(
"lexer grammar t;\n" +
"A : 'a' B 'c' ;\n" +
"B : 'b' ;\n" );
int Atype = g.GetTokenType( "A" );
Interpreter engine = new Interpreter( g, new ANTLRStringStream( "abc" ) ); // should ignore the x
IToken result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
}
示例4: TestSimpleLoops
public void TestSimpleLoops()
{
Grammar g = new Grammar(
"lexer grammar t;\n" +
"A : ('0'..'9')+ '.' ('0'..'9')* | ('0'..'9')+ ;\n" );
int Atype = g.GetTokenType( "A" );
ICharStream input = new ANTLRStringStream( "1234.5" );
Interpreter engine = new Interpreter( g, input );
IToken result = engine.Scan( "A" );
Assert.AreEqual( Atype, result.Type );
}
示例5: TestSimpleLoop
public void TestSimpleLoop()
{
Grammar g = new Grammar(
"lexer grammar t;\n" +
"INT : (DIGIT)+ ;\n" +
"fragment DIGIT : '0'..'9';\n" );
int INTtype = g.GetTokenType( "INT" );
Interpreter engine = new Interpreter( g, new ANTLRStringStream( "12x" ) ); // should ignore the x
IToken result = engine.Scan( "INT" );
Assert.AreEqual( result.Type, INTtype );
engine = new Interpreter( g, new ANTLRStringStream( "1234" ) );
result = engine.Scan( "INT" );
Assert.AreEqual( result.Type, INTtype );
}
示例6: TestSimpleAltCharTest
public void TestSimpleAltCharTest()
{
Grammar g = new Grammar(
"lexer grammar t;\n" +
"A : 'a' | 'b' | 'c';" );
int Atype = g.GetTokenType( "A" );
Interpreter engine = new Interpreter( g, new ANTLRStringStream( "a" ) );
engine = new Interpreter( g, new ANTLRStringStream( "b" ) );
IToken result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
engine = new Interpreter( g, new ANTLRStringStream( "c" ) );
result = engine.Scan( "A" );
Assert.AreEqual( result.Type, Atype );
}
示例7: TestSimpleParse
public void TestSimpleParse()
{
Grammar pg = new Grammar(
"parser grammar p;\n" +
"prog : WHILE ID LCURLY (assign)* RCURLY EOF;\n" +
"assign : ID ASSIGN expr SEMI ;\n" +
"expr : INT | FLOAT | ID ;\n");
Grammar g = new Grammar();
g.ImportTokenVocabulary(pg);
g.FileName = Grammar.IGNORE_STRING_IN_GRAMMAR_FILE_NAME + "string";
g.SetGrammarContent(
"lexer grammar t;\n" +
"WHILE : 'while';\n" +
"LCURLY : '{';\n" +
"RCURLY : '}';\n" +
"ASSIGN : '=';\n" +
"SEMI : ';';\n" +
"ID : ('a'..'z')+ ;\n" +
"INT : (DIGIT)+ ;\n" +
"FLOAT : (DIGIT)+ '.' (DIGIT)* ;\n" +
"fragment DIGIT : '0'..'9';\n" +
"WS : (' ')+ ;\n");
ICharStream input = new ANTLRStringStream("while x { i=1; y=3.42; z=y; }");
Interpreter lexEngine = new Interpreter(g, input);
FilteringTokenStream tokens = new FilteringTokenStream(lexEngine);
tokens.SetTokenTypeChannel(g.GetTokenType("WS"), 99);
//System.out.println("tokens="+tokens.toString());
Interpreter parseEngine = new Interpreter(pg, tokens);
ParseTree t = parseEngine.Parse("prog");
string result = t.ToStringTree();
string expecting =
"(<grammar p> (prog while x { (assign i = (expr 1) ;) (assign y = (expr 3.42) ;) (assign z = (expr y) ;) } <EOF>))";
Assert.AreEqual(expecting, result);
}