32 lines
534 B
Plaintext
32 lines
534 B
Plaintext
program: { section | statement }
|
|
|
|
section: "." WORD newline
|
|
|
|
newline: [ space ] NEWLINE
|
|
|
|
space: SPACE { SPACE }
|
|
|
|
statement: ( function | space [ instruction ] ) newline
|
|
|
|
function: name [ space ] ":"
|
|
|
|
name: WORD
|
|
|
|
instruction: operator [ operand_list ]
|
|
|
|
operator: WORD
|
|
|
|
operand_list: operand { "," operand }
|
|
|
|
operand: [ space ] ( value | address ) [ space ]
|
|
|
|
value: symbol | register | immediate
|
|
|
|
symbol: WORD
|
|
|
|
register: "%" WORD
|
|
|
|
immediate: "$" NUMBER
|
|
|
|
address: "[" [ space ] value [ value ] [ "+" [ space ] offset [ space ] ] "]"
|