Jim,

Many thanks for your reply.

I assumed as much, any time infrastructure changes, there is likely to
be something that falls through the cracks.

/I will await Terence's instructions./

Regards,

Stephen Gaito

On 08/04/2012 19:25, Jim Idle wrote:
>
> When the runtime was changed to use the latest version of
> StringTemplate, there were changes made which broke tree generation by
> tree parsers -- I am aware that this is the case but have had no time
> to correct it.
>
>  
>
> I find git to be terrible (have to be frank) and I really don't want
> to use it -- however I am grateful for your work and perhaps you can
> co-ordinate with Ter to push/pull that work in to the main code line?
>
>  
>
> Jim
>
>  
>
> *From:*antlr-dev-boun...@antlr.org
> <mailto:antlr-dev-boun...@antlr.org>
> [mailto:antlr-dev-boun...@antlr.org
> <mailto:antlr-dev-boun...@antlr.org>] *On Behalf Of *Stephen Gaito
> *Sent:* Saturday, April 07, 2012 3:39 PM
> *To:* antlr-dev@antlr.org <mailto:antlr-dev@antlr.org>
> *Subject:* [antlr-dev] Inconsistencies between ANTLR 3.4 C.stg and
> ANTLR gitHub C.stg versions
>
>  
>
> Hello,
>
> My ultimate goal is to build a LaTeXCreole parser/filter to embed in
> PHP (Drupal) so that I can more comfortably talk about mathematics....
>
> To do this I have chosen to use the ANTLR project and its C runtime
> (many thanks to both Terence and Jim).
>
> To keep the complexity down I have chosen to manipulate AST trees in a
> number of passes using tree grammars which generate trees.
>
> My current grammar fragments work in Java, but alas the exact same
> grammar files (with the obvious changes from Java to C), complain of
> StringTemplate problems when building the tree grammars.
>
> I suspect the C runtime has not been tested with many tree grammars
> which generate their own trees.
>
> SO... to help ensure the ANTLR C runtime can build tree grammars which
> generate trees, *I have forked the antlr/antlr3 project on GitHub
> (stephengaito/antlr3) and begun building my grammars using the most
> recent 3.4.1-snapshot version.*
>
> Unfortunately, my parser and lexer grammars no longer compile in the C
> versions (when using the v3.4.1-snapshot tools).... some investigation
> later and *I find that in at least three places in the
> tool/src/main/resources/org/antlr/codegen/templates/C/C.stg file,
> there are differences between the same file in the released v3.4
> complete jar and the gitHub version.*  None of these differences are
> recorded in the gitHub version from before the v3.4 was tagged
> released on  July 18, 2011 until today (April 7, 2012). (I am unsure
> where the v3.4 released version of this file has come from).
>
> SO... *I have made two mini-branches on my fork of antlr3 to fix each
> of the lexer and parser differences.  I have fixed both problems by
> reinstating the text from the as released complete tar.*
>
> My lexer and parser files now both compile with both the as released
> v3.4 ANTLR tools and the v3.4.1-snapshot ANTLR tools taken from gitHub
> (today).
>
> (My tree grammar generation of trees investigation will continue).
>
> *If you are interested I would be happy to post a bug/issue report* on
> antlr/antlr3 issues system (it seems in-appropriate for me to post
> this bug on the antlr/antlr4 version since it is not for new code).
>
> *Alternatively I would be happy to issue pull requests.
> *
> Regards, 
> Stephen Gaito
>
> PS: the changes to
> tool/src/main/resources/org/antlr/codegen/templates/C/C.stg are as
> follows:
>
> ------------------------
>
> @@ -2132,7 +2132,9 @@ else
>  <if(LEXER)>
>      LRECOVER();
>  <else>
> +<! use following code to make it recover inline;
>      RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_<ruleName><elementIndex>);
> +!>
>  <endif>
>      goto rule<ruleDescriptor.name>Ex;
>  }<\n>
> @@ -2143,7 +2145,10 @@ CONSTRUCTEX();
>  EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
>  EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
>  <if(PARSER)>
> +EXCEPTION->expectingSet = NULL;
> +<! use following code to make it recover inline;
>  EXCEPTION->expectingSet = &FOLLOW_set_in_<ruleName><elementIndex>;
> +!>
>  <endif>
>  >>
>  
> @@ -2510,7 +2515,7 @@ static const ANTLR3_INT32 
> dfa<dfa.decisionNumber>_T<i0>[] =
>   */
>  static const ANTLR3_INT32 * const dfa<dfa.decisionNumber>_transitions[] =
>  {
> -    <dfa.transitionEdgeTables:{xref|dfa<dfa.decisionNumber>_T<xref>}; 
> separator=", ", wrap="\n", null="_empty">
> +    <dfa.transitionEdgeTables:{xref|dfa<dfa.decisionNumber>_T<xref>}; 
> separator=", ", wrap="\n", null="NULL">
>  };
>  
>  <if(dfa.specialStateSTs)>
>
>
>
>
>
>
> _______________________________________________
> antlr-dev mailing list
> antlr-dev@antlr.org
> http://www.antlr.org/mailman/listinfo/antlr-dev
_______________________________________________
antlr-dev mailing list
antlr-dev@antlr.org
http://www.antlr.org/mailman/listinfo/antlr-dev

Reply via email to