libera/#sicl - IRC Chatlog
Search
7:56:45
beach
Doing that involves augmenting a Trucler environment in the method on FINISH-NODE specialized to LET-AST.
7:57:29
beach
Of course, the ASTs I generate are not quite right yet. There needs to be a reference from the AST introducing the variable to the AST using the variable and vice versa.
8:00:09
beach
And I noticed that we go to great trouble in SICL to define methods on Trucler augmentation functions for global environments, but the simpler way is to wrap the global environment in an empty Trucler environment which will then be an acceptable argument to those augmentation functions.
9:30:15
beach
As part of the method on FINISH-NODE for a LET-AST, I changed the class of the ASTs in the variable binding to be VARIABLE-DEFINITION-ASTs, and I convert a variable reference to a VARIABLE-REFERENCE-AST, and I link the two.
9:37:20
beach
I can't believe I didn't do it that way for SICL. Instead we use a single AST instance for the definition and the reference. That means we can't distinguish source locations.
9:37:53
beach
Also, it made the visualizer harder to write, because I had to account for cycles in the AST graph.
9:39:22
beach
It would be simpler to have the visualizer show a tree, or at least an acyclic graph, and then perhaps have a HIGHLIGHT-PRESENTATION method that shows the links between definition and reference. Something like that is what I am thinking of for Second Climacs.