Hi Richard, The double quote escape character in a verbatim string is "", so what you're actually passing to the parser is a single (unmatched) quote. To pass an empty string, you'll need to use @"""""".
Sam -----Original Message----- From: antlr-interest-boun...@antlr.org [mailto:antlr-interest-boun...@antlr.org] On Behalf Of G. Richard Bellamy Sent: Wednesday, July 27, 2011 4:14 PM To: antlr-interest@antlr.org Subject: Re: [antlr-interest] Empty Quoted String Literal Bart, When I escape the quotes things work on my end as well - you'll note that I'm passing a set of non-escaped quotes... (C# Verbatim String), so you'll not be able to test this on your end (since Java doesn't have an equivalent to the Verbatim String). Thanks again. -rb On 7/27/2011 2:10 PM, Bart Kiers wrote: > Hi Richard, > > Both ANTLRWorks' debugger, and my Java test rig: > > import org.antlr.runtime.*; > > public class Main { > public static void main(String[] args) throws Exception { > WhitespaceInSymbolsLexer lexer = new > WhitespaceInSymbolsLexer(new ANTLRStringStream("\"\"")); > WhitespaceInSymbolsParser parser = new > WhitespaceInSymbolsParser(new CommonTokenStream(lexer)); > parser.compileUnit(); > } > } > > > produce no errors when parsing "" (2 double quotes) as input: > > bart@hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$ java -cp > antlr-3.3.jar org.antlr.Tool WhitespaceInSymbols.g > bart@hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$ javac > -cp antlr-3.3.jar *.java > bart@hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$ java -cp > .:antlr-3.3.jar Main > bart@hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$ > > > Then there must be something going differently in the CSharp3 target > than in the Java target (note that I am not able to test the CSharp3 > target here...). > > Regards, > > Bart. > > > On Wed, Jul 27, 2011 at 11:01 PM, G. Richard Bellamy > <rbell...@pteradigm.com <mailto:rbell...@pteradigm.com>> wrote: > > 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 > > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.