stage1_2/iec_flex.ll
changeset 1031 ce026aee03e0
parent 1020 36fb9443b6ea
child 1050 bdc21971f95d
equal deleted inserted replaced
1030:9aba95daf81a 1031:ce026aee03e0
  1191 	/* ':=', at the very beginning of a 'body', occurs only in transitions and not Function, FB, or Program bodies! */
  1191 	/* ':=', at the very beginning of a 'body', occurs only in transitions and not Function, FB, or Program bodies! */
  1192 :=				{ if (isempty_bodystate_buffer())	{unput_text(0); BEGIN(st_state);} /* We do _not_ return a start_ST_body_token here, as bison does not expect it! */
  1192 :=				{ if (isempty_bodystate_buffer())	{unput_text(0); BEGIN(st_state);} /* We do _not_ return a start_ST_body_token here, as bison does not expect it! */
  1193 				  else				 	{append_bodystate_buffer(yytext);}
  1193 				  else				 	{append_bodystate_buffer(yytext);}
  1194 				}
  1194 				}
  1195  
  1195  
  1196 	/* check if ';' occurs before an END_FUNCTION, END_FUNCTION_BLOCK, END_PROGRAM or END_ACTION. (If true => we are parsing ST; If false => parsing IL). */
  1196 	/* check if ';' occurs before an END_FUNCTION, END_FUNCTION_BLOCK, END_PROGRAM, END_ACTION or END_TRANSITION. (If true => we are parsing ST; If false => parsing IL). */
  1197 END_ACTION			| /* execute the next rule's action, i.e. fall-through! */
  1197 END_ACTION			| /* execute the next rule's action, i.e. fall-through! */
  1198 END_FUNCTION			|
  1198 END_FUNCTION			|
  1199 END_FUNCTION_BLOCK		|
  1199 END_FUNCTION_BLOCK		|
       
  1200 END_TRANSITION   		|
  1200 END_PROGRAM			{ append_bodystate_buffer(yytext); unput_bodystate_buffer(); BEGIN(il_state); /*printf("returning start_IL_body_token\n");*/ return start_IL_body_token;}
  1201 END_PROGRAM			{ append_bodystate_buffer(yytext); unput_bodystate_buffer(); BEGIN(il_state); /*printf("returning start_IL_body_token\n");*/ return start_IL_body_token;}
  1201 .|\n				{ append_bodystate_buffer(yytext);
  1202 .|\n				{ append_bodystate_buffer(yytext);
  1202 				  if (strcmp(yytext, ";") == 0)
  1203 				  if (strcmp(yytext, ";") == 0)
  1203 				    {unput_bodystate_buffer(); BEGIN(st_state); /*printf("returning start_ST_body_token\n");*/ return start_ST_body_token;}
  1204 				    {unput_bodystate_buffer(); BEGIN(st_state); /*printf("returning start_ST_body_token\n");*/ return start_ST_body_token;}
  1204 				}
  1205 				}