Revision | 331 (tree) |
---|---|
Time | 2018-11-15 06:25:55 |
Author | jakobthomsen |
cleanup
@@ -15702,7 +15702,6 @@ | ||
15702 | 15702 | case 18446744073709550569LLU: /* skip to here */ |
15703 | 15703 | |
15704 | 15704 | case 18446744073709550575LLU: /* skip to here */ |
15705 | -/* predicate */ | |
15706 | 15705 | /* parse data */ |
15707 | 15706 | |
15708 | 15707 | {/* PUSH */stack[stackbase + 41LLU] = stack[stackbase + 33LLU]; }/* SP + 1LLU = 42LLU */ |
@@ -15709,35 +15708,27 @@ | ||
15709 | 15708 | {/* PUSH */stack[stackbase + 42LLU] = stack[stackbase + 34LLU]; }/* SP + 1LLU = 43LLU *//* match-predicate */ |
15710 | 15709 | |
15711 | 15710 | if(/*none_u64__*/0xA6AA60030F3A0000LLU != stack[stackbase + 41LLU]) |
15712 | -{ /* JUMP */ fnaddr = 18446744073709550559LLU; break; } /* skip match */ | |
15713 | -/* match */ | |
15714 | -{/* PUSH */stack[stackbase + 43LLU] = 1LLU; }/* SP + 1LLU = 44LLU *//* SP - 1LLU = 43LLU */ /* MATCH-RESULT */ | |
15715 | -{ /* RESULT */stack[stackbase + 41LLU] = stack[stackbase + 43LLU]; }/* SP = 42LLU */ | |
15716 | -{ /* JUMP */ fnaddr = 18446744073709550558LLU; break; } /* skip other */ | |
15717 | -case 18446744073709550559LLU: /* other *//* SP = 41LLU */ | |
15718 | -{/* PUSH */stack[stackbase + 41LLU] = 0LLU; }/* SP + 1LLU = 42LLU */ | |
15719 | -case 18446744073709550558LLU: /* skip to here */ | |
15711 | +{ /* JUMP */ fnaddr = 18446744073709550560LLU; break; } /* skip match */ | |
15712 | +/* match *//* predicate */ | |
15720 | 15713 | |
15721 | -{/* PUSH */stack[stackbase + 42LLU] = stack[stackbase + 20LLU]; }/* SP + 1LLU = 43LLU */ | |
15722 | -{/* PUSH */stack[stackbase + 43LLU] = stack[stackbase + 3LLU]; }/* SP + 1LLU = 44LLU *//* SP = 42LLU */ | |
15714 | +{/* PUSH */stack[stackbase + 43LLU] = stack[stackbase + 20LLU]; }/* SP + 1LLU = 44LLU */ | |
15715 | +{/* PUSH */stack[stackbase + 44LLU] = stack[stackbase + 3LLU]; }/* SP + 1LLU = 45LLU *//* SP = 43LLU */ | |
15723 | 15716 | { |
15724 | -{/* PUSH */stack[stackbase + 42LLU] = stack[stackbase + 42LLU] == stack[stackbase + 43LLU]; }/* SP + 1LLU = 43LLU */ }/* SP = 41LLU */ | |
15725 | -{ | |
15726 | -{/* PUSH */stack[stackbase + 41LLU] = stack[stackbase + 41LLU] && stack[stackbase + 42LLU]; }/* SP + 1LLU = 42LLU */ } | |
15727 | -if(!/* SP - 1LLU = 41LLU *//* POP */stack[stackbase + 41LLU]) | |
15728 | -{ /* JUMP */ fnaddr = 18446744073709550560LLU; break; } /* skip consequent */ | |
15717 | +{/* PUSH */stack[stackbase + 43LLU] = stack[stackbase + 43LLU] == stack[stackbase + 44LLU]; }/* SP + 1LLU = 44LLU */ } | |
15718 | +if(!/* SP - 1LLU = 43LLU *//* POP */stack[stackbase + 43LLU]) | |
15719 | +{ /* JUMP */ fnaddr = 18446744073709550558LLU; break; } /* skip consequent */ | |
15729 | 15720 | /* consequent */ |
15730 | 15721 | fprintf(stderr, "[line %llu]", (long long unsigned int)stack[4]);fputs("recursive function ", stderr); |
15731 | 15722 | { |
15732 | 15723 | /* CALLBEGIN */ |
15733 | - /* reserve space for 0LLU returned values *//* SP + 0LLU = 41LLU */ | |
15734 | -{/* PUSH */stack[stackbase + 41LLU] = stackbase; }/* SP + 1LLU = 42LLU */ | |
15735 | - /* leave place for return addr *//* SP + 1LLU = 43LLU */ | |
15724 | + /* reserve space for 0LLU returned values *//* SP + 0LLU = 43LLU */ | |
15725 | +{/* PUSH */stack[stackbase + 43LLU] = stackbase; }/* SP + 1LLU = 44LLU */ | |
15726 | + /* leave place for return addr *//* SP + 1LLU = 45LLU */ | |
15736 | 15727 | } |
15737 | -{/* PUSH */stack[stackbase + 43LLU] = stack[stackbase + 20LLU]; }/* SP + 1LLU = 44LLU */ | |
15728 | +{/* PUSH */stack[stackbase + 45LLU] = stack[stackbase + 20LLU]; }/* SP + 1LLU = 46LLU */ | |
15738 | 15729 | { |
15739 | 15730 | /*CALLEND*/ |
15740 | - stackbase += 43LLU; | |
15731 | + stackbase += 45LLU; | |
15741 | 15732 | stack[stackbase - 1] = 0xFFFFFFFFFFFFFBDDLLU; |
15742 | 15733 | fnaddr = /*reportid__*/0xB60AEAB6F91F0000LLU;/* SP = 0LLU */ |
15743 | 15734 | { if(stackbase + 7LLU >= 0x0000000000100000LLU) { fprintf(stderr, "STACKOVERFLOW calling /*reportid__*/\n"); exit(-1); } } |
@@ -15744,10 +15735,14 @@ | ||
15744 | 15735 | break; |
15745 | 15736 | } |
15746 | 15737 | case 0xFFFFFFFFFFFFFBDDLLU: |
15747 | -/* SP = 41LLU */fputs("\n", stderr); fputs("requires size-specification\n", stderr); | |
15738 | +/* SP = 43LLU */fputs("\n", stderr); fputs("requires size-specification\n", stderr); | |
15748 | 15739 | {/* set exit-value */stack[16LLU] = 255LLU; } |
15749 | -{ /* JUMP */ fnaddr = 0LLU; break; }/* SP = 41LLU */ | |
15750 | -case 18446744073709550560LLU: /* alternative *//* predicate */ | |
15740 | +{ /* JUMP */ fnaddr = 0LLU; break; }/* SP = 43LLU */ | |
15741 | +case 18446744073709550558LLU: /* alternative *//* SP = 43LLU *//* SP - 0LLU = 43LLU */ /* MATCH-RESULT *//* SP = 41LLU */ | |
15742 | +{ /* JUMP */ fnaddr = 18446744073709550559LLU; break; } /* skip other */ | |
15743 | +case 18446744073709550560LLU: /* other *//* SP = 41LLU *//* SP = 41LLU */ | |
15744 | +case 18446744073709550559LLU: /* skip to here */ | |
15745 | +/* predicate */ | |
15751 | 15746 | |
15752 | 15747 | {/* PUSH */stack[stackbase + 41LLU] = 13784076749618806784LLU; }/* SP + 1LLU = 42LLU */ |
15753 | 15748 | {/* PUSH */stack[stackbase + 42LLU] = stack[stackbase + 35LLU]; }/* SP + 1LLU = 43LLU */ |
@@ -2307,15 +2307,21 @@ | ||
2307 | 2307 | } |
2308 | 2308 | |
2309 | 2309 | // NOTE: to keep things simple there are no function-declarations and mutual recursion is not supported |
2310 | - when and(match none_u64 def.essential.storedsize: 1 other 0, equ(tok.id, self.id)) | |
2310 | + match none_u64 def.essential.storedsize: | |
2311 | 2311 | { |
2312 | - DEBUGLINE() | |
2313 | - report "recursive function " | |
2314 | - reportid(tok.id) | |
2315 | - report "\n" | |
2316 | - report "requires size-specification\n" | |
2317 | - exit(255) | |
2312 | + when equ(tok.id, self.id) | |
2313 | + { | |
2314 | + DEBUGLINE() | |
2315 | + report "recursive function " | |
2316 | + reportid(tok.id) | |
2317 | + report "\n" | |
2318 | + report "requires size-specification\n" | |
2319 | + exit(255) | |
2320 | + } | |
2318 | 2321 | } |
2322 | + other | |
2323 | + { | |
2324 | + } | |
2319 | 2325 | |
2320 | 2326 | when not(equ<type>(typeval(def.essential.resub), retype)) |
2321 | 2327 | { |