-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi, I've implemented extended dynamic wrapping, on which we takled earlier on email #22
base: master
Are you sure you want to change the base?
Conversation
…N can be resolved on dynamics
- factored-out common patterns in eval-expression and compile-expression into macrolet
Thank you! ****AAARG. Effing markdown. Gimme plain text or give me death... so the numbers are screwed up, can't be arsed to figure out how to keep them right. I took a quick look at this. VERY quick. Here are the issues I saw on my pass through the diff to origin/master:
I think I would like to see the different parts here separated out into a distinct pull requests. Now there are too many trees in the forest. Thinking about how to integrate context sensitivity with packrat parsing in a more principled manner, I have a feeling that allowing users to define arbitary functions which could then function as terminals might be the way to go. See sketch on https://github.com/nikodemus/esrap/tree/custom-terminals-sketch (just pushed it). It seems to me that forcing all context into the same cache cannot really be a win, and correctness becomes also harder to reason about. |
OK, I'll try to fix the issues. But now, while integrating all those new syntactic constructs into COMPILE-EXPRESSION, I've noticed, that what's really done is duplicating some of the functionality of the Lisp code-walker. So I decided to improve on HU.DWIM.WALKER a little bit, for it to be able to substitute unknown symbols Of course, this allows to completely mix up destructuring with grammar, which you don't like. I removed compiler macro for PARSE, since other way all the rules ended up in ESRAP::RULES About separating into several pull requests, I know, how to do that in Darcs (where you can rewrite the commit history), but how to do that with Git? |
On 22 June 2013 19:09, Alexandr Popolitov [email protected] wrote:
(Despite my today's pass over esrap pull requests, I'm on vacation and |
Fix interning when *print-case* is not :upcase.
Conflicts: tests/tests.lisp
Fix typo in readme.
Also, I fixed a bug, with infinite loop, which occured when greedy-repeating something that could match to an empty string.
There are use-cases in tests.lisp and in examples-very-context-sensitive-grammar.lisp
Hopefully, this fix how will allow me to write YaML parser using esrap.
But in case I missed something, I'll add fixes on the fly.