1 /* -*- fundamental -*- */
7 static Train *cur_train;
17 %token <name> TRAIN SEG IS AT HAS STEP HOME END IDENT
28 %name-prefix="record_yy"
33 | line NL { record_tempzone_clear(); } file
36 | TRAIN train IS NUM NUM '+' NUM '+' NUM
37 { if ($2) record_train_is($2,$4,$5,$7,$9);
39 | TRAIN train AT backwards seg ':' NUM '+' '-' NUM
40 { if ($2) record_train_at($2,$4,$5,$7,$10);
42 | TRAIN train { cur_train=$2; } HOME segments
45 | TRAIN train STEP NUM '=' NUM NUM '/' NUM
46 { if (!trains) record_train_step_count();
47 else if ($2) record_train_step($2,$4,$6,$7,$9);
49 | SEG seg HAS backwards train
50 { if ($2 && $5) record_seg_has($2,$4,$5);
53 { if ($2) record_seg_at($2,$4);
56 backwards: /* empty */ { return 0; }
59 segments: { cur_train= 0; }
60 | backwards seg { record_train_home(cur_train,$1,$2); } segments
61 ident: TRAIN | SEG | IS | AT | HAS | STEP | HOME | END | IDENT
63 seg: ident { $$= record_pname2seg($1); }
64 train: ident { $$= record_pname2train($1); }