[antlr-interest] Empty Quoted String Literal
G. Richard Bellamy
rbellamy at pteradigm.com
Wed Jul 27 14:28:57 PDT 2011
Bart & Sam,
Why, I do believe you've hit the nail on the head... and things were
going so well today!
Thank you both for getting me back on track.
-rb
On 7/27/2011 2:25 PM, Bart Kiers wrote:
> Richard,
>
> Note that I am a C# illiterate, but, isn't the C# literal:
>
> @""""
>
>
> only just a single quote? If so, then it is no wonder you're getting
> errors. Parsing:
>
> WhitespaceInSymbolsLexer lexer = new WhitespaceInSymbolsLexer(new
> ANTLRStringStream("\""));
>
>
> will also produce the error 'line 1:1 mismatched character '<EOF>'
> expecting '"'' with me (of course) since a single quote is no valid token.
>
> Regards,
>
> Bart.
>
>
>
> On Wed, Jul 27, 2011 at 11:14 PM, G. Richard Bellamy
> <rbellamy at pteradigm.com <mailto:rbellamy at pteradigm.com>> wrote:
>
> 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 at hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$
> java -cp
> > antlr-3.3.jar org.antlr.Tool WhitespaceInSymbols.g
> > bart at hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$ javac
> > -cp antlr-3.3.jar *.java
> > bart at hades:~/Programming/ANTLR/Demos/WhitespaceInSymbols$
> java -cp
> > .:antlr-3.3.jar Main
> > bart at 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
> > <rbellamy at pteradigm.com <mailto:rbellamy at pteradigm.com>
> <mailto:rbellamy at pteradigm.com <mailto:rbellamy at 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
>
>
More information about the antlr-interest
mailing list