epost / grasp

graph specification processor (deprecated in favour of purescript version)

Home Page:https://github.com/epost/purescript-grasp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Grasp (deprecated in favour of purescript-grasp)

Grasp, short for GRAph Specification Processor, allows you to:

  • Specify graphs in a super concise format.
  • Output graph structure as JSON.
  • Leave formatting (layout, colouring, etc.) to other tools, such as GraphViz.

Examples

Syntax is inspired by both GraphViz and CYPHER:

# concise node and edge syntax

a -> b
b -> c; c -> d
d, e, f -> g

# labeled edges

1 -succ-> 2

# type annotations

x:A -f-> y:B
y -g:G-> z

Features

  • [X] no formatting, only structure
  • [X] comma syntax: a,b,c -> d, e
  • [X] type syntax? a:A - b:B -> c:C
  • [X] comments
  • [ ] transitive syntax? a -> b -> c -> d
  • [ ] allow (back)slash in node / edge labels? (handy for paths and URLs)?
  • [ ] quoted node / edge labels?
  • [ ] dash as part of identifiers maar dan zonder conflicts or ambiguities
  • [ ] question mark as part of identifiers
  • [ ] node / edge ids? maybe using hash mark?
  • [ ] allow references: graph transformations, styling, comments, legend, etc
  • [ ] support formats other than JSON.

About

graph specification processor (deprecated in favour of purescript version)

https://github.com/epost/purescript-grasp


Languages

Language:Yacc 56.6%Language:JavaScript 24.8%Language:Makefile 18.6%