arcs nicely curve when they connect a rountangle to itself
This commit is contained in:
parent
e009f718d2
commit
da0e56e17c
11 changed files with 526 additions and 153 deletions
|
|
@ -6,7 +6,7 @@ start = _ trigger:trigger _ guard:("[" _ guard _ "]")? _ actions:("/" _ actions
|
|||
};
|
||||
}
|
||||
|
||||
trigger = afterTrigger / eventTrigger
|
||||
trigger = afterTrigger / entryTrigger / exitTrigger / eventTrigger
|
||||
|
||||
eventTrigger = event:identifier {
|
||||
return {kind: "event", event};
|
||||
|
|
@ -16,6 +16,15 @@ afterTrigger = "after" _ dur:durationMs {
|
|||
return {kind: "after", durationMs: dur};
|
||||
}
|
||||
|
||||
entryTrigger = "entry" {
|
||||
return {kind: "entry"};
|
||||
}
|
||||
|
||||
exitTrigger = "exit" {
|
||||
return {kind: "exit"};
|
||||
}
|
||||
|
||||
|
||||
durationMs = num:number _ u:timeUnit {
|
||||
return num * (u === "s" ? 1000 : 1);
|
||||
}
|
||||
|
|
@ -46,14 +55,26 @@ number = [0-9]+ {
|
|||
_ "whitespace"
|
||||
= [ \t\n\r]*
|
||||
|
||||
expr = sum
|
||||
expr = compare
|
||||
|
||||
compare = sum:sum rest:((_ ("==" / "!=" / "<" / ">" / "<=" / ">=") _) compare)? {
|
||||
if (rest === null) {
|
||||
return sum;
|
||||
}
|
||||
return {
|
||||
kind: "binaryExpr",
|
||||
operator: rest[0][1],
|
||||
lhs: sum,
|
||||
rhs: rest[1],
|
||||
};
|
||||
}
|
||||
|
||||
sum = prod:product rest:((_ ("+" / "-") _) sum)? {
|
||||
if (rest === null) {
|
||||
return prod;
|
||||
}
|
||||
return {
|
||||
kind:"binaryExpr",
|
||||
kind: "binaryExpr",
|
||||
operator: rest[0][1],
|
||||
lhs: prod,
|
||||
rhs: rest[1],
|
||||
|
|
@ -65,7 +86,7 @@ product = atom:atom rest:((_ ("*" / "/") _) product)? {
|
|||
return atom;
|
||||
}
|
||||
return {
|
||||
kind:"binaryExpr",
|
||||
kind: "binaryExpr",
|
||||
operator: rest[0][1],
|
||||
lhs: atom,
|
||||
rhs: rest[1],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue