Skip to content

PiotrJustyna/wyvern

Repository files navigation

wyvern

wyvern Simplified version of DRAKON diagramming language.

constraints

  • only horizontal or vertical lines
  • top-to-bottom as default direction
  • connections never cross
  • connections overlap only when it doesn't cause ambiguity
  • deterministic: input A will always produce output B

how to use

development environment

The preferred way to work with wyvern is in containers. All scripts/commands described below will work directly on your local operating system, but the indended usage is in-container.

command description
./start-development-environment.sh starts a fully dockerized development environment
./build.sh builds, lints and formats code
./run.sh runs code
./test.sh runs tests
exit terminates development environment

debugging

  • cabal repl Wyvern --repl-options="-fbreak-on-error -fbreak-on-exception"
  • :load app/Main
  • :break SkewerBlock 365
  • :main -i "./diagrams/bubble-sort.txt" -o "./diagrams/bubble-sort.svg"

runtime environment

For those looking to only run a compiled version of wyvern in a container, there is a runtime image I prepared (only arm64 version for now):

docker pull ghcr.io/piotrjustyna/wyvern-runtime:latest
command description
./run-in-container.sh runs code

community

resources

DRAKON

DRAKON is wyvern's big brother - more complex, steeper learning curve, more terms, more rules.

haskell

colours

About

Simplified version of DRAKON diagramming language.

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •