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