Joeri Exelmans
|
2f1c07eebf
Add test for nested function declarations and recursion (although we probably don't want recursion in our statecharts)
|
5 роки тому |
Joeri Exelmans
|
f93fc55dc3
Datamodel: Have a "setup" script declaring variables in the instance scope instead of silly XML tags <var> and <func> for variable and function declarations. Nicer syntax, more powerful and we reuse functionality (like parsing and interpreting a block of statements) instead of treating the datamodel as something special. Function declarations are just expressions assigned to variables or directly called. Nested function declarations should be fully supported (yet untested).
|
5 роки тому |
Joeri Exelmans
|
99cf4d26bf
Increment/decrement assignment operators are not special, they are just syntactic sugar.
|
5 роки тому |
Joeri Exelmans
|
f7eb3588c1
Proper static type inference for binary and unary expressions.
|
5 роки тому |
Joeri Exelmans
|
09cc364711
Got Example 7 from Day & Atlee working!
|
5 роки тому |
Joeri Exelmans
|
ae7057602a
Add some tests for return type static analysis.
|
5 роки тому |
Joeri Exelmans
|
021c634211
Rename class 'ReturnType' to 'ReturnBehavior' + add check on fields.
|
5 роки тому |
Joeri Exelmans
|
3c606e245b
Implemented 'else' branches for if-statements. Better static analysis of return types. Moved non-statechart XML parsing logic to separate file.
|
5 роки тому |
Joeri Exelmans
|
4f95b97760
Fix bug in MemorySnapshot.shrink_stack. Example 7 from Day & Atlee almost executing correctly.
|
5 роки тому |
Joeri Exelmans
|
52823174d2
Proper block-of-statements static return type inference checking all branches and raising error if different branches have different return types.
|
5 роки тому |
Joeri Exelmans
|
fdc4868683
Action language: Implemented if-statements. Implemented raising events with parameter expressions. Rename some things.
|
5 роки тому |
Joeri Exelmans
|
a715cc2bed
Add 'builtin' function for logging (debug) output from the model.
|
5 роки тому |
Joeri Exelmans
|
10288e3385
Getting closer to XML parsing nirvana...
|
5 роки тому |
Joeri Exelmans
|
e9cd4faca9
The type system stores the real type of a Callable (user-defined or builtin function), including the hidden EvalContext parameter.
|
5 роки тому |
Joeri Exelmans
|
bc16f53e48
Add 'Syntactic' big step maximality tests
|
5 роки тому |
Joeri Exelmans
|
308cd610ad
Implemented 'Syntactic' big step maximality option (not yet fully tested)
|
5 роки тому |
Joeri Exelmans
|
225a6d0c8d
Implemented user-defined functions. Parameter types explicit, return types statically inferred.
|
5 роки тому |
Joeri Exelmans
|
19ac39f437
Add EvalContext data class to group parameters passed to Expression.eval, Statement.exec, Variable.load and Variable.store.
|
5 роки тому |
Joeri Exelmans
|
33cf1867c5
Extend semantic option wildcard mechanism to comma-separated lists of options. Parse transition event attribute as comma-separated list of (possibly negated) events with parameters. Event parameters added to transition scope. Input port ignored when generating ID for input/internal event (need this for Day & Atlee's examples)
|
5 роки тому |
Joeri Exelmans
|
73c7897945
Add statechart from Day & Atlee (doesn't work yet, need to implement: 1. event parameters, 2. user defined functions, 3. builtin functions 'log10' and 'int')
|
5 роки тому |
Joeri Exelmans
|
84e26cc27f
Add example from Day & Atlee
|
5 роки тому |
Joeri Exelmans
|
4fb521b6f8
Get rid of stack size optimization (made performance worse). Block-statement remembers its Scope.
|
5 роки тому |
Joeri Exelmans
|
8ed7fc5ddb
Fix memory protocol semantics (always write to 'clean' memory, read from 'snapshot' memory)
|
5 роки тому |
Joeri Exelmans
|
836c690e01
Prepare for multi-event triggers: Event trigger has bitmap with event_id's required to enable the transition.
|
5 роки тому |
Joeri Exelmans
|
3e825ba583
Input port taken into account when assigning globally unique ID to input event.
|
5 роки тому |
Joeri Exelmans
|
bb3cd2a13f
AfterTrigger is stateless again (as it should be)
|
5 роки тому |
Joeri Exelmans
|
ea2e32768e
Added another example from Day & Atlee. Test nonterminating big step by setting limit on subrounds in superround.
|
5 роки тому |
Joeri Exelmans
|
0e4e6fdd0d
Begin adding examples from Day & Atlee paper. Clearer error when <state> initial attribute is invalid. SVG renderer: workaround for order of orthogonal components.
|
5 роки тому |
Joeri Exelmans
|
80d532b9a3
Simpler handling of tests expected to fail. Added race condition test.
|
5 роки тому |
Joeri Exelmans
|
439bbee01d
Implemented Assignment Memory Protocol semantic options.
|
5 роки тому |