20 lines
699 B
Plaintext
20 lines
699 B
Plaintext
?root: lines
|
|
|
|
lines: (number | operation | ratio | edo_ratio | edji_ratio)+
|
|
|
|
operation: (number | ratio) (operator ((number | ratio) | sub_operations | operation))+
|
|
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)? ">"
|
|
!operator: "+" | "-" | "*" | "%" | "&" | "|" | "<<" | ">>"
|
|
sub_operations: "(" operation ")"
|
|
|
|
// Signed number without EXP
|
|
?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]+/
|
|
|
|
%import common.WS
|
|
%ignore WS |