[antlr-interest] Problem with carriage returns
in c# stringtemplate
Terence Parr
parrt at cs.usfca.edu
Tue Oct 25 07:50:01 PDT 2005
oh, right. There is a bug in my server software that forgets to put
the full hostname...hang on...
Ter
On Oct 24, 2005, at 11:39 PM, Tech wrote:
> Thanks Luis,
> I've just tried downloading the patch, but the link
> is broken. Thanks for the explanation though, it's always good to
> know about these kinds of subtle differences.
>
> Mark
>
> Luis Leal wrote:
>
>
>> Hi Mark,
>>
>> Some investigation has revealed the following:
>>
>> 1. When you use a string literal the template actually contains a
>> carriage
>> return and a new line
>> 2. When you read the template from an embedded resource the template
>> contains "\r\n" instead of a carriage return and a new line
>>
>> The second case sends the lexer down a path where \r is not
>> defined as a
>> valid escape character. I've just uploaded a new C# version to
>> www.stringtemplate.org which fixes this problem.
>>
>> Regards
>>
>> Luis
>>
>> -----Original Message-----
>> From: Tech [mailto:tech at swingkid.fsnet.co.uk]
>> Sent: 23 October 2005 11:32 PM
>> To: antlr-interest at antlr.org
>> Subject: [antlr-interest] Problem with carriage returns in c#
>> stringtemplate
>>
>>
>> Thanks for your reply Luis.
>>
>> No, this is not my whole template group, but I was trying to
>> reduce the
>> problem. I agree with you that your code works. However, if you
>> copy the
>> string into a text file (removing the escape characters from the
>> quotation marks) and include it as an embedded resource, it
>> doesn't work!
>>
>> //StringReader sr = new StringReader("group TestOutput;
>> program(statements)::= << class Wrapper { <statements;
>> separator=\"\r\n\"> } >>");
>> Stream s =
>> typeof(Class1).Assembly.GetManifestResourceStream
>> ("Project1.Test.stg");
>> StreamReader sr = new StreamReader(s);
>> StringTemplateGroup stg = new StringTemplateGroup(sr,
>> typeof(antlr.stringtemplate.language.AngleBracketTemplateLexer));
>>
>> where Test.stg contains
>>
>> group TestOutput; program(statements)::= << class Wrapper {
>> <statements; separator="\r\n"> } >>
>>
>> I have tried copying the StreamReader contents into a string before
>> constructing the StringTemplateGroup, but that doesn't help. It seems
>> more like a .Net issue than a StringTemplate issue, but I can't
>> figure
>> it out. I wonder if it is an encoding thing?
>>
>> Always curious,
>>
>> Mark
>>
>>
>>
>> --
>> No virus found in this outgoing message.
>> Checked by AVG Free Edition.
>> Version: 7.1.361 / Virus Database: 267.12.4/146 - Release Date:
>> 21/10/2005
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.361 / Virus Database: 267.12.5/147 - Release Date:
> 24/10/2005
>
>
>
More information about the antlr-interest
mailing list