[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