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 -- 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.