MCPcopy Index your code
hub / github.com/DrSensor/scdlang

github.com/DrSensor/scdlang @0.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.2.1 ↗ · + Follow
232 symbols 575 edges 44 files 43 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Scdlang

Statecharts Description Language

powered by [🌟](https://help.github.com/en/articles/about-stars) Don't let _him_ be a stargazer alone!

current version Docker image size License Chats

🚧 Still Work in Progress 🏗️

About

Scdlang (pronounced /ˈesˌsi:ˈdi:ˈlæŋ/) is a description language for describing Statecharts that later can be used to generate code or just transpile it into another format. This project is more focus on how to describe Statecharts universally that can be used in another language/platform rather than drawing a Statecharts diagram. For drawing, see State Machine cat.

Philosophy

  • Readable just like you read then visualize a state diagram
  • Writeable just like you write code which is concise, clear, and can be refactored
  • Transferable to any implementation (e.g platform, programming language, runtime, etc)

Key Features

For more info, see the changelog in the release page

Getting Started

Currently, this project only have the binary CLI for each OS. Please go to the release page to download then extract it. It also shipped with auto-completions script for your preffered shell.

Installing

Just download the binary in the release page or follow this instructions 👇

Linux🐧

TODO: (AUR, DEB, RPM) or via shellscript just like installing rustup

MacOS🍏

TODO: brew or via shellscript just like installing rustup

Windows🗔

TODO: chocolatey or via msi installer just like installing rustup

using Docker🐳

docker pull scdlang/scrap

via Cargo📦

cargo install s-crap

Contributing

open "help wanted" issues open "good first issue" issues

Any contributions are welcome as long as it follow Code of Conduct.

If anyone have questions or something to discuss, feel free to DM or mention me in any platform that have my profile picture 👹.

License

This project is licensed under the Universal Permissive License 1.0 - see the LICENSE file for details

Resources

Extension points exported contracts — how you extend this code

CLI (Interface)
TODO: refactor this interface so that there is no need to duplicate [dependecies] into [build-dependencies] [3 implementers]
packages/cli/src/cli.rs
Parser (Interface)
A Trait which external parser must implement. This trait was mean to be used outside the core. For example, to build a [2 …
packages/core/src/external.rs
SplitToVec (Interface)
(no doc) [1 implementers]
packages/transpiler/smcat/src/utils.rs
ShortProcess (Interface)
(no doc) [2 implementers]
packages/cli/src/lib.rs
Builder (Interface)
A Trait to configure the `Parser`. This is a config builder for [`Scdlang`](../struct.Scdlang.html) core parser. [1 implementers]
packages/core/src/external.rs
MetaData (Interface)
(no doc) [1 implementers]
packages/transpiler/smcat/src/utils.rs
ActiveProcess (Interface)
(no doc) [2 implementers]
packages/cli/src/lib.rs
Expression (Interface)
Everything that can change state Example: ```scl A -> B ``` */ [1 implementers]
packages/core/src/semantics/kind.rs

Core symbols most depended-on inside this repo

into
called by 24
packages/core/src/semantics/graph.rs
into_iter
called by 22
packages/core/src/semantics/transition/iter.rs
from
called by 21
packages/core/src/lib.rs
map
called by 19
packages/core/src/utils/naming.rs
configure
called by 14
packages/transpiler/smcat/src/lib.rs
expression
called by 11
packages/core/src/lib.rs
correct_expressions
called by 9
packages/core/src/lib.rs
output_from
called by 8
packages/cli/src/lib.rs

Shape

Method 94
Function 85
Interface 24
Class 19
Enum 10

Languages

Rust96%
Python4%

Modules by API surface

packages/cli/src/lib.rs24 symbols
packages/transpiler/smcat/src/lib.rs14 symbols
packages/core/src/semantics/transition/mod.rs14 symbols
packages/transpiler/xstate/src/machine/mod.rs12 symbols
packages/cli/src/error.rs12 symbols
packages/core/src/utils/naming.rs10 symbols
packages/core/src/core/mod.rs10 symbols
packages/transpiler/smcat/src/utils.rs9 symbols
packages/core/src/core/builder.rs9 symbols
packages/transpiler/smcat/src/schema.rs7 symbols
packages/core/src/semantics/kind.rs6 symbols
packages/core/src/semantics/graph.rs6 symbols

For agents

$ claude mcp add scdlang \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact