Sat May 20 2000 11:49:
The abstract syntax tree construction code is about to start
working, I think. Programming in C or C++ is like building a watch
with a million little gears. You build all these components and then
you try to get all the gears to mesh together. I get sick of this
very quickly. I'd much rather be building things with Legos. Metaphorical
Legos, I mean. Or real Legos, for that matter.
I keep moving responsibility for the symbol table between the
scanner and the parser. It was in the scanner, then I moved it to the parser, then I decided I could
do it in the scanner after all, then I decided that I couldn't. I'm still
fairly sure that I couldn't, because the parser doesn't know whether
an identifier is part of, eg., a declaration (in which case it goes in the
symbol table) or a statement (in which case it's an error if it's not
already in the symbol table).
Sat May 20 2000 11:58:
I currently have 2218 errors in my code. This is a record. The
2218 errors were caused by the fact that I thought C had an "until"
construct like Perl, and I put such a construct into my yacc file.
Sat May 20 2000 15:01:
I'm now ready to begin filling in my Check functions. This is (almost)
where everyone else is. Good job, me.
Sat May 20 2000 18:45:
Dan is posting comments on Slashdot. I do not endorse this practice.
Sat May 20 2000 19:20:
Inscrutable: "not readily investigated, interpreted, or
understood". I love this word (cf. Jake Berendes West Covina).
Sat May 20 2000 21:40:
A lot of semantic checking code has been written but it doesn't work
yet. Same old story. Bleah.
The semantics of the language are defined primarily through test
cases. Right now there are 33 test cases. The TA has a bounty on new
test cases but no one is biting because a new test case means more
semantics and therefore more work for everybody. Some of the test
cases are really easy to make work and some of them are going to be
nightmares.
The various array assignment cases (where you have to
make sure that two arrays have the same dimensions, or that an
array has a certain number of elements) and the function call case
(enforcing the requirement that the number and types of arguments
to a function correspond to the formal arguments to the function)
look like the toughest ones.
 | Unless otherwise noted, all content licensed by Leonard Richardson under a Creative Commons License. |