Add new comments and lines
This commit is contained in:
@@ -1,20 +1,42 @@
|
||||
grammar bf;
|
||||
|
||||
program:
|
||||
statements* EOF;
|
||||
program
|
||||
: statements* EOF;
|
||||
|
||||
statements:
|
||||
statement+;
|
||||
|
||||
statement:
|
||||
INC
|
||||
| DEC
|
||||
| INPUT
|
||||
| OUTPUT
|
||||
statements
|
||||
: (statement|numberedStatement|loopStmt)+;
|
||||
|
||||
loopStmt
|
||||
: LOOPSTART statements LOOPEND
|
||||
;
|
||||
|
||||
numberedStatement
|
||||
: statement NUMBER
|
||||
;
|
||||
|
||||
statement
|
||||
: INC
|
||||
| DEC
|
||||
| LEFT
|
||||
| RIGHT
|
||||
| inputStmt
|
||||
| outputStmt
|
||||
;
|
||||
|
||||
inputStmt
|
||||
: INPUT
|
||||
;
|
||||
|
||||
outputStmt
|
||||
: OUTPUT
|
||||
;
|
||||
|
||||
NEWLINE: '\n' -> skip;
|
||||
COMMENT: '\\\\.*?\\\\' -> skip;
|
||||
COMMENT: '//' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN);
|
||||
WS: [ \r\n] -> skip;
|
||||
LOOPSTART: '[';
|
||||
LOOPEND:']';
|
||||
NUMBER: [0-9]+;
|
||||
INPUT: '?';
|
||||
OUTPUT: '.';
|
||||
DEC: '-';
|
||||
|
Reference in New Issue
Block a user