The purpose of this milestone is to make sure that your group functions well together, to get each toolset installed and working on a small example, and to help you compare between toolsets and languages. You must make these change on flex/bison/C. If you are going to do your project with another language and/or toolset, you must also implement the Tiny language with that. You must do the following for each evaluator:
%
and
an abs(<exp>)
function.
-<exp>
as
syntactic sugar for the
expression 0-<exp>
. This
means that unary minus should be defined in the grammar, but not in
the abstract syntax trees, meaning there should be no changes to the
pretty printer or evaluator. This question is somewhat tricky in
SableCC; there is no way in an AST transformation to create a '0' node. You can
either a) create a null node and then use a later pass that replaces it
with zero, or b) perform a post pass that fixes up any unary minus nodes
directly.
<l_exp> / <r_exp>
where
<r_exp>
evaluates to
zero.
a + 3 * 4
should
evaluate to a + 12
and no error
message should be printed.
0 * a
should evaluate to 0
.
testcases
file that demonstrate your
ability to handle good and bad input appropriately. Running make check
will create a file called
result
that will contain the
output. We will combine the testcases from all groups and use them to
test your improved Tiny expression evaluators.Finally, based on your experiences, answer the following questions for your milestone report:
This milestone is due by an espilon before midnight on Sunday 22th September 2013. With next week assignment, it will count for 5% of your grade. Marks will be generously deducted for late submissions.