wiki:OmnibusChanges

Version 1 (modified by siegel, 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 switch statements 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.