[antlr-interest] Empty Quoted String Literal

Jim Idle jimi at temporal-wave.com
Wed Jul 27 14:28:50 PDT 2011


Your literal string consists of just 1 double quote, hence the error
message is correct:

http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx


Jim



> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of G. Richard Bellamy
> Sent: Wednesday, July 27, 2011 2:01 PM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] Empty Quoted String Literal
>
> Sam, Bart & Jim, I really appreciate your help on this.
>
> Here's a more complete example, without the greedy confusion. I'm
> including the combined grammar and a test rig.
>
> I get: CombinedLexer:line 1:2 mismatched character '<EOF>' expecting
> '"'
> just before a NullReferenceException.
>
> GRAMMAR:
> ----------------------------
> grammar Combined;
>
> options {
> language=CSharp3;
> TokenLabelType=CommonToken;
> output=AST;
> ASTLabelType=CommonTree;
> }
>
> @lexer::namespace{StringLiteralLexerTest}
> @parser::namespace{StringLiteralLexerTest}
>
> /*
> * Parser Rules
> */
>
> public
> compileUnit
> : STRING
> ;
>
> /*
> * Lexer Rules
> */
> STRING : '"' ('""' | ~'"')* '"';
>
> TEST RIG:
> ------------------------------
> static void Main()
> {
> CombinedLexer lexer = new CombinedLexer(new ANTLRStringStream(@""""));
> //lexer.TraceDestination = new
> ConsoleTextWriter(typeof(CombinedLexer));
>
> CommonTokenStream tokenStream = new CommonTokenStream(lexer);
>
> CombinedParser parser = new CombinedParser(tokenStream);
> //parser.TraceDestination = new
> ConsoleTextWriter(typeof(CombinedParser));
>
> CommonTree parseTree = parser.compileUnit().Tree;
> Console.WriteLine(parseTree.ToStringTree());
> }
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address


More information about the antlr-interest mailing list