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 < [email protected]> 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. > -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
