Files
ziffers-python/ziffers/spec/scala.lark
Miika Alonen 5d122a90e0 Added parsing for monzos and support for escaped pitch_classes
Syntax for monzos supported in scala scales: [-1 1> etc.

Support for escaped pitches: {q12 e23 26}
2023-03-16 22:29:24 +02:00

24 lines
785 B
Plaintext

?root: lines
lines: (number | ratio | monzo | operation)+
?number: float | int | random_int | random_float
random_int: "(" int "," int ")"
random_float: "(" float "," float ")"
float: /(-?[0-9]+\.[0-9]*)|(\.[0-9]+)/
int: /-?[0-9]+/
?ratio: frac_ratio | edo_ratio | edji_ratio | decimal_ratio
frac_ratio: (int | random_int) "/" (int | random_int)
edo_ratio: (int | random_int) "\\" (int | random_int)
edji_ratio: (int | random_int) "\\" (int | random_int) "<" (int | random_int) "/"? (int | random_int)? ">"
decimal_ratio: int "," int
monzo: "[" int+ ">"
operation: (number | ratio | monzo) (operator ((number | ratio | monzo) | sub_operations | operation))+
!operator: "+" | "-" | "*" | "%" | "&" | "|" | "<<" | ">>"
sub_operations: "(" operation ")"
%import common.WS
%ignore WS