[prev in list] [next in list] [prev in thread] [next in thread] 

List:       stringtemplate-interest
Subject:    Re: [stringtemplate-interest] Replacing double quotes by single
From:       Thierry Coq <tcoq () free ! fr>
Date:       2009-12-19 14:03:02
Message-ID: 4B2CDD16.9040200 () free ! fr
[Download RAW message or body]

Thanks for this hint. I searched for an existing xxxTarget.Java, and the 
Delphi port was exactly what I was looking for. The generated code now 
compiles, but I need to fill in the equivalent of the ANTLR runtime 
code. Luckily for me, I ported lex & yacc some years back so it 
shouldn't be an issue.

Later I will change the language name so that it doesn't use the 
original "Delphi" word. I'll probably use FPC/Lazarus (FPC stands for 
Free Pascal Compiler).

Best regards,
Thierry

Terence Parr wrote:
> If you are trying to build a new target for ANTLR, then what you should do is \
> create a PascalTarget.java like we have CTarget.java etc. and then fill in the \
> methods that do the appropriate conversions.   
> Ter
> On Dec 17, 2009, at 1:52 PM, Thierry Coq wrote:
> 
> 
> > OK. I'll do that. This means I'll have to recompile ANTLR, this will 
> > take some time as I'm not familiar with this particular operation.
> > 
> > Thanks,
> > 
> > Thierry
> > Terence Parr wrote:
> > 
> > > either you need a renderer or modify the objcts going into the template so \
> > > toString flips the " and '. T
> > > On Dec 17, 2009, at 9:27 AM, Thierry Coq wrote:
> > > 
> > > 
> > > 
> > > > Hello Jim,
> > > > 
> > > > thanks for your interest.
> > > > 
> > > > Yes I'm using ANTLR to generate a Pascal Parser and Lexer, and I'm using 
> > > > a small expression calculator grammar as an example. In order to do that 
> > > > I need to write another set of ST rules to change the target language.
> > > > 
> > > > the grammar start like this: (Expr.g)
> > > > grammar Expr;
> > > > options {language=Lazarus;}
> > > > ...
> > > > //the rest of the grammar is like existing grammars in ANTLR.
> > > > 
> > > > The resulting code is like this (for the tokens table):
> > > > TOKENS_NAMES: array[0..TOKEN_COUNT] of String = (
> > > > "<invalid>",
> > > > "<EOR>",
> > > > "<DOWN>",
> > > > "<UP>",
> > > > "WS",
> > > > //..
> > > > "'+'",
> > > > //..
> > > > );
> > > > 
> > > > This doesn't work in Pascal. I'm trying to get:
> > > > TOKENS_NAMES: array[0..TOKEN_COUNT] of String = (
> > > > '<invalid>',
> > > > '<EOR>',
> > > > '<DOWN>',
> > > > '<UP>',
> > > > 'WS",
> > > > //..
> > > > '''+''',
> > > > //..
> > > > );
> > > > 
> > > > The rule I use for ST is this one:
> > > > <if(grammar.IsGrammarRoot)>
> > > > const
> > > > TOKEN_COUNT = <length(tokenNames)>+3;
> > > > TOKENS_NAMES: array[0..TOKEN_COUNT] of String = (
> > > > '<invalid>',
> > > > '<EOR>',
> > > > '<DOWN>',
> > > > '<UP>',
> > > > <tokenNames:{<it>}; separator=",\n">
> > > > );
> > > > <endif>
> > > > 
> > > > I'm wondering how I can introduce a regexp expression in the tokenNames 
> > > > rules above to replace the chars ' by '' and " by '.
> > > > 
> > > > Best regards,
> > > > Thierry
> > > > 
> > > > Jim Idle wrote:
> > > > 
> > > > 
> > > > > Thierry,
> > > > > 
> > > > > Sorry but I am still not quite following you. Are you saying that your \
> > > > > parser is generated in Java and you want to generate it in Pascal? Or that \
> > > > > you have a parser whose output is created by a StringTemplate? Changing the \
> > > > > string delimiters should be trivial for the latter case, but there is no \
> > > > > way to make the Java output of ANTLR be Pascal without writing a Pascal \
> > > > > language target.  
> > > > > Can you post a small example of what you are trying to achieve?
> > > > > 
> > > > > Jim
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > > -----Original Message-----
> > > > > > From: Thierry Coq [mailto:tcoq@free.fr]
> > > > > > Sent: Tuesday, December 15, 2009 9:41 PM
> > > > > > To: Jim Idle
> > > > > > Subject: Re: [stringtemplate-interest] Replacing double quotes by
> > > > > > single quotes in output strings?
> > > > > > 
> > > > > > Jim,
> > > > > > 
> > > > > > thank you for your prompt answer.
> > > > > > 
> > > > > > I'm working with ANTLR which is using StringTemplate.
> > > > > > 
> > > > > > ANTLR generates code using the StringTemplate. Of course, I don't want
> > > > > > to touch ANTLR or StringTemplate to use them to generate code. So I'm
> > > > > > limited to using string template *.st and *.stg files to do the job.
> > > > > > 
> > > > > > In ANTLR, the tokens are declared as Java strings and output to the
> > > > > > generated code as java strings, as-is something rather uncompilable for
> > > > > > Pascal. I need to be able, once the tokens have been analyzed by ANTLR
> > > > > > to generate them in a format understandable by pascal, aka replacing
> > > > > > the
> > > > > > double quotes by simple one, and doubling the simple quotes within the
> > > > > > strings, if any.
> > > > > > 
> > > > > > Is this possible?
> > > > > > 
> > > > > > Best regards,
> > > > > > Thierry
> > > > > > 
> > > > > > Jim Idle wrote:
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > Not sure what you are asking for to be honest. Are just wanting to
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > escape characters? Do you mean StringTemplate and not ANTLR? If you
> > > > > > means StringTemplate then perhaps you need a renderer method, but
> > > > > > generally you should do such replacements in the model and not in the
> > > > > > template.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > Jim
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > > -----Original Message-----
> > > > > > > > From: stringtemplate-interest-bounces@antlr.org
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > [mailto:stringtemplate-
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > > interest-bounces@antlr.org] On Behalf Of Thierry Coq
> > > > > > > > Sent: Tuesday, December 15, 2009 12:52 PM
> > > > > > > > To: stringtemplate-interest@antlr.org
> > > > > > > > Subject: [stringtemplate-interest] Replacing double quotes by single
> > > > > > > > quotes in output strings?
> > > > > > > > 
> > > > > > > > Hello,
> > > > > > > > 
> > > > > > > > is it possible to replace a double-quoted string, for example "HS"
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > by
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > > single quotes: 'HS', and double single quotes when needed: for
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > example:
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > > "'='" becomes '''=''', in the ANTLR code generator?
> > > > > > > > 
> > > > > > > > I'm looking for a regexp, but I can't seem to find it.
> > > > > > > > 
> > > > > > > > Best regards,
> > > > > > > > Thierry
> > > > > > > > _______________________________________________
> > > > > > > > stringtemplate-interest mailing list
> > > > > > > > stringtemplate-interest@antlr.org
> > > > > > > > http://www.antlr.org/mailman/listinfo/stringtemplate-interest
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > _______________________________________________
> > > > > > > stringtemplate-interest mailing list
> > > > > > > stringtemplate-interest@antlr.org
> > > > > > > http://www.antlr.org/mailman/listinfo/stringtemplate-interest
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > _______________________________________________
> > > > stringtemplate-interest mailing list
> > > > stringtemplate-interest@antlr.org
> > > > http://www.antlr.org/mailman/listinfo/stringtemplate-interest
> > > > 
> > > > 
> > > 
> > > 
> > > 
> > _______________________________________________
> > stringtemplate-interest mailing list
> > stringtemplate-interest@antlr.org
> > http://www.antlr.org/mailman/listinfo/stringtemplate-interest
> > 
> 
> 
> 
> 

_______________________________________________
stringtemplate-interest mailing list
stringtemplate-interest@antlr.org
http://www.antlr.org/mailman/listinfo/stringtemplate-interest


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic