forked from rubinius/rubinius
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is substantially still a WIP. Previously, the AST was created from the sexp top-down (i.e. each child node could depend on the parent node existing when the child is created). The AST is now created from the MRI parse tree bottom-up (i.e. all child nodes are created before the parent node). For local variables, this inversion creates some confusion. A local variable in code is actually a complex web of abstractions: a scope that contains storage for the local variables, a local variable as a member of that scope with certain attributes, a reference to a local variable at the point of access or assignment, and possibly a nested scope. This will be documented in detail once it is complete. For now, more work needs to be done getting method definitions, array literals, splat and svalue nodes, and class/module bodies working correctly before more lasgn specs can be fixed. Also note that dynamic locals (i.e. eval locals) are not yet implemented.
- Loading branch information
Brian Ford
committed
Aug 4, 2009
1 parent
4ace28b
commit c092623
Showing
2 changed files
with
257 additions
and
5 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