If you read through the source code, you would have seen that you did not need to do this.
Jim > -----Original Message----- > From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- > boun...@antlr.org] On Behalf Of Ruslan Zasukhin > Sent: Friday, October 21, 2011 1:24 AM > To: antlr-interest@antlr.org > Subject: [antlr-interest] [C target] About disable recovery ... > [Solution?] > > Hi All, > > I want describe for archive of this list solution which I have found > after 3 days learning issue. > > So ... Story is. > > 1) I have read book ... Here info only for Java ... Overrite this. > Catch exception.. But in C no exception, so it is clear I must find > info for C. > > 2) I jump to site -> docs -> C target ===> NOTHING ? > but should be info + example here, because C target > differs from Java. No exceptions. > > 3) I start search list archive... Nothing useful except last letter > from guy, which note that C comment says we must override > mismatchRecover(), But there is no such function, probably it was > renamed to > recoverFromMismatchedToken() > > > 4) Okay, I try override this function in MY ,cpp file. > But... Ops. mismatch() function, is STATIC, so I cannot link to it > from my sourcs. > > Jim have suggest copy to my sources mismatch() also, Okay I try that > and ... It even not compiles, because mismatch() calls other > static funcs ... > > Dirty force then: I make it in the antlr3baserecognizer.c > > Compiles links ... HAPPY -> start do tests .... > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > And I see that for example such SQL query with error > > "DRO TABLE T1" > > Still do 3 iterations ... > > Debugging shows me that I even do not get into > recoverFromMismatchedToken() Oops again... > > After some debugging, I have note, that each rule, always calls > recover(), and exactly this method clears error flag. > > So I do next attempt: I make own simple recover() > > void vdb_recover_off( pANTLR3_BASE_RECOGNIZER recognizer ) { > return; > } > > > And replace default in the parser: > > @parser::apifuncs > { > // Install custom error message display > // > RECOGNIZER->displayRecognitionError = vdb_BuildRecognitionErrorStr; > RECOGNIZER->recover = vdb_recover_off; > > > > And finally !!!! It works as I want that ... > Parser builds error string and stops right on the first work DRO. > > I will write also now separate letter to Terrence and Jim, where I will > try explain why such simple thing as > option RECOVER = FALSE > > Should not take 3 days from users of ANTLR :) > > I hope this letter will save time to future C users of ANTRL. > > > =================== > P.S. > > Also while I did learn this recover dances on ANTLR, And read that we > must override recoverFromMismatchedToken() I have asked self: > > here exists yet > recoverFromMismatchedSet(), > recoverFromMismatchedElement > recover() > > > Why only ONE that function should be overriden? > > I think in Docs, Books, Comments, this should be explained also in > clean way. Right? > > > -- > Best regards, > > Ruslan Zasukhin > VP Engineering and New Technology > Paradigma Software, Inc > > Valentina - Joining Worlds of Information http://www.paradigmasoft.com > > [I feel the need: the need for speed] > > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your- > email-address List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.