22 lines
896 B
EBNF
22 lines
896 B
EBNF
/*
|
|
* Gigatron Control Language v1 definition
|
|
* EBNF in W3C notation
|
|
* Recommended railroad diagram generator: http://www.bottlecaps.de/rr/ui
|
|
*/
|
|
Gcl1File ::= Space* 'gcl1' ((Space|Block) Word?)* Newline
|
|
Block ::= '[' Word? ((Space|Block) Word?)* ']'
|
|
Word ::= Keyword | Prefix? (Name | Number) Operator?
|
|
Keyword ::= 'call' | 'deek' | 'def' | 'do' | 'else' |
|
|
'if' ('<' | '=' | '>' | '<=' | '<>' | '>=') '0' 'loop'? |
|
|
'loop' | 'peek' | 'pop' | 'push' | 'ret'
|
|
Prefix ::= [<>\%]
|
|
Name ::= Letter (Letter | '_' | Decimal)*
|
|
Operator ::= [-+&|^=.,:;!?^] | '++' | '--' | '<<'
|
|
Number ::= [-+]? (Decimal+ | '$' Hexadecimal+)
|
|
Comment ::= '{' (Space | [#x21-#x7A] | #x7C | #x7E)* '}'
|
|
Letter ::= [a-zA-Z]
|
|
Decimal ::= [0-9]
|
|
Hexadecimal ::= [0-9a-fA-F]
|
|
Space ::= #x20 | Newline | Comment
|
|
Newline ::= #x09? #x0A
|