On Dec 22, 2009, at 6:06 PM, Benjamin Peterson wrote: > I'm using lemon to write a parser for a little language I'm writing. > I'm wondering how I indicate to lemon that an error has occurred in > processing and an exit is needed. For example, if I have: > > stmt(A) ::= NAME(B). { A = malloc(sizeof(stmt)); A->name = B; } > > If malloc returns NULL, what should I do to escape the parser?
Configure the %extra_argument to be a pointer to a structure that holds the state of your parser. %extra_argument {Parser *pParser} The pParser pointer is directly accessible from within your actions. So set a flag in that structure that tell the tokenizer to stop sending tokens and abort with an error. stmt(A) ::= NAME(B). { A = malloc(sizeof(stmt)); if( A==0 ){ pParser->errFlag = 1; }else{ A->name = B; } } > > -- > Regards, > Benjamin > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users D. Richard Hipp d...@hwaci.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users