libera/#climacs - IRC Chatlog
Search
7:20:14
beach
I think I have come up with a reasonable abstraction for computing indentation. I think this because there is only a modest amount of code duplication, and creating code for computing the indentation of some new construct is reasonably fast. As I mentioned yesterday, I am working on type specifiers.
7:20:15
beach
The good news with indentation is that nothing very bad happens if some expressions are not handled. So it is safe to assume that indentation does not need to be computed when it is likely that the entire expression will be on one single line. If it turns out that it isn't, subsequent lines just won't be indicated to have incorrect indentation.
9:19:30
beach
There are only a few type specifiers that are nontrivial, like FUNCTION and VALUES. The others are fairly straightforward, and most of them, even the compound ones, can probably be skipped, since the entire type specifier will usually fit on a line.
9:23:30
beach
NOT takes a single type specifier as an argument, and CONS takes 0, 1, or 2, but I can use the same code for those as for AND and OR, because it is not the role of the indentation code to check the syntax.