Joeri Exelmans
|
99f2a33513
Fix bug in zero-length blocks.
|
5 years ago |
Joeri Exelmans
|
2c4aba04c2
Enable history in action language interactive prompt.
|
5 years ago |
Joeri Exelmans
|
f778b1bd61
Created an interactive prompt app for action language.
|
5 years ago |
Joeri Exelmans
|
14719055bb
Action language components are now completely independent from anything statechart-related.
|
5 years ago |
Joeri Exelmans
|
f796f29b60
Moved some more files.
|
5 years ago |
Joeri Exelmans
|
5c90ba0c93
Action language components almost completely independent of statechart components. Reorganize project directory structure.
|
5 years ago |
Joeri Exelmans
|
ceb4a73f2b
GC memory is read-only. Introduce Python class SCCDRuntimeException for all runtime exceptions. Clean up some things.
|
5 years ago |
Joeri Exelmans
|
012898370d
Abandon silly 'state scope' idea (too complex and difficult to combine with memory protocol semantics). Major revision of memory protocol implementation. Added support for function closures.
|
5 years ago |
Joeri Exelmans
|
819812bf79
Variables declared during enter actions are added to new 'state scope', so they can be read in transitions' guards and actions.
|
5 years ago |
Joeri Exelmans
|
9ed4bbd9c6
Got rid of dependency 'typing_inspect' giving problems with Python 3.6 by declaring our 'SCCD' types (for int, float, function, array, ...) instead of using Python's built-in types.
|
5 years ago |
Joeri Exelmans
|
cf2c4b4915
Add test indicating function closures are not supported.
|
5 years ago |
Joeri Exelmans
|
ee9218c8d6
Fix race condition detection + fix some outdated test files.
|
5 years ago |
Joeri Exelmans
|
2f1c07eebf
Add test for nested function declarations and recursion (although we probably don't want recursion in our statecharts)
|
5 years ago |
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 years ago |
Joeri Exelmans
|
99cf4d26bf
Increment/decrement assignment operators are not special, they are just syntactic sugar.
|
5 years ago |
Joeri Exelmans
|
f7eb3588c1
Proper static type inference for binary and unary expressions.
|
5 years ago |
Joeri Exelmans
|
09cc364711
Got Example 7 from Day & Atlee working!
|
5 years ago |
Joeri Exelmans
|
ae7057602a
Add some tests for return type static analysis.
|
5 years ago |
Joeri Exelmans
|
021c634211
Rename class 'ReturnType' to 'ReturnBehavior' + add check on fields.
|
5 years ago |
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 years ago |
Joeri Exelmans
|
4f95b97760
Fix bug in MemorySnapshot.shrink_stack. Example 7 from Day & Atlee almost executing correctly.
|
5 years ago |
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 years ago |
Joeri Exelmans
|
fdc4868683
Action language: Implemented if-statements. Implemented raising events with parameter expressions. Rename some things.
|
5 years ago |
Joeri Exelmans
|
a715cc2bed
Add 'builtin' function for logging (debug) output from the model.
|
5 years ago |
Joeri Exelmans
|
10288e3385
Getting closer to XML parsing nirvana...
|
5 years ago |
Joeri Exelmans
|
e9cd4faca9
The type system stores the real type of a Callable (user-defined or builtin function), including the hidden EvalContext parameter.
|
5 years ago |
Joeri Exelmans
|
bc16f53e48
Add 'Syntactic' big step maximality tests
|
5 years ago |
Joeri Exelmans
|
308cd610ad
Implemented 'Syntactic' big step maximality option (not yet fully tested)
|
5 years ago |
Joeri Exelmans
|
225a6d0c8d
Implemented user-defined functions. Parameter types explicit, return types statically inferred.
|
5 years ago |
Joeri Exelmans
|
19ac39f437
Add EvalContext data class to group parameters passed to Expression.eval, Statement.exec, Variable.load and Variable.store.
|
5 years ago |