program
[NAME string] {trigger} EOF
trigger
EVERY interval DO block END
EVERY REDSTONE PULSE DO block END
interval
[number] [GLOBAL|G] [PLUS|+ number] TICK(S)|SECOND(S)
numberG [PLUS|+ number] unit
statement
input | output | if | forget
input
INPUT [limits] [EXCEPT ids] FROM [EACH] access
FROM [EACH] access INPUT [limits] [EXCEPT ids]
output
OUTPUT [limits] [EXCEPT ids] TO [EMPTY SLOT(S) IN] [EACH] access
TO ... access OUTPUT [limits] [EXCEPT ids]
limits
rule {, rule} [,]
rule
[limit] id {OR id} [with]
limit [with] | with
limit
[number [EACH]] [RETAIN number [EACH]]
resource id
part[:part[:part[:part]]] 或 "regex"
with
WITH clause | WITHOUT clause
with clause
(clause) | NOT clause | clause AND clause | clause OR clause | [TAG] [#] tagPattern
tagPattern
[namespace:]path[/path...]
access
label {, label} [roundRobin] [sides] [slots]
roundRobin
ROUND ROBIN BY LABEL|BLOCK
sides
EACH SIDE
side {, side} SIDE
side
TOP|BOTTOM|NORTH|EAST|SOUTH|WEST|LEFT|RIGHT|FRONT|BACK|NULL
slots
SLOT(S) range {, range}
range
number [- number]
forget
FORGET [label {, label} [,]]
if
IF bool THEN block {ELSE IF bool THEN block} [ELSE block] END
bool
TRUE|FALSE|(bool)|NOT bool|bool AND bool|bool OR bool|has|redstone
has
[setOp] access HAS cmp number [id {OR id}] [with] [EXCEPT ids]
redstone
REDSTONE [cmp number]
setOp
OVERALL|SOME|EVERY|EACH|ONE|LONE
cmp
GT|LT|EQ|LE|GE|>|<|=|<=|>=
comment
-- 到行末