mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-12-25 13:29:59 +00:00
Clean up 'when/is/otherwise' code contructs.
This commit is contained in:
parent
3b0e951e34
commit
8a909055dd
@ -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);
|
||||
emit_brnch(tag_of);
|
||||
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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user