« Walrus r78, 3 items changed | Main | Walrus r80, 6 items changed »
February 24, 2007
Walrus r79, 29 items changed
Massive changes under the hood to the location-tracking system requiring wide-reaching changes and re-writes of almost all the core classes: get rid of OmissionData class (omitted data really is omitted now and not recorded anywhere, only the starting and ending line and column coordinates of the omission are taken into consideration and the data is then discarded); SkippedSubstringExceptions now include starting and endling line and column coordinates; ParseErrors now include coordinates; MemoizingCache now uses line and column coordinates instead of a single location index (position in input stream); no longer include "rightmost" subexception when raising a ParseError, instead just include coordinates; ParseError now encapsulates line and column start and end points instead of just "line_offset" and "column_offset"; ParseError now has a richer, human-friendly "inspect" method; the lowest level parslets (StringParslet and RegexpParslet) now do full coordinate tracking (line and column start and end points) rather than just offset tracking; generated Node subclasses no longer have an "omitted" accessor (in fact, the "omitted" accessor has been removed everywhere that it formerly appeared because omitted data is no longer retained); the skipping and location tracking code in many ParsletCombination subclasses has been made much "DRYer" by moving location tracking responsibility into the ParserState class; updated LocationTracking module to provide nil-friendly accessors and use absolute coordinates rather than offsets; new StringResult class (String subclass) enables coordinate accessors to be added to a class that behaves just like String, these objects can be returned as parse results and there is no need to clutter the String namespace with Walrus-specific methods; likewise for for Array, a new subclass called ArrayResult has been added (although it has not been "hooked up" yet); updated and added specs to match all this new/modified behaviour
Posted by wincent at February 24, 2007 4:22 PM