Commits

Author Commit Message Labels Comments Date
Default avatar Phil Hargett
Removed unused LR0 constructs
Branches
parsing
Default avatar Phil Hargett
Added grammar object, distinct from parser, and distinct from the grammar's specification
Branches
parsing
Default avatar Phil Hargett
Work in progress; initial implementation of parsing algorithm and table construction
Branches
parsing
Default avatar Phil Hargett
Now building LR1 items
Branches
parsing
Default avatar Phil Hargett
Converted to using typed items & productions
Branches
parsing
Default avatar Phil Hargett
omg, am I paying attention? still more duplicate code
Branches
parsing
Default avatar Phil Hargett
Whoops, duplicate definitions
Branches
parsing
Default avatar Phil Hargett
Splitting out grammar into separate file (and overwriting what we had before)
Branches
parsing
Default avatar Phil Hargett
Basic LR0 item-set construction complete, and a suitable extended grammar properly generates fundamental grammar forms.
Branches
parsing
Default avatar Phil Hargett
Temporarily re-incorporating (but not using) the work to transform grammars with loops, optional elements, and alternatives.
Default avatar Phil Hargett
Just adding additional clarifying comments
Default avatar Phil Hargett
Small refactorings of parser code in preparation for a possible tokenizer variation
Default avatar Phil Hargett
More progress towards tokenizing. Separated HTML tokens out into a separate file, and based the grammar on that.
Default avatar Phil Hargett
Renamed some methods/slots to reference tokens rather than characters, in preparation for moving to token streams, not character streams
Default avatar Phil Hargett
Removed some tracing that is a bit noisy now, since we've solved our copy thread problems (yes, it could be bad to remove the tracing that actually solved a problem, while leaving all the other stuff intact. ;) )
Default avatar Phil Hargett
Added additional tracing to account for observing max # of threads concurrently active in the parser
Default avatar Phil Hargett
Added equality test for empty-nodes, which should always be node-equal
Default avatar Phil Hargett
Converted optional nodes to leverage alternatives-node to do their work, for consistency.
Default avatar Phil Hargett
Refined the HTML grammar a bit (and the supporting capture-node behavior) to capture values during parsing. In capture-node, if an attempt is made to read an unbound slot during a transform, we swallow the condition as if no capture node was present.
Default avatar Phil Hargett
Extensive set of changes to fix bugs related to supporting more complex (although still quite simple) HTML. Biggest issues were problems encountered with capture-nodes captured values into targets that weren't on the stack: this one was caused by failing to copy the start node into a thread--since a thread started from another thread is made form a copy, its possible the node node on top points to earlier objects in the stack on the old thread--so it needs to be copied, too. Second, consolidated parse results such that if a new result is member of the existing parser results (based on a #'node-equal test), then drop it. We're getting many cases where longer strings are producing numerous identical parses--best guess is that whitespace is responsible, but at least this cleans it up for now. Still cannot parse a tag containing html-text with extensive white space in it.
Default avatar Phil Hargett
Added accumulate semantics in addition to capture; can now accumulate values as a list in a slot on a target rule, instead merely capturing a single value
Default avatar Phil Hargett
Renamed s macro to capture (leaving as a macrolet for now, to avoid having it make further assumptions about the context in which it is called); renamed rules to grammar and moved macro factories to grammar. All tests pass
Default avatar Phil Hargett
Reordering declarations in rule macro prevents warnings in recursive rules. If the macro for the rule is declared before the continue-parse method, then no warning about symbol being previously assumed to be a function but now a macro appears.
Default avatar Phil Hargett
Tag parsing tests are all passing; this should be a foundation for parsing text in a source-code-file
Default avatar Phil Hargett
Refined rule nodes to have no automatic value slot, but to instead rely upon capture of values into declared slots
Default avatar Phil Hargett
Corrected optional nodes, so they now work like much alternatives. Should consider consoliding them at some point, and also validating that empty-nodes are handled properly everywhere that is necessary. In current construction, most of that work can be probably be hidden in sequence nodes, if not already. Several number test cases added and all parse correctly.
Default avatar Phil Hargett
Work in progress. Updated the source-code-file data structure to include parsers on each line, flushing them as characers are added and supporting a reparse method. Added several new tests, but stopped at working on number tests: optional nodes may be failing.
Default avatar Phil Hargett
Simple refinement of source-code. Added code to set the whole text of the source at once, and renamed position accessors for clarity. Added some initial tests for source-code.
Default avatar Phil Hargett
Appear to have resolved issues with copying correctly the graph of objects anchored at a thread. All tests are passing
Default avatar Phil Hargett
Fixed a bug in rule nodes where base slots from parse-node were not being copied. That caused new threads to return an incorrect result in the html-text tests.
  1. Prev
  2. Next
Help
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.