Thanks Martijn, I think I tried to do what you did by overriding lexer::members, and members (and rulecatch) but I think I may be doing it wrong. Once difference though is that I'm trying to encapsulate the ANTLR code as much as possible---it's not very convenient to write Python inside AntlrWorks, and I've read that the Python runtime is subject to change so I want to use the recommended methods. So I think this may be more of a Python-specific issue.
-- Ben Escoto ----------------- Original message ----------------- From: Martijn Reuvers <[email protected]> To: Ben <[email protected]> Date: Mon, 7 Sep 2009 20:46:22 +0200 Hi Ben, I can't help you with the Python part, but below is a quick & dirty grammar for Java which more or less does do what you want. Most likely your errors will come from the lexer, hence I throw the exception there to show you. So in your python program catching that should tell you it was wrong. The rest of the grammar fills a list with text or numbers that are parsed, and prints it in the @after of begin rule (which is only there so a quick printout was possible). Martijn grammar test001; @lexer::members { @Override public void reportError(RecognitionException e) { throw new RuntimeException(e); } } @members { java.util.List result = new java.util.ArrayList(); public List getResult() { return result; } } begin @after { System.out.println("RESULT=" + result); } : expr ; expr : what (DOT expr)? ; what : TEXT { if($TEXT.text != null) { result.add($TEXT.text); } } | NUMBER { if($NUMBER.text != null) { result.add($NUMBER.text); } } ; DOT : '.' ; TEXT : 'A'..'Z'+ ; NUMBER : '0'..'9'+ ; WS : ( ' ' | '\t' | '\r' | '\n' ) {$channel=HIDDEN;} ; 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 [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 -~----------~----~----~----~------~----~------~--~---
