-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Okay, pretty big rewrite. Still a bit unstable:
1. Modf will assume that the data container is in position 1 of the expression list (adjusting for applys) if it doesn't know the function. This is what you want most of the time, but not all the time. 2. MODF-EXPAND is much simpler now. It takes three arguments: NEW-VAL EXPR and ENCLOSED-OBJ-SYM. NEW-VAL is what you want EXPR to evaluate to with the new data structure. ENCLOSED-OBJ-SYM is the symbol that we assumed (in the previous call) would hold the value we are working with. It is part of the current recursion level's job to ensure that that value is set to the proper data (i.e. object that we are accessing at this level). 3. I introduced LATE-INVERT which is a function that will be placed in the expansion if we have no idea what to do. This shows up if we have functions that we have not defined Modf expansions for. This is common for class methods not defined using our DEFCLASS or grovelled out of the def form, and ditto for structures. It uses some smarts to make guesses as to whether an Method/Function is a slot accessor or not. I actually just realized that I messed up the case where we have a reader and writer with different names. Have to fix that later. All in all, it kind of works.
- Loading branch information
Showing
2 changed files
with
86 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters