Files
bf-server/client/bf.g4

50 lines
587 B
Plaintext
Raw Normal View History

2021-04-17 23:03:40 +05:30
grammar bf;
program
: statements EOF;
statements
: eligibleStmt*;
eligibleStmt
: stmt
| numberedStmt
;
numberedStmt
: stmt NUMBER
;
stmt
: basicStmt
| loopStmt
;
loopStmt
: LOOPSTART statements LOOPEND
;
basicStmt
: INC # ptrIncr
| DEC # ptrDecr
| LEFT # ptrLeft
| RIGHT # ptrRight
| INPUT # inputStmt
| OUTPUT # outputStmt
;
LOOPSTART: '[';
LOOPEND:']';
NUMBER: [0-9]+;
INPUT: ',';
OUTPUT: '.';
DEC: '-';
INC: '+';
LEFT: '<';
RIGHT: '>';
EVERYTHING_ELSE: . ->channel(HIDDEN);
WS: [ \r\n] -> skip;