[antlr-interest] Problems with the C version of ANTLR

Andreas Volz lists at brachttal.net
Sun Sep 6 04:47:58 PDT 2009


Am Sun, 6 Sep 2009 09:40:44 +0200 schrieb Andreas Volz:

Hello,

I found the problems. The segfault was forced by free the variable that
I have not created for my example. Then after calling the correct
parser entry point it works great.

regards
Andreas



> Hello,
> 
> I tried some Java examples for ANTLR and it worked nice. But I need a
> parser for C (for later C++ usage). As easy it was to get a working
> Java example as hard is it to get a C example working.
> 
> I've read this doc:
> 
> http://www.antlr.org/api/C/index.html
> 
> -> Generating Code for the C Target 
> 
> I'm a little confused about this table:
> 
> Suffix 	Grammar should contain...
> .g3l 	A lexer grammar specification only.
> .g3p 	A parser grammar specification only.
> .g3pl 	A combined lexer and parser specification.
> .g3t 	A tree grammar specification. 
> 
> All examples I've seen contains only grammar.g files. Is this simply a
> new handling to split my grammar file?
> 
> How ever. I go with my grammar.g file that I've used for the Java
> example.
> 
> VCard.g:
> http://codepad.org/hiVS9kte
> 
> First question is if it's also possible to insert the main code for C
> in the grammar file like with Java?
> 
> Then I installed ANTLR-3.0.1 (Ubuntu) from repository and the C
> runtime from ANTLR-3.0.1 from source. This should fit together.
> 
> Now I took an C example and modified it to compile for my grammar. At
> first I compiled the grammar and got these files:
> 
> VCardLexer.c
> VCardLexer.h
> VCardParser.c
> VCardParser.h
> 
> I modified them from an example:
> 
> VCard.c:
> http://codepad.org/uoMWeBW7
> 
> VCard.h:
> http://codepad.org/ADTKm47X
> 
> Makefile.C:
> http://codepad.org/YWC4E4ti
> 
> This compiles, but I get a "Segmentation fault" as result. I've not
> yet debugged into it, because I like to ensure that I did all steps
> correct.
> 
> You could see that I commented out all the "langAST" and "treePsr"
> variables, because they didn't compile. Who creates the
> "pLangDumpDecl" and "LangParser_decl_return" type? I don't see it
> generated by the code generator. Do I need those for my example?
> 
> And the last question is why is it so hard to get the C target working
> comparing to the Java target? :-)
> 
> regards
> 	Andreas
> 
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
> 


More information about the antlr-interest mailing list