small (mu == micro) collection of software components with which to build Modelling Language Engineering (MLE) tools.

Joeri Exelmans c9c6b4863d draw filled boxes for petri net example/tutorial 1 ano atrás
api 9eea3618d0 cleanup the od api interface 1 ano atrás
benchmark 4ba0ed09b2 Merge with Robbe's scheduling language 1 ano atrás
bootstrap 558772fbe4 commit some long outstanding changes 1 ano atrás
concrete_syntax 4ba0ed09b2 Merge with Robbe's scheduling language 1 ano atrás
doc 7974b1a26d add API LaTeX table 1 ano atrás
examples 0b936a48d1 get rid of outdated examples 1 ano atrás
framework 4ba0ed09b2 Merge with Robbe's scheduling language 1 ano atrás
services ced3edbd08 fix bytes extraction + give created objects also a name when None is provided (same as links) 1 ano atrás
state 51b8bdb001 Add test for bytes type 1 ano atrás
transformation 4ba0ed09b2 Merge with Robbe's scheduling language 1 ano atrás
tutorial c9c6b4863d draw filled boxes for petri net example/tutorial 1 ano atrás
util 6b5931343d Merge remote-tracking branch 'github/master' into development 1 ano atrás
.gitignore 5240c7e21a Add petrinet language 1 ano atrás
README.md 7eca6ddda4 update readme 1 ano atrás
TODO.txt a245d0a406 add a todo thingy 1 ano atrás
requirements.txt ebfd85a666 A fully working version of the scheduling language with added examples 1 ano atrás

README.md

muMLE

Tiny (meta-)modeling framework.

Features:

  • mostly textual concrete syntax
  • meta-modeling & constraint writing
  • conformance checking
  • model transformation primitives (match and rewrite)
  • rule-based model transformation
  • examples included:

Dependencies

  • Python 3.?
  • Python libraries:
    • Lark (for textual parsing)
    • Jinja2 (not a hard requirement, only for model-to-text transformation)

Development

The following branches exist:

  • development - in this branch, new development will occur, primarily cleaning up the code to prepare for next year's MDE classes.
  • mde2425 - contains a snapshot of the repo used for the MDE assignments 24-25. This branch should remain frozen.

Tutorial

A good place to learn how to use muMLE is the tutorial directory. Each file is an executable Python script that explains muMLE step-by-step (read the comments).