| Version 1 (modified by , 13 years ago) ( diff ) |
|---|
Multiple Changes to CIVL Code
Model Changes
- introduce !LHSExpression, a subtype of !Expression
- rename ArrayIndexExpression to SubscriptExpression
- modify ModelBuilder to get rid of arrow expressions, replacing them with dot of star
- modify ModelBuilder to get rid of C's pointer-array pun:
in any subscript expression a[i], make sure a has array type. If it doesn't, translate to *(a+i)
in any place where a pointer is called for, but instead an array a is used, replace a with &a[0]. Examples include pointer arithmetic (a+i, a-b), argument to dereference operator *, actual arguments in function calls where the corresponding parameter has pointer type.
make sure the parameter type of a function call is never an array type. ABC should already be doing this.
- use an enumerated type like ExpressionKind for the different kinds of expressions, so
switchstatements can be used - add a method to expressions like
SymbolicExpression getConstantValue()and a corresponding setter, to cache the value of any expression that has a constant value, such as a literal expression
Semantics Changes
Note:
See TracWiki
for help on using the wiki.
