[antlr-interest] Reporting a bug in C Target

Gokulakannan Somasundaram gokul007 at gmail.com
Sat Dec 5 13:42:09 PST 2009


Just found out from C.stg, the types that are dealt by antlr and it sets
NULL to the rest. i feel that the initialization should  not be done like
this and left to the user to make his own initializations, if he needs it.
Or he should be provided with a way to customize the initialization that's
happening.

Gokul.

On Sun, Dec 6, 2009 at 2:50 AM, Gokulakannan Somasundaram <
gokul007 at gmail.com> wrote:

> Hi,
>    Seems like the C Target initializes unknown types to NULL. I made a rule
> which returns enum value and the code generated by ANTLR C Target is nt
> getting compiled in MSVC.
>
> The code is as follows..
>
> grammar Test1;
>
> options
> {
>     language = C;
> }
>
> @includes
> {
>     enum ObjectType
>     {
>         OBJECT_A
>         , OBJECT_B
>         , OBJECT_C
>
>         , OBJECT_TOTAL
>     };
> }
>
> id_list returns [ObjectType result]:
>     a=id  { $result = $a.result; }
>     (',' b=id  { $result = OBJECT_C; } )*
>     ;
>
> id returns [ObjectType result]: ID+ '=' ID+ ';' NEWLINE { $result =
> OBJECT_A; }
>  | NEWLINE { $result = OBJECT_B; }
>  ;
>
> NEWLINE: '\r'? '\n' ;
>
> ID: ('a' .. 'z' | 'A' .. 'Z')+ ;
>
> WS: (' '|'\t'|'\r'|'\n')+ {skip();} ;
>
>
> I actually tried writing a code returning C++ objects (not pointers) and i
> found that ANTLR initializes it to NULL. Later found that it is doing the
> same for enum values also. Is it possible to fix this, so that it works for
> C++ objects also. Like when i return a std::string, it assigns NULL and the
> compiler reports an error.
>
> Thanks,
> Gokul.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20091206/7e8b0066/attachment.html 


More information about the antlr-interest mailing list