I've tinkered with the idea Jim states below, but I'm afraid I don't fully understand. Don't do this at the lexer level, do it at the parser. (I think there is a learning curve I'm missing here).
Can you clarify? Thanks, Scott From: [email protected] [mailto:[email protected]] On Behalf Of Jim Idle Sent: Monday, January 26, 2009 12:25 PM Cc: [email protected] Subject: Re: [antlr-interest] Parsing with a character that represents null Priolo, Scott wrote: Hello, I'm writing a grammar based on Apache Tomcat's Access Log format. I'm able to parse these lines into host, timestamp, command, protocol, response, bytes, etc... A problem occurs when the log file uses a '-' for "no data". I'd like to capture this as a "null" field when I walk the tree so it's important not to treat '-' as white space. The issue I'm having is '-' can match any of the patterns such as host, username, timestamp, bytes, etc.... When I try to use field : HOST L_USER A_USER TIMESTAMP '"' COMMAND PATH PROTOCOL '"' RESPONSE_CODE BYTES; L_USER : '-' | ('a'..'z'|'A'..'Z')+; BYTES : '-' | ('0'..'9')+; The parser can't distinguish if the '-' is L_USER or BYTES (see below that the second test line has a '-' for the last number because there was no data. Actual data line 66.249.71.45 - - [25/Jan/2009:00:00:56 -0500] "GET /abc/slides/180001.1.jsp HTTP/1.1" 200 11785 67.68.5.63 - - [10/Nov/2008:16:26:12 -0500] "HEAD /abc/res/prev1.gif HTTP/1.0" 200 - How do I manage these '-' without changing the logging pattern? Thanks! Don't do this at the lexer level, do it at the parser: field: HOST l_user .... l_user : L_USER | DEFAULT; L_USER ('a'..'z'|'A'..'Z')+; DEFAULT: '-'; Jim --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
