From 63f793aff3e045376baa2743ad0ad3cff6c61134 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 31 Oct 1988 15:21:47 +0000 Subject: [PATCH] modyfied to generate only one switchseg for each C_ routine --- util/ceg/EM_parser/common/pars.g | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/util/ceg/EM_parser/common/pars.g b/util/ceg/EM_parser/common/pars.g index df6069f25..3ec5e7529 100644 --- a/util/ceg/EM_parser/common/pars.g +++ b/util/ceg/EM_parser/common/pars.g @@ -55,7 +55,9 @@ char *to_change; table : row* ; -row : C_INSTR { set_outfile( yytext); header( yytext);} +row : C_INSTR { set_outfile( yytext); header( yytext); + set_segment(segment); + } [ special | simple] { out( "}\n\n");} | DEF_C_INSTR { init_defaults( yytext);} @@ -73,7 +75,7 @@ special : simple { out( "}\n");} ; -simple : ARROW { set_segment( segment); save_output();} +simple : ARROW { save_output();} actionlist { back_patch();} ; @@ -149,7 +151,8 @@ Daction : CALL { out( "%s", yytext);} ; -def_row : [ special | simple] { out( "}\n\n");} +def_row : { set_segment(segment);} + [ special | simple] { out( "}\n\n");} ; @@ -163,7 +166,9 @@ c_table : c_row* ; c_row : %if ( to_change && strcmp( yytext, to_change) == 0) - C_INSTR { set_outfile( yytext); header( yytext);} + C_INSTR { set_outfile( yytext); header( yytext); + set_segment(segment); + } [ special | simple] { out( "}\n\n"); to_change = 0; } | C_INSTR -- 2.34.1