My own version of SCCD. Started as a fork of SCCD 0.9, but is >99% a complete rewrite. The interpreter part was created as part of my master thesis. The compiler (target: Rust) was added later on.

Joeri Exelmans 7d7f3832fe Remove JavaScript stuff. Move existing SCCD examples, doc and textualnotations to 'legacy' folder. Update setup script. Add digital watch example (doesn't run yet, need to figure out how to connect existing Python code with the statechart model) 5 anni fa
bsml_features e92f44ba01 Rename python src dirs to match installed names (can set to 'src' dir so you don't have to re-install after every change). Updated SCCD schema to accept all existing tests. Added XML namespace to tests. Compiler checks input file against SCCD schema. New compiler dependency 'lxml' (largely compatible with xml.etree) for dealing with XML namespaces and schemas. 5 anni fa
examples 7d7f3832fe Remove JavaScript stuff. Move existing SCCD examples, doc and textualnotations to 'legacy' folder. Update setup script. Add digital watch example (doesn't run yet, need to figure out how to connect existing Python code with the statechart model) 5 anni fa
legacy 7d7f3832fe Remove JavaScript stuff. Move existing SCCD examples, doc and textualnotations to 'legacy' folder. Update setup script. Add digital watch example (doesn't run yet, need to figure out how to connect existing Python code with the statechart model) 5 anni fa
src 7d7f3832fe Remove JavaScript stuff. Move existing SCCD examples, doc and textualnotations to 'legacy' folder. Update setup script. Add digital watch example (doesn't run yet, need to figure out how to connect existing Python code with the statechart model) 5 anni fa
test 7d7f3832fe Remove JavaScript stuff. Move existing SCCD examples, doc and textualnotations to 'legacy' folder. Update setup script. Add digital watch example (doesn't run yet, need to figure out how to connect existing Python code with the statechart model) 5 anni fa
.gitignore a6753bd559 Fixed all tests. 5 anni fa
LICENSE 04ec602b01 initial commit (from svn repo) 9 anni fa
README.md 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 anni fa

README.md

Statecharts and Class Diagram Compiler

Dependencies

Mandatory

  • CPython >= 3.6 or PyPy >= 7.3.0 (Compatible with Python 3.6)
  • The following packages from PyPi:
    • lark-parser for parsing state references and action code
    • lxml for parsing the SCCD XML input format
    • termcolor for colored terminal output
    • dataclasses (not needed for Python >= 3.7)

Optional

  • state-machine-cat to render statecharts as SVG images. Runs on NodeJS, installable from NPM.