DrSensor / DrSensor/scdlang

Generate scdlang from other formats

Open
#22 0 comments 0 reactions 0 assignees View on GitHub
prototype
Dominant language
Rust
Stars
103
Forks
2
PR merge metrics
No merged PRs in 30d

Description

[Scope] only support formats that (pick one):
- not being used to describe a state machine or configuration
- and not literally statecharts or it's derivative
- or standardized interchangeable formats
- and generated from another system

###### Possible formats:
- [ ] ~~[@xstate/graph](https://github.com/davidkpiano/xstate/tree/master/packages/xstate-graph)~~ (prone to changes)
- [ ] ~~CSV/HTML/Markdown of [state transition table](https://wikipedia.org/wiki/State_transition_table)~~ (there is lot of variants)
- [ ] SCXML? 🤔
- [ ] XMI of the UML

###### API (prone to changes)
```rust
let parser = Scdlang::new();

parser.transform().expressions
.nth(0).current_state("B")?
.next_state("A")?.event("C")?;

assert_eq!("A -> B", &parser.to_string());
```
Possibly, it will use the caches to build the syntax string

##### Resources
- [UML Statechart library in C and XMI importer](https://github.com/jonasblixt/ufsm)
- [State Machine Cat and XMI](https://github.com/sverweij/state-machine-cat/blob/develop/docs/XMI.md)
- https://www.omg.org/spec/UML/About-UML/ (see Abstract Syntax Metamodel)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.