|
|
9 years ago | |
|---|---|---|
| .. | ||
| csharp_runtime | 9 years ago | |
| csharp_sccd_compiler | 9 years ago | |
| csharp_tests | 9 years ago | |
| javascript_runtime | 9 years ago | |
| python_runtime | 9 years ago | |
| python_sccd_compiler | 9 years ago | |
| tanks | 9 years ago | |
| test_files | 9 years ago | |
| textualnotations | 9 years ago | |
| unity_editor | 9 years ago | |
| LICENSE | 9 years ago | |
| README.md | 9 years ago | |
| bouncing.html | 9 years ago | |
| bouncing_balls.js | 9 years ago | |
| bouncing_balls.js.xml | 9 years ago | |
| bouncing_balls_backup.js | 9 years ago | |
| javascript_fixed.zip | 9 years ago | |
| javascript_models.zip | 9 years ago | |
| particle_interaction.html | 9 years ago | |
| particle_interaction_vis_js.js | 9 years ago | |
| particle_interaction_vis_js.xml | 9 years ago | |
| particle_interaction_vis_js_instrumented.xml | 9 years ago | |
| schema.xml | 9 years ago | |
This is a fork of https://github.com/gl3nn/sccd_compiler
Manual for the compiler written in Python :
$python sccdc.py --help
usage: sccdc.py [-h] [-o OUTPUT] [-v VERBOSE] [-p PROTOCOL] [-l LANGUAGE]
input
positional arguments:
input The path to the XML file to be compiled.
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
The path to the generated code. Defaults to the same
name as the input file but with matching extension.
-v VERBOSE, --verbose VERBOSE
2 = all output; 1 = only warnings and errors; 0 = only
errors; -1 = no output. Defaults to 2.
-p PLATFORM, --platform PLATFORM
Let the compiled code run on top of threads or
gameloop. The default is threads.
-l LANGUAGE, --language LANGUAGE
Target language, "csharp", "python" or "javascript". Defaults
to "python".
For a detailed explanation on the formalism's syntax please consult the latest report here.
Executing the tests written for the Python compiler and generated Python code can be done by running tests.py. This file imports the test cases from the test_files folder.
In the tanks folder a tanks game can be found for which both the input handling of the player-controlled tank, and the behaviour of the NPC tank are modelled using the SCCD formalism. For this specific example the commands to compile the models are as follows :
python sccdc.py tanks/player_controller.xml -o tanks/player_controller.py -p gameloop
python sccdc.py tanks/ai_controller.xml -o tanks/ai_controller.py -p gameloop
The resulting files player_controller.py and ai_controller.py (and any other compiled code) depend on the runtime files found in python_runtime, so this folder should either be put in PYTHONPATH or directly in the tanks directory (you can use a symbolic link).
Live demo of a statechart (compiled to Javascript) simulating a bouncing ball: https://gwd.dyn.mk/public/sccd/svgdemo