1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-10-18 07:24:16 +00:00

Clean up 'when/of/otherwise' code constructs

This commit is contained in:
David Schmenk 2014-07-05 12:37:31 -07:00
parent 771a1bdb9e
commit 33c5c780c1

View File

@ -639,11 +639,10 @@ int parse_stmnt(void)
char *idptr;
/*
* Optimization for last function LEAVE
* Optimization for last function LEAVE and OF clause.
*/
if (scantoken != END_TOKEN && scantoken != DONE_TOKEN)
if (scantoken != END_TOKEN && scantoken != DONE_TOKEN && scantoken != OF_TOKEN && scantoken != DEFAULT_TOKEN)
prevstmnt = scantoken;
switch (scantoken)
{
case IF_TOKEN:
@ -822,17 +821,17 @@ int parse_stmnt(void)
emit_brne(tag_choice);
emit_codetag(tag_of);
while (parse_stmnt()) next_line();
//emit_brnch(break_tag);
tag_of = tag_new(BRANCH_TYPE);
if (prevstmnt != BREAK_TOKEN) // Fall through to next OF if no break
emit_brnch(tag_of);
emit_codetag(tag_choice);
tag_choice = tag_new(BRANCH_TYPE);
}
else if (scantoken == DEFAULT_TOKEN)
{
scan();
emit_codetag(tag_of);
tag_of = 0;
scan();
while (parse_stmnt()) next_line();
if (scantoken != ENDCASE_TOKEN)
{