diff --git a/src/sequencer/snc.y b/src/sequencer/snc.y index 8656e594d..52619d1cb 100644 --- a/src/sequencer/snc.y +++ b/src/sequencer/snc.y @@ -109,8 +109,8 @@ extern int line_num; /* input file line no. */ state_program /* define a state program */ : program_name definitions state_set_list { program($3); } | program_name definitions state_set_list global_c { program($3); } -| pp_code program_name definitions state_set_list { program($4); } -| pp_code program_name definitions state_set_list global_c{ program($4); } +| pp_codes program_name definitions state_set_list { program($4); } +| pp_codes program_name definitions state_set_list global_c{ program($4); } | error { snc_err("state program"); } ; @@ -374,7 +374,14 @@ for_stmt pp_code /* pre-processor code (e.g. # 1 "test.st") */ : PP_SYMBOL NUMBER STRING CR { pp_code($2, $3, ""); } +| PP_SYMBOL NUMBER CR { pp_code($2, 0, ""); } | PP_SYMBOL NUMBER STRING NUMBER CR { pp_code($2, $3, $4); } +| PP_SYMBOL STRING CR { /* Silently consume #pragma lines */ } +; + +pp_codes /* one or more pp_code */ +: pp_code +| pp_codes pp_code ; global_c