Recently introduced an Operand Type which encompasses both Identifiers and Struct Properties (ParameterCall). This opens up the opportunity to tighten up the AST, which currently allows any Expression node to be inserted into places where clearly only operands would work.
Areas affected:
ParallelFunctions - Fault specs have run blocks where the logic of what happens in a single loop of the model is defined. Multiple functions can execute in parallel.
IndexExpression - Not yet fully implemented but allows historic values to be accessed in the model. Typically looks like foo[3]
StockLiteral - Pairs are defined as map[Expression]Expression but keys can't be anything other than Identifiers
FlowLiteral - See above
ComponentLiteral - See above
Recently introduced an Operand Type which encompasses both Identifiers and Struct Properties (ParameterCall). This opens up the opportunity to tighten up the AST, which currently allows any Expression node to be inserted into places where clearly only operands would work.
An example:
Areas affected: ParallelFunctions - Fault specs have run blocks where the logic of what happens in a single loop of the model is defined. Multiple functions can execute in parallel. IndexExpression - Not yet fully implemented but allows historic values to be accessed in the model. Typically looks like
foo[3]
StockLiteral - Pairs are defined asmap[Expression]Expression
but keys can't be anything other than Identifiers FlowLiteral - See above ComponentLiteral - See above