Add features to your Tscript system:
You should implement Block statements first, as I will use that to test the other items.
You should take care with each construct to track at runtime the current line number so that error messages will be as accurate as possible. The current line number is tracked in the Message class. It is set via the setLineNumber method.
Your Tscript compiler does not need to support strict execution mode or semicolon insertion.
Remember that you need to be sure that your compiler supports the first four work items from Phase 1: logical not operator, the equals operator, the less-than operator, the greater-than operator, the Boolean type, the Null type, and the Undefined type.
You should be sure to complete the first four items in the above list because they will be used to test your Phase 3 submission. In order to get full-credit on Phase 3 you will also need to have functions working, as well as the Return statement, but you do not need to support arguments or variables captured in function closures. This is necessary for supporting method calls and "this" in Phase 3.
There are some initial test files available on agate in ~cs712/public/tests/phase2.
To get full credit, your code must be adequately documented and structured. If I can't easily read and understand your code, you may lose points.
You must give me back the system in the same form that I gave it to you. I must be able to install it and run it in the exact same way as when it was delivered to you. I would also like you to keep the source code organized in the same directory hierarchy. If you fail to do this, a significant deduction will be made to your grade.
Note that there is a script, distribute.sh, in tscript/bin, which will generate a tar file for you. This tar file is what I require you to submit to me for grading.
To turn in this assignment, type:
~cs712/bin/submit phase2 tscript.tar
Submissions can be checked by typing:
~cs712/bin/scheck phase2
The assignment is due on Sunday March 6. There is a grace period to 8am on Monday March 7 when no late penalty will be assigned. Submissions between 8am March 7 and 8am March 8 will have a late penalty of 10 points. Submissions between 8am March 8 and 8am March 9 will have a late penalty of 30 points. No submissions will be accepted after 8am on Wednesday March 9.
Remember: you are expected to do your own work on this assignment.
Comments and questions should be directed to pjh@cs.unh.edu