aboutsummaryrefslogtreecommitdiff
path: root/day4/Grammar.g4
blob: 9d9bd120ddb704e05e830bd70a9a4c177e50dc9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
grammar Grammar;


root : line+ EOF ;

line: LBR date RBR WS action NEWLINE ;

date : (year = NUMBER) DASH (month = NUMBER) DASH (day = NUMBER)
       WS
       (hour = NUMBER) COLON (minute = NUMBER);

action : 'falls asleep' # asleep
       | 'wakes up' # wakeup
       | 'Guard #' (guard = NUMBER) ' begins shift' # shift
       ;


RBR : ']' ;
COLON : ':' ;
LBR : '[' ;
DASH : '-' ;
NUMBER : [0-9]+ ;
NEWLINE : '\n' ;
WS : [\t ] ;