Skip to content

andrewfstratton/quandoscript

Repository files navigation

quandoscript

Script engine for Quando

Here is the (growing) script definition, where xxx:: is the definition of xxx

graph LR
    stop((( )))
    start((( )))--> sequence --> stop
    sequence --> nl["↵"] --> sequence
Loading
graph LR
    stop((( )))
    sequence::---line-->nl["↵"]--> stop
    nl-->line
Loading
graph LR
    stop((( )))
    id-->stop
    line::---id-->spacer-->action-->stop
Loading
graph LR
    stop((( )))
    id::---digit-->s( )-->stop
    s-->digit
Loading
graph LR
    stop((( )))
    digit::--- 0..9--> stop
Loading
graph LR
    stop((( )))
    spacer::---l[ ]-->s["#quot; #quot;"]-->r[ ]-->stop
    l-->tab-->r
    r-->l
Loading
graph LR
    stop((( )))
    action::--- word--> params --> stop
Loading
graph LR
    stop((( )))
    word:: --- letter-->stop
    letter-->l( )-->rl["letter"]-->r( )-->stop
    r-->l
    l-->dot["."]-->r
    l-->u["_"]-->r
    l-->digit-->r
Loading
graph LR
    stop((( )))
    letter::---l( )--> a..z--> stop
    l--> A..Z--> stop
Loading
graph LR
    stop((( )))
    params:: --- l["("] --> r[")"]-->stop
    l--> param--> r
    param-->c[","]-->param
Loading
graph LR
    stop((( )))
    param:: --- word --> value-->stop
    word --> variable --> stop
Loading
graph LR
    stop((( )))
    variable:: ---l["="] --> word --> stop
Loading
graph LR
    stop((( )))
    value:: --- l[ ]
    l--> b[!]--> boolean -->stop
    l--> q[#quot;] -->characters --> qr[#quot;] -->stop
    l--> h["\#"]-->FLOATING_POINT -->stop
    l--> c[":"]--> id -->stop
Loading
graph LR
    stop((( )))
    boolean::---l( )--> true --> stop
    l-->false --> stop
Loading
graph LR
    stop((( )))
    characters::---l[ ]--> UNICODE-->r[ ]--> stop
    l-->prefix_character -->r
    r-->l
Loading
graph LR
    stop((( )))
    prefix_character::--- l["\"]-->slash["\"]--> stop
    l-->q[#quot;]-->stop
    l-->n-->stop
    l-->t-->stop
Loading

Optional

  • Range
    • % full (0..1)
    • / half (0.5..1)
    • ~ plus_minus (0.5 +/- 0.5)
    • or should I now switch to -1 to +1
  • true/false/either, e.g. for press/release/either
    • see also temporal logic
    • the difference here is between the press/release change of state and the actual pressed/released state

About

Script engine for Quando

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages