修訂 | 414 (tree) |
---|---|
時間 | 2019-01-21 08:43:51 |
作者 | jakobthomsen |
use non-empty strings
@@ -1024,6 +1024,46 @@ | ||
1024 | 1024 | return; |
1025 | 1025 | } |
1026 | 1026 | |
1027 | +void to_nonempty_string(struct stack/*nonempty_string*/ *const _0, const struct string *const s) | |
1028 | +{ | |
1029 | + { | |
1030 | + { | |
1031 | + struct string _1; memset(&_1, 0, sizeof(struct string)); | |
1032 | + string$copy(&_1, &(*s)); | |
1033 | + struct string *s = &_1; | |
1034 | + struct stack/*u8*/ _t; memset(&_t, 0, sizeof(struct stack/*u8*/)); | |
1035 | + { | |
1036 | + struct stack/*u8*/ *_2 = &(*s).data; | |
1037 | + pop_opt(&_t, &*_2, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 64); | |
1038 | + } | |
1039 | + struct stack/*nonempty_string*/ _2; memset(&_2, 0, sizeof(struct stack/*nonempty_string*/)); | |
1040 | + const struct stack/*u8*/ *_3 = &(_t); | |
1041 | + if(!(*_3).size) | |
1042 | + { | |
1043 | + { | |
1044 | + empty(&_2, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 67); | |
1045 | + } | |
1046 | + } | |
1047 | + else | |
1048 | + { | |
1049 | + const uint8_t *t = (*_3).data; | |
1050 | + { | |
1051 | + struct nonempty_string _4; memset(&_4, 0, sizeof(struct nonempty_string)); | |
1052 | + { | |
1053 | + nonempty_string(&_4, &*t, &*s); | |
1054 | + } | |
1055 | + solid(&_2, &_4, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 68); | |
1056 | + nonempty_string$dest(&_4); | |
1057 | + } | |
1058 | + } | |
1059 | + clone$(&*_0, &_2, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy); | |
1060 | + free$(&_2, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
1061 | + free$(&_t, sizeof(uint8_t), 0/*DEST*/); | |
1062 | + string$dest(&_1); | |
1063 | + } | |
1064 | + } | |
1065 | +} | |
1066 | + | |
1027 | 1067 | void nonempty_to_string(struct string *const _0, const struct nonempty_string *const name) |
1028 | 1068 | { |
1029 | 1069 | { |
@@ -1032,7 +1072,7 @@ | ||
1032 | 1072 | { |
1033 | 1073 | struct stack/*u8*/ *_2 = &(_tmp).data; |
1034 | 1074 | const uint8_t *_3 = &(*name).top; |
1035 | - push(0 /* _1 */, &*_2, &*_3, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 64); | |
1075 | + push(0 /* _1 */, &*_2, &*_3, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 74); | |
1036 | 1076 | } |
1037 | 1077 | string$copy(&*_0, &_tmp); |
1038 | 1078 | string$dest(&_tmp); |
@@ -1986,7 +2026,7 @@ | ||
1986 | 2026 | { |
1987 | 2027 | { |
1988 | 2028 | const struct stack/*u8*/ *_2 = &(*s).data; |
1989 | - top_get$(&*_0, &*_2, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 317); | |
2029 | + top_get$(&*_0, &*_2, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 327); | |
1990 | 2030 | } |
1991 | 2031 | } |
1992 | 2032 | else |
@@ -1995,22 +2035,6 @@ | ||
1995 | 2035 | } |
1996 | 2036 | } |
1997 | 2037 | |
1998 | -void predel$(struct string *const _0, const struct string *const s) | |
1999 | -{ | |
2000 | - { | |
2001 | - struct string _t; memset(&_t, 0, sizeof(struct string)); | |
2002 | - string$copy(&_t, &(*s)); | |
2003 | - { | |
2004 | - uint8_t _1; memset(&_1, 0, sizeof(uint8_t)); | |
2005 | - struct stack/*u8*/ *_2 = &(_t).data; | |
2006 | - pop$(&_1, &*_2, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 323); | |
2007 | - _IGNORE_(_1); | |
2008 | - } | |
2009 | - string$copy(&*_0, &_t); | |
2010 | - string$dest(&_t); | |
2011 | - } | |
2012 | -} | |
2013 | - | |
2014 | 2038 | void idpartinternal(bool *const _0, const struct stack/*u8*/ *const id, const bool *const previous) |
2015 | 2039 | { |
2016 | 2040 | if(id->fill > 0) |
@@ -2038,10 +2062,10 @@ | ||
2038 | 2062 | } |
2039 | 2063 | } |
2040 | 2064 | |
2041 | -void idpart(bool *const _0, const struct string *const id) | |
2065 | +void idpart(bool *const _0, const struct nonempty_string *const id) | |
2042 | 2066 | { |
2043 | 2067 | { |
2044 | - const struct stack/*u8*/ *_1 = &(*id).data; | |
2068 | + const struct stack/*u8*/ *_1 = &(*id).rest.data; | |
2045 | 2069 | bool _2; memset(&_2, 0, sizeof(bool)); |
2046 | 2070 | _2 = 0; |
2047 | 2071 | idpartinternal(&*_0, &*_1, &_2); |
@@ -2447,20 +2471,6 @@ | ||
2447 | 2471 | } |
2448 | 2472 | } |
2449 | 2473 | |
2450 | -void preapp(struct string *const _0, const uint8_t *const top, const struct string *const id) | |
2451 | -{ | |
2452 | - { | |
2453 | - struct string _new; memset(&_new, 0, sizeof(struct string)); | |
2454 | - string$copy(&_new, &(*id)); | |
2455 | - { | |
2456 | - struct stack/*u8*/ *_2 = &(_new).data; | |
2457 | - push(0 /* _1 */, &*_2, &*top, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 378); | |
2458 | - } | |
2459 | - string$copy(&*_0, &_new); | |
2460 | - string$dest(&_new); | |
2461 | - } | |
2462 | -} | |
2463 | - | |
2464 | 2474 | void ParseIE$(struct string *const _0, const struct StreamIn *const in, struct linecol *const txtpos) |
2465 | 2475 | { |
2466 | 2476 | bool _1; |
@@ -2518,7 +2528,7 @@ | ||
2518 | 2528 | } |
2519 | 2529 | { |
2520 | 2530 | struct stack/*u8*/ *_3 = &(_id).data; |
2521 | - push(0 /* _2 */, &*_3, &_ch, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 393); | |
2531 | + push(0 /* _2 */, &*_3, &_ch, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 403); | |
2522 | 2532 | } |
2523 | 2533 | string$copy(&*_0, &_id); |
2524 | 2534 | string$dest(&_id); |
@@ -2648,7 +2658,7 @@ | ||
2648 | 2658 | } |
2649 | 2659 | { |
2650 | 2660 | struct stack/*u8*/ *_3 = &(_id).data; |
2651 | - push(0 /* _2 */, &*_3, &_ch, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 430); | |
2661 | + push(0 /* _2 */, &*_3, &_ch, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 440); | |
2652 | 2662 | } |
2653 | 2663 | string$copy(&*_0, &_id); |
2654 | 2664 | string$dest(&_id); |
@@ -2734,7 +2744,7 @@ | ||
2734 | 2744 | if(_1) |
2735 | 2745 | { |
2736 | 2746 | { |
2737 | - empty(&*_0, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 456); | |
2747 | + empty(&*_0, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 466); | |
2738 | 2748 | } |
2739 | 2749 | } |
2740 | 2750 | else |
@@ -2744,7 +2754,7 @@ | ||
2744 | 2754 | { |
2745 | 2755 | ParseIdNonEmpty$(&_2, &*streams, &*txtpos, &*level); |
2746 | 2756 | } |
2747 | - solid(&*_0, &_2, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 458); | |
2757 | + solid(&*_0, &_2, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 468); | |
2748 | 2758 | nonempty_string$dest(&_2); |
2749 | 2759 | } |
2750 | 2760 | } |
@@ -2794,7 +2804,7 @@ | ||
2794 | 2804 | } |
2795 | 2805 | { |
2796 | 2806 | struct stack/*u8*/ *_4 = &(_new).data; |
2797 | - push(0 /* _3 */, &*_4, &_digit, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 472); | |
2807 | + push(0 /* _3 */, &*_4, &_digit, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 482); | |
2798 | 2808 | } |
2799 | 2809 | { |
2800 | 2810 | GenId$(&_new, &_nr, &_new); |
@@ -6438,7 +6448,7 @@ | ||
6438 | 6448 | { |
6439 | 6449 | size(&_2, &_rest); |
6440 | 6450 | } |
6441 | - solid(&*_0, &_2, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 988); | |
6451 | + solid(&*_0, &_2, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 998); | |
6442 | 6452 | _IGNORE_(_2); |
6443 | 6453 | } |
6444 | 6454 | } |
@@ -6452,7 +6462,7 @@ | ||
6452 | 6462 | else |
6453 | 6463 | { |
6454 | 6464 | { |
6455 | - empty(&*_0, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 993); | |
6465 | + empty(&*_0, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1003); | |
6456 | 6466 | } |
6457 | 6467 | } |
6458 | 6468 | } |
@@ -6532,7 +6542,7 @@ | ||
6532 | 6542 | const struct nonempty_string *_6 = &(*dc).id; |
6533 | 6543 | typepureid(&_4, &*_5, &*_6); |
6534 | 6544 | } |
6535 | - push(0 /* _3 */, &*tis, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1008); | |
6545 | + push(0 /* _3 */, &*tis, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1018); | |
6536 | 6546 | typepureid$dest(&_4); |
6537 | 6547 | } |
6538 | 6548 | } |
@@ -6550,7 +6560,7 @@ | ||
6550 | 6560 | { |
6551 | 6561 | struct stack/*typepureid*/ _tis; memset(&_tis, 0, sizeof(struct stack/*typepureid*/)); |
6552 | 6562 | { |
6553 | - stack(&_tis, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1017); | |
6563 | + stack(&_tis, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1027); | |
6554 | 6564 | } |
6555 | 6565 | { |
6556 | 6566 | constrToTIsInternal(0 /* _1 */, &*dcs, &_tis); |
@@ -6827,186 +6837,6 @@ | ||
6827 | 6837 | free$(&_0->elems, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
6828 | 6838 | } |
6829 | 6839 | |
6830 | -void getDataConstrIdx(struct stack/*u64*/ *const _0, const struct stack/*constr*/ *const constrs, const struct string *const id) | |
6831 | -{ | |
6832 | - if(constrs->fill > 0) | |
6833 | - { | |
6834 | - struct stack/*constr*/ _rest; memset(&_rest, 0, sizeof(struct stack/*constr*/)); | |
6835 | - _rest.fill = constrs->fill - 1; | |
6836 | - _rest.data = constrs->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6837 | - _rest.size = (4 * (constrs->fill + 1) > constrs->size + 1) ? constrs->size : (constrs->size + 1) / 2 - 1; | |
6838 | - const struct constr *constr = ((const struct constr *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6839 | - bool _1; | |
6840 | - { | |
6841 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
6842 | - { | |
6843 | - const struct nonempty_string *_3 = &(*constr).id; | |
6844 | - nonempty_to_string(&_2, &*_3); | |
6845 | - } | |
6846 | - strequ(&_1, &_2, &*id); | |
6847 | - string$dest(&_2); | |
6848 | - } | |
6849 | - if(_1) | |
6850 | - { | |
6851 | - { | |
6852 | - uint64_t _2; memset(&_2, 0, sizeof(uint64_t)); | |
6853 | - { | |
6854 | - size(&_2, &_rest); | |
6855 | - } | |
6856 | - solid(&*_0, &_2, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1033); | |
6857 | - _IGNORE_(_2); | |
6858 | - } | |
6859 | - } | |
6860 | - else | |
6861 | - { | |
6862 | - { | |
6863 | - getDataConstrIdx(&*_0, &_rest, &*id); | |
6864 | - } | |
6865 | - } | |
6866 | - } | |
6867 | - else | |
6868 | - { | |
6869 | - { | |
6870 | - empty(&*_0, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1037); | |
6871 | - } | |
6872 | - } | |
6873 | -} | |
6874 | - | |
6875 | -void getDataConstr(struct stack/*constr*/ *const _0, const struct stack/*constr*/ *const constrs, const struct string *const id) | |
6876 | -{ | |
6877 | - if(constrs->fill > 0) | |
6878 | - { | |
6879 | - struct stack/*constr*/ _rest; memset(&_rest, 0, sizeof(struct stack/*constr*/)); | |
6880 | - _rest.fill = constrs->fill - 1; | |
6881 | - _rest.data = constrs->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6882 | - _rest.size = (4 * (constrs->fill + 1) > constrs->size + 1) ? constrs->size : (constrs->size + 1) / 2 - 1; | |
6883 | - const struct constr *constr = ((const struct constr *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6884 | - bool _1; | |
6885 | - { | |
6886 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
6887 | - { | |
6888 | - const struct nonempty_string *_3 = &(*constr).id; | |
6889 | - nonempty_to_string(&_2, &*_3); | |
6890 | - } | |
6891 | - strequ(&_1, &_2, &*id); | |
6892 | - string$dest(&_2); | |
6893 | - } | |
6894 | - if(_1) | |
6895 | - { | |
6896 | - { | |
6897 | - solid(&*_0, &*constr, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 1043); | |
6898 | - } | |
6899 | - } | |
6900 | - else | |
6901 | - { | |
6902 | - { | |
6903 | - getDataConstr(&*_0, &_rest, &*id); | |
6904 | - } | |
6905 | - } | |
6906 | - } | |
6907 | - else | |
6908 | - { | |
6909 | - { | |
6910 | - empty(&*_0, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 1047); | |
6911 | - } | |
6912 | - } | |
6913 | -} | |
6914 | - | |
6915 | -struct constrwithidx | |
6916 | -{ | |
6917 | - struct constr constr; | |
6918 | - uint64_t idx; | |
6919 | -}; | |
6920 | - | |
6921 | -void constrwithidx$copy(struct constrwithidx *copy, struct constrwithidx const *orig); | |
6922 | -void constrwithidx$dest(struct constrwithidx *_0); | |
6923 | -void constrwithidx$copy(struct constrwithidx *copy, struct constrwithidx const *orig) | |
6924 | -{ | |
6925 | - copy->idx = orig->idx; | |
6926 | - constr$copy(©->constr, &orig->constr); | |
6927 | -} | |
6928 | - | |
6929 | -void constrwithidx$dest(struct constrwithidx *_0) | |
6930 | -{ | |
6931 | - _IGNORE_(_0->idx); | |
6932 | - constr$dest(&_0->constr); | |
6933 | -} | |
6934 | - | |
6935 | -void constrwithidx(struct constrwithidx *_0, const struct constr *constr, const uint64_t *idx) | |
6936 | -{ | |
6937 | - _0->idx = *idx; | |
6938 | - constr$copy(&_0->constr, &*constr); | |
6939 | -} | |
6940 | - | |
6941 | -void Print$constrwithidx(void *_0, const struct StreamOut *out, const struct constrwithidx *s) | |
6942 | -{ | |
6943 | - fprintf(out->f, "constrwithidx("); | |
6944 | - Print$constr(0, out, &s->constr); | |
6945 | - fprintf(out->f, ", "); | |
6946 | - Print$u64(0, out, &s->idx); | |
6947 | - fprintf(out->f, ")"); | |
6948 | -} | |
6949 | - | |
6950 | -void cmp$constrwithidx(struct cmp *res, const struct constrwithidx *x, const struct constrwithidx *y) | |
6951 | -{ | |
6952 | - cmp$constr(res, &x->constr, &y->constr); | |
6953 | - if(res->type != 1) | |
6954 | - return; | |
6955 | - cmp$u64(res, &x->idx, &y->idx); | |
6956 | - if(res->type != 1) | |
6957 | - return; | |
6958 | -} | |
6959 | - | |
6960 | -void getDataConstrWithIdx(struct stack/*constrwithidx*/ *const _0, const struct stack/*constr*/ *const constrs, const struct string *const id) | |
6961 | -{ | |
6962 | - if(constrs->fill > 0) | |
6963 | - { | |
6964 | - struct stack/*constr*/ _rest; memset(&_rest, 0, sizeof(struct stack/*constr*/)); | |
6965 | - _rest.fill = constrs->fill - 1; | |
6966 | - _rest.data = constrs->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6967 | - _rest.size = (4 * (constrs->fill + 1) > constrs->size + 1) ? constrs->size : (constrs->size + 1) / 2 - 1; | |
6968 | - const struct constr *constr = ((const struct constr *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
6969 | - bool _1; | |
6970 | - { | |
6971 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
6972 | - { | |
6973 | - const struct nonempty_string *_3 = &(*constr).id; | |
6974 | - nonempty_to_string(&_2, &*_3); | |
6975 | - } | |
6976 | - strequ(&_1, &_2, &*id); | |
6977 | - string$dest(&_2); | |
6978 | - } | |
6979 | - if(_1) | |
6980 | - { | |
6981 | - { | |
6982 | - struct constrwithidx _2; memset(&_2, 0, sizeof(struct constrwithidx)); | |
6983 | - { | |
6984 | - uint64_t _3; memset(&_3, 0, sizeof(uint64_t)); | |
6985 | - { | |
6986 | - size(&_3, &_rest); | |
6987 | - } | |
6988 | - constrwithidx(&_2, &*constr, &_3); | |
6989 | - _IGNORE_(_3); | |
6990 | - } | |
6991 | - solid(&*_0, &_2, sizeof(struct constrwithidx), (void (*)(void *))constrwithidx$dest, (void (*)(void *, const void *))constrwithidx$copy, 1059); | |
6992 | - constrwithidx$dest(&_2); | |
6993 | - } | |
6994 | - } | |
6995 | - else | |
6996 | - { | |
6997 | - { | |
6998 | - getDataConstrWithIdx(&*_0, &_rest, &*id); | |
6999 | - } | |
7000 | - } | |
7001 | - } | |
7002 | - else | |
7003 | - { | |
7004 | - { | |
7005 | - empty(&*_0, sizeof(struct constrwithidx), (void (*)(void *))constrwithidx$dest, (void (*)(void *, const void *))constrwithidx$copy, 1063); | |
7006 | - } | |
7007 | - } | |
7008 | -} | |
7009 | - | |
7010 | 6840 | struct structdef |
7011 | 6841 | { |
7012 | 6842 | struct stack/*flavour*/ type; |
@@ -7119,7 +6949,7 @@ | ||
7119 | 6949 | if(_2) |
7120 | 6950 | { |
7121 | 6951 | { |
7122 | - push(0 /* _3 */, &*structs, &*new, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1093); | |
6952 | + push(0 /* _3 */, &*structs, &*new, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1103); | |
7123 | 6953 | } |
7124 | 6954 | } |
7125 | 6955 | } |
@@ -7184,7 +7014,7 @@ | ||
7184 | 7014 | *_2 = 1; |
7185 | 7015 | struct stack/*structdef*/ _3; memset(&_3, 0, sizeof(struct stack/*structdef*/)); |
7186 | 7016 | { |
7187 | - solid(&_3, &*cur, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1107); | |
7017 | + solid(&_3, &*cur, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1117); | |
7188 | 7018 | } |
7189 | 7019 | clone$(&*_0, &_3, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy); |
7190 | 7020 | free$(&_3, sizeof(struct structdef), (void (*)(void *))structdef$dest); |
@@ -7200,7 +7030,7 @@ | ||
7200 | 7030 | else |
7201 | 7031 | { |
7202 | 7032 | { |
7203 | - empty(&*_0, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1113); | |
7033 | + empty(&*_0, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1123); | |
7204 | 7034 | } |
7205 | 7035 | } |
7206 | 7036 | } |
@@ -7272,7 +7102,7 @@ | ||
7272 | 7102 | if(_1) |
7273 | 7103 | { |
7274 | 7104 | { |
7275 | - solid(&*_0, &*cur, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1136); | |
7105 | + solid(&*_0, &*cur, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1146); | |
7276 | 7106 | } |
7277 | 7107 | } |
7278 | 7108 | else |
@@ -7285,7 +7115,7 @@ | ||
7285 | 7115 | else |
7286 | 7116 | { |
7287 | 7117 | { |
7288 | - empty(&*_0, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1140); | |
7118 | + empty(&*_0, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 1150); | |
7289 | 7119 | } |
7290 | 7120 | } |
7291 | 7121 | } |
@@ -7316,7 +7146,7 @@ | ||
7316 | 7146 | { |
7317 | 7147 | size(&_2, &_rest); |
7318 | 7148 | } |
7319 | - solid(&*_0, &_2, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1146); | |
7149 | + solid(&*_0, &_2, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1156); | |
7320 | 7150 | _IGNORE_(_2); |
7321 | 7151 | } |
7322 | 7152 | } |
@@ -7330,7 +7160,7 @@ | ||
7330 | 7160 | else |
7331 | 7161 | { |
7332 | 7162 | { |
7333 | - empty(&*_0, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1150); | |
7163 | + empty(&*_0, sizeof(uint64_t), 0/*DEST*/, 0/*COPY*/, 1160); | |
7334 | 7164 | } |
7335 | 7165 | } |
7336 | 7166 | } |
@@ -7357,7 +7187,7 @@ | ||
7357 | 7187 | if(_1) |
7358 | 7188 | { |
7359 | 7189 | { |
7360 | - solid(&*_0, &*cur, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1156); | |
7190 | + solid(&*_0, &*cur, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1166); | |
7361 | 7191 | } |
7362 | 7192 | } |
7363 | 7193 | else |
@@ -7370,7 +7200,7 @@ | ||
7370 | 7200 | else |
7371 | 7201 | { |
7372 | 7202 | { |
7373 | - empty(&*_0, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1160); | |
7203 | + empty(&*_0, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 1170); | |
7374 | 7204 | } |
7375 | 7205 | } |
7376 | 7206 | } |
@@ -9980,7 +9810,7 @@ | ||
9980 | 9810 | { |
9981 | 9811 | ParseArgTypePure$(&_3, &*streams, &*txtpos, &*level, &*structs); |
9982 | 9812 | } |
9983 | - solid(&_1, &_3, sizeof(struct type_pure), (void (*)(void *))type_pure$dest, (void (*)(void *, const void *))type_pure$copy, 1723); | |
9813 | + solid(&_1, &_3, sizeof(struct type_pure), (void (*)(void *))type_pure$dest, (void (*)(void *, const void *))type_pure$copy, 1733); | |
9984 | 9814 | type_pure$dest(&_3); |
9985 | 9815 | } |
9986 | 9816 | } |
@@ -9987,7 +9817,7 @@ | ||
9987 | 9817 | else |
9988 | 9818 | { |
9989 | 9819 | { |
9990 | - empty(&_1, sizeof(struct type_pure), (void (*)(void *))type_pure$dest, (void (*)(void *, const void *))type_pure$copy, 1725); | |
9820 | + empty(&_1, sizeof(struct type_pure), (void (*)(void *))type_pure$dest, (void (*)(void *, const void *))type_pure$copy, 1735); | |
9991 | 9821 | } |
9992 | 9822 | } |
9993 | 9823 | clone$(&*_0, &_1, sizeof(struct type_pure), (void (*)(void *))type_pure$dest, (void (*)(void *, const void *))type_pure$copy); |
@@ -11113,7 +10943,7 @@ | ||
11113 | 10943 | } |
11114 | 10944 | } |
11115 | 10945 | |
11116 | -void istmp$(bool *const _0, const struct string *const id) | |
10946 | +void istmp$(bool *const _0, const struct nonempty_string *const id) | |
11117 | 10947 | { |
11118 | 10948 | { |
11119 | 10949 | bool _1; memset(&_1, 0, sizeof(bool)); |
@@ -11120,12 +10950,8 @@ | ||
11120 | 10950 | { |
11121 | 10951 | uint8_t _2; memset(&_2, 0, sizeof(uint8_t)); |
11122 | 10952 | _2 = 95; |
11123 | - uint8_t _3; memset(&_3, 0, sizeof(uint8_t)); | |
11124 | - { | |
11125 | - strtop$(&_3, &*id); | |
11126 | - } | |
11127 | - _1 = _2 == _3; | |
11128 | - _IGNORE_(_3); | |
10953 | + const uint8_t *_3 = &(*id).top; | |
10954 | + _1 = _2 == *_3; | |
11129 | 10955 | _IGNORE_(_2); |
11130 | 10956 | } |
11131 | 10957 | bool _2; memset(&_2, 0, sizeof(bool)); |
@@ -11132,12 +10958,8 @@ | ||
11132 | 10958 | { |
11133 | 10959 | uint8_t _3; memset(&_3, 0, sizeof(uint8_t)); |
11134 | 10960 | { |
11135 | - struct string _4; memset(&_4, 0, sizeof(struct string)); | |
11136 | - { | |
11137 | - predel$(&_4, &*id); | |
11138 | - } | |
11139 | - strtop$(&_3, &_4); | |
11140 | - string$dest(&_4); | |
10961 | + const struct string *_4 = &(*id).rest; | |
10962 | + strtop$(&_3, &*_4); | |
11141 | 10963 | } |
11142 | 10964 | isdigi(&_2, &_3); |
11143 | 10965 | _IGNORE_(_3); |
@@ -11148,7 +10970,7 @@ | ||
11148 | 10970 | } |
11149 | 10971 | } |
11150 | 10972 | |
11151 | -void ChkPar$(void *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct qtypepure *const par, const struct nonempty_string *const id, const struct qtypepureid *const arg) | |
10973 | +void ChkPar$(void *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct qtypepure *const par, const struct nonempty_string *const ID, const struct qtypepureid *const arg) | |
11152 | 10974 | { |
11153 | 10975 | { |
11154 | 10976 | bool _2; |
@@ -11158,35 +10980,35 @@ | ||
11158 | 10980 | { |
11159 | 10981 | bool _5; memset(&_5, 0, sizeof(bool)); |
11160 | 10982 | { |
11161 | - struct string _6; memset(&_6, 0, sizeof(struct string)); | |
11162 | - { | |
11163 | - nonempty_to_string(&_6, &*id); | |
11164 | - } | |
11165 | - istmp$(&_5, &_6); | |
11166 | - string$dest(&_6); | |
10983 | + istmp$(&_5, &*ID); | |
11167 | 10984 | } |
11168 | 10985 | bool _6; memset(&_6, 0, sizeof(bool)); |
11169 | 10986 | { |
11170 | 10987 | struct string _7; memset(&_7, 0, sizeof(struct string)); |
11171 | 10988 | { |
11172 | - uint8_t _8; memset(&_8, 0, sizeof(uint8_t)); | |
11173 | - _8 = 42; | |
11174 | - struct string _9; memset(&_9, 0, sizeof(struct string)); | |
10989 | + struct nonempty_string _8; memset(&_8, 0, sizeof(struct nonempty_string)); | |
11175 | 10990 | { |
11176 | - struct nonempty_string _10; memset(&_10, 0, sizeof(struct nonempty_string)); | |
10991 | + uint8_t _9; memset(&_9, 0, sizeof(uint8_t)); | |
10992 | + _9 = 42; | |
10993 | + struct string _10; memset(&_10, 0, sizeof(struct string)); | |
11177 | 10994 | { |
11178 | - resid(&_10); | |
10995 | + struct nonempty_string _11; memset(&_11, 0, sizeof(struct nonempty_string)); | |
10996 | + { | |
10997 | + resid(&_11); | |
10998 | + } | |
10999 | + nonempty_to_string(&_10, &_11); | |
11000 | + nonempty_string$dest(&_11); | |
11179 | 11001 | } |
11180 | - nonempty_to_string(&_9, &_10); | |
11181 | - nonempty_string$dest(&_10); | |
11002 | + nonempty_string(&_8, &_9, &_10); | |
11003 | + string$dest(&_10); | |
11004 | + _IGNORE_(_9); | |
11182 | 11005 | } |
11183 | - preapp(&_7, &_8, &_9); | |
11184 | - string$dest(&_9); | |
11185 | - _IGNORE_(_8); | |
11006 | + nonempty_to_string(&_7, &_8); | |
11007 | + nonempty_string$dest(&_8); | |
11186 | 11008 | } |
11187 | 11009 | struct string _8; memset(&_8, 0, sizeof(struct string)); |
11188 | 11010 | { |
11189 | - nonempty_to_string(&_8, &*id); | |
11011 | + nonempty_to_string(&_8, &*ID); | |
11190 | 11012 | } |
11191 | 11013 | strequ(&_6, &_7, &_8); |
11192 | 11014 | string$dest(&_8); |
@@ -11234,7 +11056,7 @@ | ||
11234 | 11056 | { |
11235 | 11057 | struct string _7; memset(&_7, 0, sizeof(struct string)); |
11236 | 11058 | { |
11237 | - nonempty_to_string(&_7, &*id); | |
11059 | + nonempty_to_string(&_7, &*ID); | |
11238 | 11060 | } |
11239 | 11061 | PutStr(0 /* _6 */, &*err, &_7); |
11240 | 11062 | string$dest(&_7); |
@@ -12035,7 +11857,7 @@ | ||
12035 | 11857 | } |
12036 | 11858 | } |
12037 | 11859 | |
12038 | -void find_var_report_unused_and_mark_used(bool *const _0, const struct stack/*var*/ *const vscope, const struct string *const id) | |
11860 | +void find_var_report_unused_and_mark_used(bool *const _0, const struct stack/*var*/ *const vscope, const struct nonempty_string *const id) | |
12039 | 11861 | { |
12040 | 11862 | if(vscope->fill > 0) |
12041 | 11863 | { |
@@ -12051,7 +11873,12 @@ | ||
12051 | 11873 | struct nonempty_string *_3 = &(*found).id; |
12052 | 11874 | nonempty_to_string(&_2, &*_3); |
12053 | 11875 | } |
12054 | - strequ(&_1, &_2, &*id); | |
11876 | + struct string _3; memset(&_3, 0, sizeof(struct string)); | |
11877 | + { | |
11878 | + nonempty_to_string(&_3, &*id); | |
11879 | + } | |
11880 | + strequ(&_1, &_2, &_3); | |
11881 | + string$dest(&_3); | |
12055 | 11882 | string$dest(&_2); |
12056 | 11883 | } |
12057 | 11884 | if(_1) |
@@ -12122,7 +11949,7 @@ | ||
12122 | 11949 | } |
12123 | 11950 | } |
12124 | 11951 | |
12125 | -void FindParAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*par*/ *const pscope, const struct string *const id) | |
11952 | +void FindParAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*par*/ *const pscope, const struct nonempty_string *const id) | |
12126 | 11953 | { |
12127 | 11954 | if(pscope->fill > 0) |
12128 | 11955 | { |
@@ -12133,21 +11960,26 @@ | ||
12133 | 11960 | struct par *found = ((struct par *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
12134 | 11961 | bool _1; |
12135 | 11962 | { |
12136 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
11963 | + struct cmp _2; memset(&_2, 0, sizeof(struct cmp)); | |
12137 | 11964 | { |
12138 | 11965 | struct nonempty_string *_3 = &(*found).id; |
12139 | - nonempty_to_string(&_2, &*_3); | |
11966 | + struct nonempty_string _4; memset(&_4, 0, sizeof(struct nonempty_string)); | |
11967 | + { | |
11968 | + uint8_t _5; memset(&_5, 0, sizeof(uint8_t)); | |
11969 | + _5 = 42; | |
11970 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
11971 | + { | |
11972 | + nonempty_to_string(&_6, &*id); | |
11973 | + } | |
11974 | + nonempty_string(&_4, &_5, &_6); | |
11975 | + string$dest(&_6); | |
11976 | + _IGNORE_(_5); | |
11977 | + } | |
11978 | + cmp$nonempty_string(&_2, &*_3, &_4); | |
11979 | + nonempty_string$dest(&_4); | |
12140 | 11980 | } |
12141 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
12142 | - { | |
12143 | - uint8_t _4; memset(&_4, 0, sizeof(uint8_t)); | |
12144 | - _4 = 42; | |
12145 | - preapp(&_3, &_4, &*id); | |
12146 | - _IGNORE_(_4); | |
12147 | - } | |
12148 | - strequ(&_1, &_2, &_3); | |
12149 | - string$dest(&_3); | |
12150 | - string$dest(&_2); | |
11981 | + is_equ(&_1, &_2); | |
11982 | + cmp$dest(&_2); | |
12151 | 11983 | } |
12152 | 11984 | if(_1) |
12153 | 11985 | { |
@@ -12169,7 +12001,12 @@ | ||
12169 | 12001 | string$dest(&_5); |
12170 | 12002 | } |
12171 | 12003 | { |
12172 | - PutStr(0 /* _5 */, &*err, &*id); | |
12004 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
12005 | + { | |
12006 | + nonempty_to_string(&_6, &*id); | |
12007 | + } | |
12008 | + PutStr(0 /* _5 */, &*err, &_6); | |
12009 | + string$dest(&_6); | |
12173 | 12010 | } |
12174 | 12011 | { |
12175 | 12012 | struct string _7; memset(&_7, 0, sizeof(struct string)); |
@@ -12192,7 +12029,7 @@ | ||
12192 | 12029 | } |
12193 | 12030 | struct stack/*qtypepureid*/ _10; memset(&_10, 0, sizeof(struct stack/*qtypepureid*/)); |
12194 | 12031 | { |
12195 | - empty(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2335); | |
12032 | + empty(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2345); | |
12196 | 12033 | } |
12197 | 12034 | clone$(&_2, &_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
12198 | 12035 | free$(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -12219,7 +12056,7 @@ | ||
12219 | 12056 | struct nonempty_string *_9 = &(*found).id; |
12220 | 12057 | qtypepureid(&_7, &*_8, &*_9); |
12221 | 12058 | } |
12222 | - solid(&_6, &_7, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2341); | |
12059 | + solid(&_6, &_7, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2351); | |
12223 | 12060 | qtypepureid$dest(&_7); |
12224 | 12061 | } |
12225 | 12062 | clone$(&_2, &_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
@@ -12248,12 +12085,12 @@ | ||
12248 | 12085 | else |
12249 | 12086 | { |
12250 | 12087 | { |
12251 | - empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2347); | |
12088 | + empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2357); | |
12252 | 12089 | } |
12253 | 12090 | } |
12254 | 12091 | } |
12255 | 12092 | |
12256 | -void FindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*var*/ *const vscope, const struct string *const id) | |
12093 | +void FindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*var*/ *const vscope, const struct nonempty_string *const id) | |
12257 | 12094 | { |
12258 | 12095 | if(vscope->fill > 0) |
12259 | 12096 | { |
@@ -12264,21 +12101,26 @@ | ||
12264 | 12101 | struct var *found = ((struct var *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
12265 | 12102 | bool _1; |
12266 | 12103 | { |
12267 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
12104 | + struct cmp _2; memset(&_2, 0, sizeof(struct cmp)); | |
12268 | 12105 | { |
12269 | 12106 | struct nonempty_string *_3 = &(*found).id; |
12270 | - nonempty_to_string(&_2, &*_3); | |
12107 | + struct nonempty_string _4; memset(&_4, 0, sizeof(struct nonempty_string)); | |
12108 | + { | |
12109 | + uint8_t _5; memset(&_5, 0, sizeof(uint8_t)); | |
12110 | + _5 = 95; | |
12111 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
12112 | + { | |
12113 | + nonempty_to_string(&_6, &*id); | |
12114 | + } | |
12115 | + nonempty_string(&_4, &_5, &_6); | |
12116 | + string$dest(&_6); | |
12117 | + _IGNORE_(_5); | |
12118 | + } | |
12119 | + cmp$nonempty_string(&_2, &*_3, &_4); | |
12120 | + nonempty_string$dest(&_4); | |
12271 | 12121 | } |
12272 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
12273 | - { | |
12274 | - uint8_t _4; memset(&_4, 0, sizeof(uint8_t)); | |
12275 | - _4 = 95; | |
12276 | - preapp(&_3, &_4, &*id); | |
12277 | - _IGNORE_(_4); | |
12278 | - } | |
12279 | - strequ(&_1, &_2, &_3); | |
12280 | - string$dest(&_3); | |
12281 | - string$dest(&_2); | |
12122 | + is_equ(&_1, &_2); | |
12123 | + cmp$dest(&_2); | |
12282 | 12124 | } |
12283 | 12125 | if(_1) |
12284 | 12126 | { |
@@ -12300,7 +12142,12 @@ | ||
12300 | 12142 | string$dest(&_5); |
12301 | 12143 | } |
12302 | 12144 | { |
12303 | - PutStr(0 /* _5 */, &*err, &*id); | |
12145 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
12146 | + { | |
12147 | + nonempty_to_string(&_6, &*id); | |
12148 | + } | |
12149 | + PutStr(0 /* _5 */, &*err, &_6); | |
12150 | + string$dest(&_6); | |
12304 | 12151 | } |
12305 | 12152 | { |
12306 | 12153 | struct string _7; memset(&_7, 0, sizeof(struct string)); |
@@ -12323,7 +12170,7 @@ | ||
12323 | 12170 | } |
12324 | 12171 | struct stack/*qtypepureid*/ _10; memset(&_10, 0, sizeof(struct stack/*qtypepureid*/)); |
12325 | 12172 | { |
12326 | - empty(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2366); | |
12173 | + empty(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2376); | |
12327 | 12174 | } |
12328 | 12175 | clone$(&_2, &_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
12329 | 12176 | free$(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -12350,7 +12197,7 @@ | ||
12350 | 12197 | struct nonempty_string *_9 = &(*found).id; |
12351 | 12198 | qtypepureid(&_7, &*_8, &*_9); |
12352 | 12199 | } |
12353 | - solid(&_6, &_7, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2372); | |
12200 | + solid(&_6, &_7, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2382); | |
12354 | 12201 | qtypepureid$dest(&_7); |
12355 | 12202 | } |
12356 | 12203 | clone$(&_2, &_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
@@ -12373,21 +12220,26 @@ | ||
12373 | 12220 | { |
12374 | 12221 | bool _2; |
12375 | 12222 | { |
12376 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
12223 | + struct cmp _3; memset(&_3, 0, sizeof(struct cmp)); | |
12377 | 12224 | { |
12378 | 12225 | struct nonempty_string *_4 = &(*found).id; |
12379 | - nonempty_to_string(&_3, &*_4); | |
12226 | + struct nonempty_string _5; memset(&_5, 0, sizeof(struct nonempty_string)); | |
12227 | + { | |
12228 | + uint8_t _6; memset(&_6, 0, sizeof(uint8_t)); | |
12229 | + _6 = 42; | |
12230 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
12231 | + { | |
12232 | + nonempty_to_string(&_7, &*id); | |
12233 | + } | |
12234 | + nonempty_string(&_5, &_6, &_7); | |
12235 | + string$dest(&_7); | |
12236 | + _IGNORE_(_6); | |
12237 | + } | |
12238 | + cmp$nonempty_string(&_3, &*_4, &_5); | |
12239 | + nonempty_string$dest(&_5); | |
12380 | 12240 | } |
12381 | - struct string _4; memset(&_4, 0, sizeof(struct string)); | |
12382 | - { | |
12383 | - uint8_t _5; memset(&_5, 0, sizeof(uint8_t)); | |
12384 | - _5 = 42; | |
12385 | - preapp(&_4, &_5, &*id); | |
12386 | - _IGNORE_(_5); | |
12387 | - } | |
12388 | - strequ(&_2, &_3, &_4); | |
12389 | - string$dest(&_4); | |
12390 | - string$dest(&_3); | |
12241 | + is_equ(&_2, &_3); | |
12242 | + cmp$dest(&_3); | |
12391 | 12243 | } |
12392 | 12244 | if(_2) |
12393 | 12245 | { |
@@ -12409,7 +12261,12 @@ | ||
12409 | 12261 | string$dest(&_6); |
12410 | 12262 | } |
12411 | 12263 | { |
12412 | - PutStr(0 /* _6 */, &*err, &*id); | |
12264 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
12265 | + { | |
12266 | + nonempty_to_string(&_7, &*id); | |
12267 | + } | |
12268 | + PutStr(0 /* _6 */, &*err, &_7); | |
12269 | + string$dest(&_7); | |
12413 | 12270 | } |
12414 | 12271 | { |
12415 | 12272 | struct string _8; memset(&_8, 0, sizeof(struct string)); |
@@ -12432,7 +12289,7 @@ | ||
12432 | 12289 | } |
12433 | 12290 | struct stack/*qtypepureid*/ _11; memset(&_11, 0, sizeof(struct stack/*qtypepureid*/)); |
12434 | 12291 | { |
12435 | - empty(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2389); | |
12292 | + empty(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2399); | |
12436 | 12293 | } |
12437 | 12294 | clone$(&_3, &_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
12438 | 12295 | free$(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -12459,7 +12316,7 @@ | ||
12459 | 12316 | struct nonempty_string *_10 = &(*found).id; |
12460 | 12317 | qtypepureid(&_8, &*_9, &*_10); |
12461 | 12318 | } |
12462 | - solid(&_7, &_8, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2395); | |
12319 | + solid(&_7, &_8, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2405); | |
12463 | 12320 | qtypepureid$dest(&_8); |
12464 | 12321 | } |
12465 | 12322 | clone$(&_3, &_7, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
@@ -12489,12 +12346,12 @@ | ||
12489 | 12346 | else |
12490 | 12347 | { |
12491 | 12348 | { |
12492 | - empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2401); | |
12349 | + empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2411); | |
12493 | 12350 | } |
12494 | 12351 | } |
12495 | 12352 | } |
12496 | 12353 | |
12497 | -void exists_var(bool *const _0, const struct stack/*var*/ *const vscope, const struct string *const id) | |
12354 | +void exists_var(bool *const _0, const struct stack/*var*/ *const vscope, const struct nonempty_string *const id) | |
12498 | 12355 | { |
12499 | 12356 | if(vscope->fill > 0) |
12500 | 12357 | { |
@@ -12505,21 +12362,26 @@ | ||
12505 | 12362 | struct var *found = ((struct var *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
12506 | 12363 | bool _1; |
12507 | 12364 | { |
12508 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
12365 | + struct cmp _2; memset(&_2, 0, sizeof(struct cmp)); | |
12509 | 12366 | { |
12510 | 12367 | struct nonempty_string *_3 = &(*found).id; |
12511 | - nonempty_to_string(&_2, &*_3); | |
12368 | + struct nonempty_string _4; memset(&_4, 0, sizeof(struct nonempty_string)); | |
12369 | + { | |
12370 | + uint8_t _5; memset(&_5, 0, sizeof(uint8_t)); | |
12371 | + _5 = 95; | |
12372 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
12373 | + { | |
12374 | + nonempty_to_string(&_6, &*id); | |
12375 | + } | |
12376 | + nonempty_string(&_4, &_5, &_6); | |
12377 | + string$dest(&_6); | |
12378 | + _IGNORE_(_5); | |
12379 | + } | |
12380 | + cmp$nonempty_string(&_2, &*_3, &_4); | |
12381 | + nonempty_string$dest(&_4); | |
12512 | 12382 | } |
12513 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
12514 | - { | |
12515 | - uint8_t _4; memset(&_4, 0, sizeof(uint8_t)); | |
12516 | - _4 = 95; | |
12517 | - preapp(&_3, &_4, &*id); | |
12518 | - _IGNORE_(_4); | |
12519 | - } | |
12520 | - strequ(&_1, &_2, &_3); | |
12521 | - string$dest(&_3); | |
12522 | - string$dest(&_2); | |
12383 | + is_equ(&_1, &_2); | |
12384 | + cmp$dest(&_2); | |
12523 | 12385 | } |
12524 | 12386 | if(_1) |
12525 | 12387 | { |
@@ -12529,21 +12391,26 @@ | ||
12529 | 12391 | { |
12530 | 12392 | bool _2; |
12531 | 12393 | { |
12532 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
12394 | + struct cmp _3; memset(&_3, 0, sizeof(struct cmp)); | |
12533 | 12395 | { |
12534 | 12396 | struct nonempty_string *_4 = &(*found).id; |
12535 | - nonempty_to_string(&_3, &*_4); | |
12397 | + struct nonempty_string _5; memset(&_5, 0, sizeof(struct nonempty_string)); | |
12398 | + { | |
12399 | + uint8_t _6; memset(&_6, 0, sizeof(uint8_t)); | |
12400 | + _6 = 42; | |
12401 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
12402 | + { | |
12403 | + nonempty_to_string(&_7, &*id); | |
12404 | + } | |
12405 | + nonempty_string(&_5, &_6, &_7); | |
12406 | + string$dest(&_7); | |
12407 | + _IGNORE_(_6); | |
12408 | + } | |
12409 | + cmp$nonempty_string(&_3, &*_4, &_5); | |
12410 | + nonempty_string$dest(&_5); | |
12536 | 12411 | } |
12537 | - struct string _4; memset(&_4, 0, sizeof(struct string)); | |
12538 | - { | |
12539 | - uint8_t _5; memset(&_5, 0, sizeof(uint8_t)); | |
12540 | - _5 = 42; | |
12541 | - preapp(&_4, &_5, &*id); | |
12542 | - _IGNORE_(_5); | |
12543 | - } | |
12544 | - strequ(&_2, &_3, &_4); | |
12545 | - string$dest(&_4); | |
12546 | - string$dest(&_3); | |
12412 | + is_equ(&_2, &_3); | |
12413 | + cmp$dest(&_3); | |
12547 | 12414 | } |
12548 | 12415 | if(_2) |
12549 | 12416 | { |
@@ -12699,7 +12566,7 @@ | ||
12699 | 12566 | } |
12700 | 12567 | } |
12701 | 12568 | |
12702 | -void ScopesFindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*vscope*/ *const scopes, const struct string *const id) | |
12569 | +void ScopesFindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*vscope*/ *const scopes, const struct nonempty_string *const id) | |
12703 | 12570 | { |
12704 | 12571 | if(scopes->fill > 0) |
12705 | 12572 | { |
@@ -12726,7 +12593,7 @@ | ||
12726 | 12593 | { |
12727 | 12594 | const struct qtypepureid *v = (*_2).data; |
12728 | 12595 | { |
12729 | - solid(&_1, &*v, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2462); | |
12596 | + solid(&_1, &*v, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2472); | |
12730 | 12597 | } |
12731 | 12598 | } |
12732 | 12599 | clone$(&*_0, &_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
@@ -12737,7 +12604,7 @@ | ||
12737 | 12604 | else |
12738 | 12605 | { |
12739 | 12606 | { |
12740 | - empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2464); | |
12607 | + empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2474); | |
12741 | 12608 | } |
12742 | 12609 | } |
12743 | 12610 | } |
@@ -12832,13 +12699,13 @@ | ||
12832 | 12699 | { |
12833 | 12700 | struct stack/*vscope*/ *_2 = &(*sp).elems; |
12834 | 12701 | struct vscope *_3 = &(*sp).current; |
12835 | - push(0 /* _1 */, &*_2, &*_3, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 2485); | |
12702 | + push(0 /* _1 */, &*_2, &*_3, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 2495); | |
12836 | 12703 | } |
12837 | 12704 | struct vscope *_2 = &(*sp).current; |
12838 | 12705 | { |
12839 | 12706 | struct stack/*var*/ _3; memset(&_3, 0, sizeof(struct stack/*var*/)); |
12840 | 12707 | { |
12841 | - stack(&_3, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 2486); | |
12708 | + stack(&_3, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 2496); | |
12842 | 12709 | } |
12843 | 12710 | vscope(&*_2, &_3); |
12844 | 12711 | free$(&_3, sizeof(struct var), (void (*)(void *))var$dest); |
@@ -12852,12 +12719,12 @@ | ||
12852 | 12719 | struct vscope *_1 = &(*sp).current; |
12853 | 12720 | { |
12854 | 12721 | struct stack/*vscope*/ *_2 = &(*sp).elems; |
12855 | - pop$(&*_1, &*_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 2491); | |
12722 | + pop$(&*_1, &*_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 2501); | |
12856 | 12723 | } |
12857 | 12724 | } |
12858 | 12725 | } |
12859 | 12726 | |
12860 | -void ScopePathFindParAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, struct scopepath *const sp, const struct string *const id) | |
12727 | +void ScopePathFindParAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, struct scopepath *const sp, const struct nonempty_string *const id) | |
12861 | 12728 | { |
12862 | 12729 | { |
12863 | 12730 | struct stack/*par*/ *_1 = &(*sp).base.elems; |
@@ -12865,7 +12732,7 @@ | ||
12865 | 12732 | } |
12866 | 12733 | } |
12867 | 12734 | |
12868 | -void ScopePathFindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, struct scopepath *const sp, const struct string *const id) | |
12735 | +void ScopePathFindVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, struct scopepath *const sp, const struct nonempty_string *const id) | |
12869 | 12736 | { |
12870 | 12737 | { |
12871 | 12738 | struct stack/*qtypepureid*/ _found; memset(&_found, 0, sizeof(struct stack/*qtypepureid*/)); |
@@ -12886,7 +12753,7 @@ | ||
12886 | 12753 | { |
12887 | 12754 | const struct qtypepureid *found = (*_2).data; |
12888 | 12755 | { |
12889 | - solid(&_1, &*found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2503); | |
12756 | + solid(&_1, &*found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2513); | |
12890 | 12757 | } |
12891 | 12758 | } |
12892 | 12759 | clone$(&*_0, &_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); |
@@ -12898,28 +12765,52 @@ | ||
12898 | 12765 | void ScopePathFindParOrVarAndMarkUsed$(struct stack/*qtypepureid*/ *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, struct scopepath *const sp, const struct string *const id) |
12899 | 12766 | { |
12900 | 12767 | { |
12901 | - struct stack/*qtypepureid*/ _found; memset(&_found, 0, sizeof(struct stack/*qtypepureid*/)); | |
12902 | 12768 | { |
12903 | - ScopePathFindVarAndMarkUsed$(&_found, &*err, &*txtpos, &*sp, &*id); | |
12904 | - } | |
12905 | - struct stack/*qtypepureid*/ _1; memset(&_1, 0, sizeof(struct stack/*qtypepureid*/)); | |
12906 | - const struct stack/*qtypepureid*/ *_2 = &(_found); | |
12907 | - if(!(*_2).size) | |
12908 | - { | |
12769 | + struct stack/*nonempty_string*/ _1; memset(&_1, 0, sizeof(struct stack/*nonempty_string*/)); | |
12909 | 12770 | { |
12910 | - ScopePathFindParAndMarkUsed$(&_1, &*err, &*txtpos, &*sp, &*id); | |
12771 | + to_nonempty_string(&_1, &*id); | |
12911 | 12772 | } |
12912 | - } | |
12913 | - else | |
12914 | - { | |
12915 | - const struct qtypepureid *found = (*_2).data; | |
12773 | + const struct stack/*nonempty_string*/ *id = &_1; | |
12774 | + struct stack/*qtypepureid*/ _2; memset(&_2, 0, sizeof(struct stack/*qtypepureid*/)); | |
12775 | + const struct stack/*nonempty_string*/ *_3 = &(*id); | |
12776 | + if(!(*_3).size) | |
12916 | 12777 | { |
12917 | - solid(&_1, &*found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2513); | |
12778 | + { | |
12779 | + empty(&_2, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2523); | |
12780 | + } | |
12918 | 12781 | } |
12919 | - } | |
12920 | - clone$(&*_0, &_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); | |
12921 | - free$(&_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
12922 | - free$(&_found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
12782 | + else | |
12783 | + { | |
12784 | + const struct nonempty_string *id = (*_3).data; | |
12785 | + { | |
12786 | + struct stack/*qtypepureid*/ _found; memset(&_found, 0, sizeof(struct stack/*qtypepureid*/)); | |
12787 | + { | |
12788 | + ScopePathFindVarAndMarkUsed$(&_found, &*err, &*txtpos, &*sp, &*id); | |
12789 | + } | |
12790 | + struct stack/*qtypepureid*/ _4; memset(&_4, 0, sizeof(struct stack/*qtypepureid*/)); | |
12791 | + const struct stack/*qtypepureid*/ *_5 = &(_found); | |
12792 | + if(!(*_5).size) | |
12793 | + { | |
12794 | + { | |
12795 | + ScopePathFindParAndMarkUsed$(&_4, &*err, &*txtpos, &*sp, &*id); | |
12796 | + } | |
12797 | + } | |
12798 | + else | |
12799 | + { | |
12800 | + const struct qtypepureid *found = (*_5).data; | |
12801 | + { | |
12802 | + solid(&_4, &*found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2532); | |
12803 | + } | |
12804 | + } | |
12805 | + clone$(&_2, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); | |
12806 | + free$(&_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
12807 | + free$(&_found, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
12808 | + } | |
12809 | + } | |
12810 | + clone$(&*_0, &_2, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy); | |
12811 | + free$(&_2, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
12812 | + free$(&_1, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
12813 | + } | |
12923 | 12814 | } |
12924 | 12815 | } |
12925 | 12816 |
@@ -13042,7 +12933,7 @@ | ||
13042 | 12933 | { |
13043 | 12934 | const struct xar_hidden *vi = ((*_2).xar_hidden).data; |
13044 | 12935 | { |
13045 | - empty(&_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2561); | |
12936 | + empty(&_1, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2581); | |
13046 | 12937 | } |
13047 | 12938 | __SUPPRESS_WARNING_UNUSED_VARIABLE__(vi); |
13048 | 12939 | break; |
@@ -13064,7 +12955,7 @@ | ||
13064 | 12955 | const struct nonempty_string *_6 = &(*var).id; |
13065 | 12956 | qtypepureid(&_4, &*_5, &*_6); |
13066 | 12957 | } |
13067 | - solid(&_1, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2565); | |
12958 | + solid(&_1, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2585); | |
13068 | 12959 | qtypepureid$dest(&_4); |
13069 | 12960 | } |
13070 | 12961 | } |
@@ -13090,7 +12981,7 @@ | ||
13090 | 12981 | else |
13091 | 12982 | { |
13092 | 12983 | { |
13093 | - empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2571); | |
12984 | + empty(&*_0, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 2591); | |
13094 | 12985 | } |
13095 | 12986 | } |
13096 | 12987 | } |
@@ -13269,16 +13160,16 @@ | ||
13269 | 13160 | } |
13270 | 13161 | } |
13271 | 13162 | |
13272 | -void Climb(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*string*/ *const argids) | |
13163 | +void Climb(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*nonempty_string*/ *const argids) | |
13273 | 13164 | { |
13274 | 13165 | { |
13275 | 13166 | if(argids->fill > 0) |
13276 | 13167 | { |
13277 | - struct stack/*string*/ _rest; memset(&_rest, 0, sizeof(struct stack/*string*/)); | |
13168 | + struct stack/*nonempty_string*/ _rest; memset(&_rest, 0, sizeof(struct stack/*nonempty_string*/)); | |
13278 | 13169 | _rest.fill = argids->fill - 1; |
13279 | 13170 | _rest.data = argids->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
13280 | 13171 | _rest.size = (4 * (argids->fill + 1) > argids->size + 1) ? argids->size : (argids->size + 1) / 2 - 1; |
13281 | - const struct string *argid = ((const struct string *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
13172 | + const struct nonempty_string *argid = ((const struct nonempty_string *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! | |
13282 | 13173 | { |
13283 | 13174 | { |
13284 | 13175 | Climb(0 /* _2 */, &*out, &*err, &*txtpos, &_rest); |
@@ -13290,7 +13181,12 @@ | ||
13290 | 13181 | string$dest(&_4); |
13291 | 13182 | } |
13292 | 13183 | { |
13293 | - PutStr(0 /* _4 */, &*out, &*argid); | |
13184 | + struct string _5; memset(&_5, 0, sizeof(struct string)); | |
13185 | + { | |
13186 | + nonempty_to_string(&_5, &*argid); | |
13187 | + } | |
13188 | + PutStr(0 /* _4 */, &*out, &_5); | |
13189 | + string$dest(&_5); | |
13294 | 13190 | } |
13295 | 13191 | } |
13296 | 13192 | } |
@@ -13297,7 +13193,7 @@ | ||
13297 | 13193 | } |
13298 | 13194 | } |
13299 | 13195 | |
13300 | -void DoCall(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*string*/ *const argids, const struct qtypepureid *const store) | |
13196 | +void DoCall(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, const struct stack/*nonempty_string*/ *const argids, const struct qtypepureid *const store) | |
13301 | 13197 | { |
13302 | 13198 | { |
13303 | 13199 | bool _2; |
@@ -13686,8 +13582,7 @@ | ||
13686 | 13582 | { |
13687 | 13583 | bool _1; memset(&_1, 0, sizeof(bool)); |
13688 | 13584 | { |
13689 | - const struct string *_2 = &(*id).rest; | |
13690 | - idpart(&_1, &*_2); | |
13585 | + idpart(&_1, &*id); | |
13691 | 13586 | } |
13692 | 13587 | bool _2; memset(&_2, 0, sizeof(bool)); |
13693 | 13588 | _2 = 0; |
@@ -13702,8 +13597,7 @@ | ||
13702 | 13597 | { |
13703 | 13598 | bool _1; memset(&_1, 0, sizeof(bool)); |
13704 | 13599 | { |
13705 | - const struct string *_2 = &(*id).rest; | |
13706 | - idpart(&_1, &*_2); | |
13600 | + idpart(&_1, &*id); | |
13707 | 13601 | } |
13708 | 13602 | bool _2; memset(&_2, 0, sizeof(bool)); |
13709 | 13603 | _2 = 1; |
@@ -13763,7 +13657,7 @@ | ||
13763 | 13657 | } |
13764 | 13658 | } |
13765 | 13659 | |
13766 | -void findFnDefAndMarkUsed(struct stack/*def*/ *const _0, const struct stack/*def*/ *const defs, const struct string *const id) | |
13660 | +void findFnDefAndMarkUsed(struct stack/*def*/ *const _0, const struct stack/*def*/ *const defs, const struct nonempty_string *const id) | |
13767 | 13661 | { |
13768 | 13662 | if(defs->fill > 0) |
13769 | 13663 | { |
@@ -13774,13 +13668,13 @@ | ||
13774 | 13668 | struct def *cur = ((struct def *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
13775 | 13669 | bool _1; |
13776 | 13670 | { |
13777 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
13671 | + struct cmp _2; memset(&_2, 0, sizeof(struct cmp)); | |
13778 | 13672 | { |
13779 | 13673 | struct nonempty_string *_3 = &(*cur).id; |
13780 | - nonempty_to_string(&_2, &*_3); | |
13674 | + cmp$nonempty_string(&_2, &*id, &*_3); | |
13781 | 13675 | } |
13782 | - strequ(&_1, &*id, &_2); | |
13783 | - string$dest(&_2); | |
13676 | + is_equ(&_1, &_2); | |
13677 | + cmp$dest(&_2); | |
13784 | 13678 | } |
13785 | 13679 | if(_1) |
13786 | 13680 | { |
@@ -13789,7 +13683,7 @@ | ||
13789 | 13683 | *_2 = 1; |
13790 | 13684 | struct stack/*def*/ _3; memset(&_3, 0, sizeof(struct stack/*def*/)); |
13791 | 13685 | { |
13792 | - solid(&_3, &*cur, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2680); | |
13686 | + solid(&_3, &*cur, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2700); | |
13793 | 13687 | } |
13794 | 13688 | clone$(&*_0, &_3, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy); |
13795 | 13689 | free$(&_3, sizeof(struct def), (void (*)(void *))def$dest); |
@@ -13805,12 +13699,12 @@ | ||
13805 | 13699 | else |
13806 | 13700 | { |
13807 | 13701 | { |
13808 | - empty(&*_0, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2685); | |
13702 | + empty(&*_0, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2705); | |
13809 | 13703 | } |
13810 | 13704 | } |
13811 | 13705 | } |
13812 | 13706 | |
13813 | -void findFnDef(struct stack/*def*/ *const _0, const struct stack/*def*/ *const defs, const struct string *const id) | |
13707 | +void findFnDef(struct stack/*def*/ *const _0, const struct stack/*def*/ *const defs, const struct nonempty_string *const id) | |
13814 | 13708 | { |
13815 | 13709 | if(defs->fill > 0) |
13816 | 13710 | { |
@@ -13821,18 +13715,18 @@ | ||
13821 | 13715 | const struct def *cur = ((const struct def *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
13822 | 13716 | bool _1; |
13823 | 13717 | { |
13824 | - struct string _2; memset(&_2, 0, sizeof(struct string)); | |
13718 | + struct cmp _2; memset(&_2, 0, sizeof(struct cmp)); | |
13825 | 13719 | { |
13826 | 13720 | const struct nonempty_string *_3 = &(*cur).id; |
13827 | - nonempty_to_string(&_2, &*_3); | |
13721 | + cmp$nonempty_string(&_2, &*id, &*_3); | |
13828 | 13722 | } |
13829 | - strequ(&_1, &*id, &_2); | |
13830 | - string$dest(&_2); | |
13723 | + is_equ(&_1, &_2); | |
13724 | + cmp$dest(&_2); | |
13831 | 13725 | } |
13832 | 13726 | if(_1) |
13833 | 13727 | { |
13834 | 13728 | { |
13835 | - solid(&*_0, &*cur, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2691); | |
13729 | + solid(&*_0, &*cur, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2711); | |
13836 | 13730 | } |
13837 | 13731 | } |
13838 | 13732 | else |
@@ -13845,7 +13739,7 @@ | ||
13845 | 13739 | else |
13846 | 13740 | { |
13847 | 13741 | { |
13848 | - empty(&*_0, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2695); | |
13742 | + empty(&*_0, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2715); | |
13849 | 13743 | } |
13850 | 13744 | } |
13851 | 13745 | } |
@@ -13855,7 +13749,7 @@ | ||
13855 | 13749 | { |
13856 | 13750 | struct stack/*flavour*/ _1; memset(&_1, 0, sizeof(struct stack/*flavour*/)); |
13857 | 13751 | { |
13858 | - solid(&_1, &*type, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 2697); | |
13752 | + solid(&_1, &*type, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 2717); | |
13859 | 13753 | } |
13860 | 13754 | bool _2; memset(&_2, 0, sizeof(bool)); |
13861 | 13755 | _2 = 0; |
@@ -13870,7 +13764,7 @@ | ||
13870 | 13764 | { |
13871 | 13765 | struct stack/*flavour*/ _1; memset(&_1, 0, sizeof(struct stack/*flavour*/)); |
13872 | 13766 | { |
13873 | - solid(&_1, &*type, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 2698); | |
13767 | + solid(&_1, &*type, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 2718); | |
13874 | 13768 | } |
13875 | 13769 | bool _2; memset(&_2, 0, sizeof(bool)); |
13876 | 13770 | _2 = 1; |
@@ -13933,7 +13827,7 @@ | ||
13933 | 13827 | { |
13934 | 13828 | { |
13935 | 13829 | { |
13936 | - push(0 /* _1 */, &*defs, &*def, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2717); | |
13830 | + push(0 /* _1 */, &*defs, &*def, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 2737); | |
13937 | 13831 | } |
13938 | 13832 | } |
13939 | 13833 | } |
@@ -13942,7 +13836,7 @@ | ||
13942 | 13836 | { |
13943 | 13837 | { |
13944 | 13838 | { |
13945 | - push(0 /* _1 */, &*pars, &*par, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 2722); | |
13839 | + push(0 /* _1 */, &*pars, &*par, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 2742); | |
13946 | 13840 | } |
13947 | 13841 | } |
13948 | 13842 | } |
@@ -14007,7 +13901,7 @@ | ||
14007 | 13901 | parused(&_6, &_7); |
14008 | 13902 | qtypepureid$dest(&_7); |
14009 | 13903 | } |
14010 | - push(0 /* _4 */, &*_5, &_6, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 2730); | |
13904 | + push(0 /* _4 */, &*_5, &_6, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 2750); | |
14011 | 13905 | par$dest(&_6); |
14012 | 13906 | } |
14013 | 13907 | qtypepureid$dest(&_parext); |
@@ -14089,7 +13983,7 @@ | ||
14089 | 13983 | parinit(&_7, &_8); |
14090 | 13984 | qtypepureid$dest(&_8); |
14091 | 13985 | } |
14092 | - push(0 /* _5 */, &*_6, &_7, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 2739); | |
13986 | + push(0 /* _5 */, &*_6, &_7, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 2759); | |
14093 | 13987 | par$dest(&_7); |
14094 | 13988 | } |
14095 | 13989 | qtypepureid$dest(&_parext); |
@@ -14747,7 +14641,7 @@ | ||
14747 | 14641 | } |
14748 | 14642 | } |
14749 | 14643 | |
14750 | -void AssertResultTypePure$(void *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct string *const fn, const struct qtypepure *const want, const struct type_pure *const have) | |
14644 | +void AssertResultTypePure$(void *const _0, const struct StreamOut *const err, const struct linecol *const txtpos, const struct nonempty_string *const fn, const struct qtypepure *const want, const struct type_pure *const have) | |
14751 | 14645 | { |
14752 | 14646 | { |
14753 | 14647 | bool _2; |
@@ -14778,7 +14672,12 @@ | ||
14778 | 14672 | string$dest(&_6); |
14779 | 14673 | } |
14780 | 14674 | { |
14781 | - PutStr(0 /* _6 */, &*err, &*fn); | |
14675 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
14676 | + { | |
14677 | + nonempty_to_string(&_7, &*fn); | |
14678 | + } | |
14679 | + PutStr(0 /* _6 */, &*err, &_7); | |
14680 | + string$dest(&_7); | |
14782 | 14681 | } |
14783 | 14682 | { |
14784 | 14683 | struct string _8; memset(&_8, 0, sizeof(struct string)); |
@@ -15002,7 +14901,7 @@ | ||
15002 | 14901 | const struct typepureid *cur = (*_9).data; |
15003 | 14902 | { |
15004 | 14903 | { |
15005 | - push(0 /* _10 */, &*path, &*id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3018); | |
14904 | + push(0 /* _10 */, &*path, &*id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3038); | |
15006 | 14905 | } |
15007 | 14906 | struct type_pure _11; memset(&_11, 0, sizeof(struct type_pure)); |
15008 | 14907 | { |
@@ -15301,11 +15200,11 @@ | ||
15301 | 15200 | return; |
15302 | 15201 | } |
15303 | 15202 | |
15304 | -void ParseExpr$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct string *const id, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15305 | -void ParseBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15306 | -void ParseBlockRaw$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15307 | -void ParseArg$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct qtypepureid *const par, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*string*/ *const argids, const struct string *const callee, const struct stack/*type_pure*/ *const st, struct stack/*idpath*/ *const ips); | |
15308 | -void ParseCallComplete$(void *const _0/*, mut scopepath sp, mut u64 tmpnr*//**//**//*, bool action*/, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, const struct def *const def, const struct qtypepureid *const store, const struct requires_totality *const totality, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, struct stack/*string*/ *const argids, const struct string *const callee, const struct stack/*type_pure*/ *const st_) | |
15203 | +void ParseExpr$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct string *const id, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15204 | +void ParseBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15205 | +void ParseBlockRaw$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
15206 | +void ParseArg$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct qtypepureid *const par, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*nonempty_string*/ *const argids, const struct nonempty_string *const callee, const struct stack/*type_pure*/ *const st, struct stack/*idpath*/ *const ips); | |
15207 | +void ParseCallComplete$(void *const _0/*, mut scopepath sp, mut u64 tmpnr*//**//**//*, bool action*/, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, const struct def *const def, const struct qtypepureid *const store, const struct requires_totality *const totality, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, struct stack/*nonempty_string*/ *const argids, const struct nonempty_string *const callee, const struct stack/*type_pure*/ *const st_) | |
15309 | 15208 | { |
15310 | 15209 | { |
15311 | 15210 | bool _2; |
@@ -15334,7 +15233,12 @@ | ||
15334 | 15233 | } |
15335 | 15234 | { |
15336 | 15235 | const struct StreamOut *_5 = &(*streams).err; |
15337 | - PutStr(0 /* _4 */, &*_5, &*callee); | |
15236 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
15237 | + { | |
15238 | + nonempty_to_string(&_6, &*callee); | |
15239 | + } | |
15240 | + PutStr(0 /* _4 */, &*_5, &_6); | |
15241 | + string$dest(&_6); | |
15338 | 15242 | } |
15339 | 15243 | { |
15340 | 15244 | const struct StreamOut *_6 = &(*streams).err; |
@@ -15343,7 +15247,12 @@ | ||
15343 | 15247 | } |
15344 | 15248 | bool _4; |
15345 | 15249 | { |
15346 | - strequ(&_4, &*callee, &*self); | |
15250 | + struct cmp _5; memset(&_5, 0, sizeof(struct cmp)); | |
15251 | + { | |
15252 | + cmp$nonempty_string(&_5, &*callee, &*self); | |
15253 | + } | |
15254 | + is_equ(&_4, &_5); | |
15255 | + cmp$dest(&_5); | |
15347 | 15256 | } |
15348 | 15257 | if(_4) |
15349 | 15258 | { |
@@ -15377,7 +15286,12 @@ | ||
15377 | 15286 | } |
15378 | 15287 | { |
15379 | 15288 | const struct StreamOut *_12 = &(*streams).err; |
15380 | - PutStr(0 /* _11 */, &*_12, &*callee); | |
15289 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
15290 | + { | |
15291 | + nonempty_to_string(&_13, &*callee); | |
15292 | + } | |
15293 | + PutStr(0 /* _11 */, &*_12, &_13); | |
15294 | + string$dest(&_13); | |
15381 | 15295 | } |
15382 | 15296 | { |
15383 | 15297 | const struct StreamOut *_13 = &(*streams).err; |
@@ -15429,7 +15343,12 @@ | ||
15429 | 15343 | } |
15430 | 15344 | bool _6; |
15431 | 15345 | { |
15432 | - isop1(&_6, &*callee); | |
15346 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
15347 | + { | |
15348 | + nonempty_to_string(&_7, &*callee); | |
15349 | + } | |
15350 | + isop1(&_6, &_7); | |
15351 | + string$dest(&_7); | |
15433 | 15352 | } |
15434 | 15353 | if(_6) |
15435 | 15354 | { |
@@ -15446,7 +15365,12 @@ | ||
15446 | 15365 | } |
15447 | 15366 | { |
15448 | 15367 | const struct StreamOut *_11 = &(*streams).err; |
15449 | - PutStr(0 /* _10 */, &*_11, &*callee); | |
15368 | + struct string _12; memset(&_12, 0, sizeof(struct string)); | |
15369 | + { | |
15370 | + nonempty_to_string(&_12, &*callee); | |
15371 | + } | |
15372 | + PutStr(0 /* _10 */, &*_11, &_12); | |
15373 | + string$dest(&_12); | |
15450 | 15374 | } |
15451 | 15375 | { |
15452 | 15376 | const struct StreamOut *_12 = &(*streams).err; |
@@ -15474,7 +15398,12 @@ | ||
15474 | 15398 | { |
15475 | 15399 | { |
15476 | 15400 | const struct StreamOut *_13 = &(*streams).err; |
15477 | - PutStr(0 /* _12 */, &*_13, &*callee); | |
15401 | + struct string _14; memset(&_14, 0, sizeof(struct string)); | |
15402 | + { | |
15403 | + nonempty_to_string(&_14, &*callee); | |
15404 | + } | |
15405 | + PutStr(0 /* _12 */, &*_13, &_14); | |
15406 | + string$dest(&_14); | |
15478 | 15407 | } |
15479 | 15408 | { |
15480 | 15409 | const struct StreamOut *_14 = &(*streams).err; |
@@ -15497,11 +15426,11 @@ | ||
15497 | 15426 | Fail$(0 /* _15 */, &*_16, &*txtpos); |
15498 | 15427 | } |
15499 | 15428 | } |
15500 | - struct string _arg0; memset(&_arg0, 0, sizeof(struct string)); | |
15429 | + struct nonempty_string _arg0; memset(&_arg0, 0, sizeof(struct nonempty_string)); | |
15501 | 15430 | { |
15502 | 15431 | uint64_t _12; memset(&_12, 0, sizeof(uint64_t)); |
15503 | 15432 | _12 = 0; |
15504 | - at_get$(&_arg0, &*argids, &_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3145); | |
15433 | + at_get$(&_arg0, &*argids, &_12, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3165); | |
15505 | 15434 | _IGNORE_(_12); |
15506 | 15435 | } |
15507 | 15436 | bool _13; |
@@ -15535,7 +15464,12 @@ | ||
15535 | 15464 | const struct StreamOut *_18 = &(*streams).out; |
15536 | 15465 | struct string _19; memset(&_19, 0, sizeof(struct string)); |
15537 | 15466 | { |
15538 | - to_op1(&_19, &*callee); | |
15467 | + struct string _20; memset(&_20, 0, sizeof(struct string)); | |
15468 | + { | |
15469 | + nonempty_to_string(&_20, &*callee); | |
15470 | + } | |
15471 | + to_op1(&_19, &_20); | |
15472 | + string$dest(&_20); | |
15539 | 15473 | } |
15540 | 15474 | PutStr(0 /* _17 */, &*_18, &_19); |
15541 | 15475 | string$dest(&_19); |
@@ -15549,7 +15483,12 @@ | ||
15549 | 15483 | } |
15550 | 15484 | { |
15551 | 15485 | const struct StreamOut *_20 = &(*streams).out; |
15552 | - PutStr(0 /* _19 */, &*_20, &_arg0); | |
15486 | + struct string _21; memset(&_21, 0, sizeof(struct string)); | |
15487 | + { | |
15488 | + nonempty_to_string(&_21, &_arg0); | |
15489 | + } | |
15490 | + PutStr(0 /* _19 */, &*_20, &_21); | |
15491 | + string$dest(&_21); | |
15553 | 15492 | } |
15554 | 15493 | { |
15555 | 15494 | const struct StreamOut *_21 = &(*streams).out; |
@@ -15563,7 +15502,12 @@ | ||
15563 | 15502 | { |
15564 | 15503 | { |
15565 | 15504 | const struct StreamOut *_15 = &(*streams).err; |
15566 | - PutStr(0 /* _14 */, &*_15, &*callee); | |
15505 | + struct string _16; memset(&_16, 0, sizeof(struct string)); | |
15506 | + { | |
15507 | + nonempty_to_string(&_16, &*callee); | |
15508 | + } | |
15509 | + PutStr(0 /* _14 */, &*_15, &_16); | |
15510 | + string$dest(&_16); | |
15567 | 15511 | } |
15568 | 15512 | { |
15569 | 15513 | const struct StreamOut *_16 = &(*streams).err; |
@@ -15577,7 +15521,7 @@ | ||
15577 | 15521 | Fail$(0 /* _16 */, &*_17, &*txtpos); |
15578 | 15522 | } |
15579 | 15523 | } |
15580 | - string$dest(&_arg0); | |
15524 | + nonempty_string$dest(&_arg0); | |
15581 | 15525 | } |
15582 | 15526 | } |
15583 | 15527 | } |
@@ -15585,7 +15529,12 @@ | ||
15585 | 15529 | { |
15586 | 15530 | bool _7; |
15587 | 15531 | { |
15588 | - isop2(&_7, &*callee); | |
15532 | + struct string _8; memset(&_8, 0, sizeof(struct string)); | |
15533 | + { | |
15534 | + nonempty_to_string(&_8, &*callee); | |
15535 | + } | |
15536 | + isop2(&_7, &_8); | |
15537 | + string$dest(&_8); | |
15589 | 15538 | } |
15590 | 15539 | if(_7) |
15591 | 15540 | { |
@@ -15602,7 +15551,12 @@ | ||
15602 | 15551 | } |
15603 | 15552 | { |
15604 | 15553 | const struct StreamOut *_12 = &(*streams).err; |
15605 | - PutStr(0 /* _11 */, &*_12, &*callee); | |
15554 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
15555 | + { | |
15556 | + nonempty_to_string(&_13, &*callee); | |
15557 | + } | |
15558 | + PutStr(0 /* _11 */, &*_12, &_13); | |
15559 | + string$dest(&_13); | |
15606 | 15560 | } |
15607 | 15561 | { |
15608 | 15562 | const struct StreamOut *_13 = &(*streams).err; |
@@ -15630,7 +15584,12 @@ | ||
15630 | 15584 | { |
15631 | 15585 | { |
15632 | 15586 | const struct StreamOut *_14 = &(*streams).err; |
15633 | - PutStr(0 /* _13 */, &*_14, &*callee); | |
15587 | + struct string _15; memset(&_15, 0, sizeof(struct string)); | |
15588 | + { | |
15589 | + nonempty_to_string(&_15, &*callee); | |
15590 | + } | |
15591 | + PutStr(0 /* _13 */, &*_14, &_15); | |
15592 | + string$dest(&_15); | |
15634 | 15593 | } |
15635 | 15594 | { |
15636 | 15595 | const struct StreamOut *_15 = &(*streams).err; |
@@ -15653,18 +15612,18 @@ | ||
15653 | 15612 | Fail$(0 /* _16 */, &*_17, &*txtpos); |
15654 | 15613 | } |
15655 | 15614 | } |
15656 | - struct string _arg0; memset(&_arg0, 0, sizeof(struct string)); | |
15615 | + struct nonempty_string _arg0; memset(&_arg0, 0, sizeof(struct nonempty_string)); | |
15657 | 15616 | { |
15658 | 15617 | uint64_t _13; memset(&_13, 0, sizeof(uint64_t)); |
15659 | 15618 | _13 = 0; |
15660 | - at_get$(&_arg0, &*argids, &_13, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3178); | |
15619 | + at_get$(&_arg0, &*argids, &_13, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3198); | |
15661 | 15620 | _IGNORE_(_13); |
15662 | 15621 | } |
15663 | - struct string _arg1; memset(&_arg1, 0, sizeof(struct string)); | |
15622 | + struct nonempty_string _arg1; memset(&_arg1, 0, sizeof(struct nonempty_string)); | |
15664 | 15623 | { |
15665 | 15624 | uint64_t _13; memset(&_13, 0, sizeof(uint64_t)); |
15666 | 15625 | _13 = 1; |
15667 | - at_get$(&_arg1, &*argids, &_13, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3179); | |
15626 | + at_get$(&_arg1, &*argids, &_13, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3199); | |
15668 | 15627 | _IGNORE_(_13); |
15669 | 15628 | } |
15670 | 15629 | bool _14; |
@@ -15696,7 +15655,12 @@ | ||
15696 | 15655 | } |
15697 | 15656 | { |
15698 | 15657 | const struct StreamOut *_19 = &(*streams).out; |
15699 | - PutStr(0 /* _18 */, &*_19, &_arg0); | |
15658 | + struct string _20; memset(&_20, 0, sizeof(struct string)); | |
15659 | + { | |
15660 | + nonempty_to_string(&_20, &_arg0); | |
15661 | + } | |
15662 | + PutStr(0 /* _18 */, &*_19, &_20); | |
15663 | + string$dest(&_20); | |
15700 | 15664 | } |
15701 | 15665 | { |
15702 | 15666 | const struct StreamOut *_20 = &(*streams).out; |
@@ -15709,7 +15673,12 @@ | ||
15709 | 15673 | const struct StreamOut *_21 = &(*streams).out; |
15710 | 15674 | struct string _22; memset(&_22, 0, sizeof(struct string)); |
15711 | 15675 | { |
15712 | - to_op2(&_22, &*callee); | |
15676 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
15677 | + { | |
15678 | + nonempty_to_string(&_23, &*callee); | |
15679 | + } | |
15680 | + to_op2(&_22, &_23); | |
15681 | + string$dest(&_23); | |
15713 | 15682 | } |
15714 | 15683 | PutStr(0 /* _20 */, &*_21, &_22); |
15715 | 15684 | string$dest(&_22); |
@@ -15723,7 +15692,12 @@ | ||
15723 | 15692 | } |
15724 | 15693 | { |
15725 | 15694 | const struct StreamOut *_23 = &(*streams).out; |
15726 | - PutStr(0 /* _22 */, &*_23, &_arg1); | |
15695 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
15696 | + { | |
15697 | + nonempty_to_string(&_24, &_arg1); | |
15698 | + } | |
15699 | + PutStr(0 /* _22 */, &*_23, &_24); | |
15700 | + string$dest(&_24); | |
15727 | 15701 | } |
15728 | 15702 | { |
15729 | 15703 | const struct StreamOut *_24 = &(*streams).out; |
@@ -15737,7 +15711,12 @@ | ||
15737 | 15711 | { |
15738 | 15712 | { |
15739 | 15713 | const struct StreamOut *_16 = &(*streams).err; |
15740 | - PutStr(0 /* _15 */, &*_16, &*callee); | |
15714 | + struct string _17; memset(&_17, 0, sizeof(struct string)); | |
15715 | + { | |
15716 | + nonempty_to_string(&_17, &*callee); | |
15717 | + } | |
15718 | + PutStr(0 /* _15 */, &*_16, &_17); | |
15719 | + string$dest(&_17); | |
15741 | 15720 | } |
15742 | 15721 | { |
15743 | 15722 | const struct StreamOut *_17 = &(*streams).err; |
@@ -15751,8 +15730,8 @@ | ||
15751 | 15730 | Fail$(0 /* _17 */, &*_18, &*txtpos); |
15752 | 15731 | } |
15753 | 15732 | } |
15754 | - string$dest(&_arg1); | |
15755 | - string$dest(&_arg0); | |
15733 | + nonempty_string$dest(&_arg1); | |
15734 | + nonempty_string$dest(&_arg0); | |
15756 | 15735 | } |
15757 | 15736 | } |
15758 | 15737 | } |
@@ -15777,7 +15756,12 @@ | ||
15777 | 15756 | } |
15778 | 15757 | { |
15779 | 15758 | const struct StreamOut *_14 = &(*streams).err; |
15780 | - PutStr(0 /* _13 */, &*_14, &*callee); | |
15759 | + struct string _15; memset(&_15, 0, sizeof(struct string)); | |
15760 | + { | |
15761 | + nonempty_to_string(&_15, &*callee); | |
15762 | + } | |
15763 | + PutStr(0 /* _13 */, &*_14, &_15); | |
15764 | + string$dest(&_15); | |
15781 | 15765 | } |
15782 | 15766 | { |
15783 | 15767 | const struct StreamOut *_15 = &(*streams).err; |
@@ -15821,7 +15805,12 @@ | ||
15821 | 15805 | } |
15822 | 15806 | { |
15823 | 15807 | const struct StreamOut *_17 = &(*streams).err; |
15824 | - PutStr(0 /* _16 */, &*_17, &*callee); | |
15808 | + struct string _18; memset(&_18, 0, sizeof(struct string)); | |
15809 | + { | |
15810 | + nonempty_to_string(&_18, &*callee); | |
15811 | + } | |
15812 | + PutStr(0 /* _16 */, &*_17, &_18); | |
15813 | + string$dest(&_18); | |
15825 | 15814 | } |
15826 | 15815 | { |
15827 | 15816 | const struct StreamOut *_18 = &(*streams).err; |
@@ -15836,7 +15825,12 @@ | ||
15836 | 15825 | } |
15837 | 15826 | { |
15838 | 15827 | const struct StreamOut *_13 = &(*streams).out; |
15839 | - PutStr(0 /* _12 */, &*_13, &*callee); | |
15828 | + struct string _14; memset(&_14, 0, sizeof(struct string)); | |
15829 | + { | |
15830 | + nonempty_to_string(&_14, &*callee); | |
15831 | + } | |
15832 | + PutStr(0 /* _12 */, &*_13, &_14); | |
15833 | + string$dest(&_14); | |
15840 | 15834 | } |
15841 | 15835 | { |
15842 | 15836 | const struct StreamOut *_14 = &(*streams).out; |
@@ -15860,7 +15854,12 @@ | ||
15860 | 15854 | { |
15861 | 15855 | struct string _20; memset(&_20, 0, sizeof(struct string)); |
15862 | 15856 | init$fromliteral(&_20, "stack", 5); |
15863 | - strequ(&_19, &_20, &*callee); | |
15857 | + struct string _21; memset(&_21, 0, sizeof(struct string)); | |
15858 | + { | |
15859 | + nonempty_to_string(&_21, &*callee); | |
15860 | + } | |
15861 | + strequ(&_19, &_20, &_21); | |
15862 | + string$dest(&_21); | |
15864 | 15863 | string$dest(&_20); |
15865 | 15864 | } |
15866 | 15865 | bool _20; memset(&_20, 0, sizeof(bool)); |
@@ -15869,7 +15868,12 @@ | ||
15869 | 15868 | { |
15870 | 15869 | struct string _22; memset(&_22, 0, sizeof(struct string)); |
15871 | 15870 | init$fromliteral(&_22, "empty", 5); |
15872 | - strequ(&_21, &_22, &*callee); | |
15871 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
15872 | + { | |
15873 | + nonempty_to_string(&_23, &*callee); | |
15874 | + } | |
15875 | + strequ(&_21, &_22, &_23); | |
15876 | + string$dest(&_23); | |
15873 | 15877 | string$dest(&_22); |
15874 | 15878 | } |
15875 | 15879 | bool _22; memset(&_22, 0, sizeof(bool)); |
@@ -15876,7 +15880,12 @@ | ||
15876 | 15880 | { |
15877 | 15881 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
15878 | 15882 | init$fromliteral(&_23, "solid", 5); |
15879 | - strequ(&_22, &_23, &*callee); | |
15883 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
15884 | + { | |
15885 | + nonempty_to_string(&_24, &*callee); | |
15886 | + } | |
15887 | + strequ(&_22, &_23, &_24); | |
15888 | + string$dest(&_24); | |
15880 | 15889 | string$dest(&_23); |
15881 | 15890 | } |
15882 | 15891 | or(&_20, &_21, &_22); |
@@ -15895,7 +15904,12 @@ | ||
15895 | 15904 | { |
15896 | 15905 | struct string _22; memset(&_22, 0, sizeof(struct string)); |
15897 | 15906 | init$fromliteral(&_22, "pop$", 4); |
15898 | - strequ(&_21, &_22, &*callee); | |
15907 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
15908 | + { | |
15909 | + nonempty_to_string(&_23, &*callee); | |
15910 | + } | |
15911 | + strequ(&_21, &_22, &_23); | |
15912 | + string$dest(&_23); | |
15899 | 15913 | string$dest(&_22); |
15900 | 15914 | } |
15901 | 15915 | bool _22; memset(&_22, 0, sizeof(bool)); |
@@ -15902,7 +15916,12 @@ | ||
15902 | 15916 | { |
15903 | 15917 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
15904 | 15918 | init$fromliteral(&_23, "pop_opt", 7); |
15905 | - strequ(&_22, &_23, &*callee); | |
15919 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
15920 | + { | |
15921 | + nonempty_to_string(&_24, &*callee); | |
15922 | + } | |
15923 | + strequ(&_22, &_23, &_24); | |
15924 | + string$dest(&_24); | |
15906 | 15925 | string$dest(&_23); |
15907 | 15926 | } |
15908 | 15927 | or(&_20, &_21, &_22); |
@@ -15915,7 +15934,12 @@ | ||
15915 | 15934 | { |
15916 | 15935 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
15917 | 15936 | init$fromliteral(&_23, "pop_opt_base$", 13); |
15918 | - strequ(&_22, &_23, &*callee); | |
15937 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
15938 | + { | |
15939 | + nonempty_to_string(&_24, &*callee); | |
15940 | + } | |
15941 | + strequ(&_22, &_23, &_24); | |
15942 | + string$dest(&_24); | |
15919 | 15943 | string$dest(&_23); |
15920 | 15944 | } |
15921 | 15945 | bool _23; memset(&_23, 0, sizeof(bool)); |
@@ -15922,7 +15946,12 @@ | ||
15922 | 15946 | { |
15923 | 15947 | struct string _24; memset(&_24, 0, sizeof(struct string)); |
15924 | 15948 | init$fromliteral(&_24, "push", 4); |
15925 | - strequ(&_23, &_24, &*callee); | |
15949 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
15950 | + { | |
15951 | + nonempty_to_string(&_25, &*callee); | |
15952 | + } | |
15953 | + strequ(&_23, &_24, &_25); | |
15954 | + string$dest(&_25); | |
15926 | 15955 | string$dest(&_24); |
15927 | 15956 | } |
15928 | 15957 | or(&_21, &_22, &_23); |
@@ -15945,7 +15974,12 @@ | ||
15945 | 15974 | { |
15946 | 15975 | struct string _21; memset(&_21, 0, sizeof(struct string)); |
15947 | 15976 | init$fromliteral(&_21, "at_get$", 7); |
15948 | - strequ(&_20, &_21, &*callee); | |
15977 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
15978 | + { | |
15979 | + nonempty_to_string(&_22, &*callee); | |
15980 | + } | |
15981 | + strequ(&_20, &_21, &_22); | |
15982 | + string$dest(&_22); | |
15949 | 15983 | string$dest(&_21); |
15950 | 15984 | } |
15951 | 15985 | bool _21; memset(&_21, 0, sizeof(bool)); |
@@ -15952,7 +15986,12 @@ | ||
15952 | 15986 | { |
15953 | 15987 | struct string _22; memset(&_22, 0, sizeof(struct string)); |
15954 | 15988 | init$fromliteral(&_22, "at_set$", 7); |
15955 | - strequ(&_21, &_22, &*callee); | |
15989 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
15990 | + { | |
15991 | + nonempty_to_string(&_23, &*callee); | |
15992 | + } | |
15993 | + strequ(&_21, &_22, &_23); | |
15994 | + string$dest(&_23); | |
15956 | 15995 | string$dest(&_22); |
15957 | 15996 | } |
15958 | 15997 | or(&_19, &_20, &_21); |
@@ -15965,7 +16004,12 @@ | ||
15965 | 16004 | { |
15966 | 16005 | struct string _22; memset(&_22, 0, sizeof(struct string)); |
15967 | 16006 | init$fromliteral(&_22, "top_get$", 8); |
15968 | - strequ(&_21, &_22, &*callee); | |
16007 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
16008 | + { | |
16009 | + nonempty_to_string(&_23, &*callee); | |
16010 | + } | |
16011 | + strequ(&_21, &_22, &_23); | |
16012 | + string$dest(&_23); | |
15969 | 16013 | string$dest(&_22); |
15970 | 16014 | } |
15971 | 16015 | bool _22; memset(&_22, 0, sizeof(bool)); |
@@ -15972,7 +16016,12 @@ | ||
15972 | 16016 | { |
15973 | 16017 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
15974 | 16018 | init$fromliteral(&_23, "top_set$", 8); |
15975 | - strequ(&_22, &_23, &*callee); | |
16019 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
16020 | + { | |
16021 | + nonempty_to_string(&_24, &*callee); | |
16022 | + } | |
16023 | + strequ(&_22, &_23, &_24); | |
16024 | + string$dest(&_24); | |
15976 | 16025 | string$dest(&_23); |
15977 | 16026 | } |
15978 | 16027 | or(&_20, &_21, &_22); |
@@ -16002,7 +16051,12 @@ | ||
16002 | 16051 | } |
16003 | 16052 | { |
16004 | 16053 | const struct StreamOut *_21 = &(*streams).err; |
16005 | - PutStr(0 /* _20 */, &*_21, &*callee); | |
16054 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
16055 | + { | |
16056 | + nonempty_to_string(&_22, &*callee); | |
16057 | + } | |
16058 | + PutStr(0 /* _20 */, &*_21, &_22); | |
16059 | + string$dest(&_22); | |
16006 | 16060 | } |
16007 | 16061 | { |
16008 | 16062 | const struct StreamOut *_22 = &(*streams).err; |
@@ -16122,7 +16176,12 @@ | ||
16122 | 16176 | { |
16123 | 16177 | struct string _20; memset(&_20, 0, sizeof(struct string)); |
16124 | 16178 | init$fromliteral(&_20, "swap", 4); |
16125 | - strequ(&_19, &_20, &*callee); | |
16179 | + struct string _21; memset(&_21, 0, sizeof(struct string)); | |
16180 | + { | |
16181 | + nonempty_to_string(&_21, &*callee); | |
16182 | + } | |
16183 | + strequ(&_19, &_20, &_21); | |
16184 | + string$dest(&_21); | |
16126 | 16185 | string$dest(&_20); |
16127 | 16186 | } |
16128 | 16187 | bool _20; memset(&_20, 0, sizeof(bool)); |
@@ -16129,7 +16188,12 @@ | ||
16129 | 16188 | { |
16130 | 16189 | struct string _21; memset(&_21, 0, sizeof(struct string)); |
16131 | 16190 | init$fromliteral(&_21, "reverse", 7); |
16132 | - strequ(&_20, &_21, &*callee); | |
16191 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
16192 | + { | |
16193 | + nonempty_to_string(&_22, &*callee); | |
16194 | + } | |
16195 | + strequ(&_20, &_21, &_22); | |
16196 | + string$dest(&_22); | |
16133 | 16197 | string$dest(&_21); |
16134 | 16198 | } |
16135 | 16199 | or(&_18, &_19, &_20); |
@@ -16151,7 +16215,12 @@ | ||
16151 | 16215 | } |
16152 | 16216 | { |
16153 | 16217 | const struct StreamOut *_23 = &(*streams).err; |
16154 | - PutStr(0 /* _22 */, &*_23, &*callee); | |
16218 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
16219 | + { | |
16220 | + nonempty_to_string(&_24, &*callee); | |
16221 | + } | |
16222 | + PutStr(0 /* _22 */, &*_23, &_24); | |
16223 | + string$dest(&_24); | |
16155 | 16224 | } |
16156 | 16225 | { |
16157 | 16226 | const struct StreamOut *_24 = &(*streams).err; |
@@ -16180,13 +16249,13 @@ | ||
16180 | 16249 | } |
16181 | 16250 | uint64_t _n; memset(&_n, 0, sizeof(uint64_t)); |
16182 | 16251 | { |
16183 | - const struct stack/*u8*/ *_19 = &(*callee).data; | |
16252 | + const struct stack/*u8*/ *_19 = &(*callee).rest.data; | |
16184 | 16253 | size(&_n, &*_19); |
16185 | 16254 | } |
16186 | 16255 | bool _20; |
16187 | 16256 | { |
16188 | 16257 | uint64_t _21; memset(&_21, 0, sizeof(uint64_t)); |
16189 | - _21 = 3; | |
16258 | + _21 = 2; | |
16190 | 16259 | _20 = _n >= _21; |
16191 | 16260 | _IGNORE_(_21); |
16192 | 16261 | } |
@@ -16195,7 +16264,7 @@ | ||
16195 | 16264 | bool _22; |
16196 | 16265 | { |
16197 | 16266 | uint64_t _23; memset(&_23, 0, sizeof(uint64_t)); |
16198 | - _23 = 6; | |
16267 | + _23 = 5; | |
16199 | 16268 | _22 = _n >= _23; |
16200 | 16269 | _IGNORE_(_23); |
16201 | 16270 | } |
@@ -16211,21 +16280,8 @@ | ||
16211 | 16280 | { |
16212 | 16281 | uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); |
16213 | 16282 | _28 = 80; |
16214 | - uint8_t _29; memset(&_29, 0, sizeof(uint8_t)); | |
16215 | - { | |
16216 | - const struct stack/*u8*/ *_30 = &(*callee).data; | |
16217 | - uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); | |
16218 | - { | |
16219 | - uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); | |
16220 | - _32 = 1; | |
16221 | - _31 = _n - _32; | |
16222 | - _IGNORE_(_32); | |
16223 | - } | |
16224 | - at_get$(&_29, &*_30, &_31, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3323); | |
16225 | - _IGNORE_(_31); | |
16226 | - } | |
16227 | - _27 = _28 == _29; | |
16228 | - _IGNORE_(_29); | |
16283 | + const uint8_t *_29 = &(*callee).top; | |
16284 | + _27 = _28 == *_29; | |
16229 | 16285 | _IGNORE_(_28); |
16230 | 16286 | } |
16231 | 16287 | bool _28; memset(&_28, 0, sizeof(bool)); |
@@ -16234,15 +16290,15 @@ | ||
16234 | 16290 | _29 = 114; |
16235 | 16291 | uint8_t _30; memset(&_30, 0, sizeof(uint8_t)); |
16236 | 16292 | { |
16237 | - const struct stack/*u8*/ *_31 = &(*callee).data; | |
16293 | + const struct stack/*u8*/ *_31 = &(*callee).rest.data; | |
16238 | 16294 | uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); |
16239 | 16295 | { |
16240 | 16296 | uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); |
16241 | - _33 = 2; | |
16297 | + _33 = 1; | |
16242 | 16298 | _32 = _n - _33; |
16243 | 16299 | _IGNORE_(_33); |
16244 | 16300 | } |
16245 | - at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3324); | |
16301 | + at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3344); | |
16246 | 16302 | _IGNORE_(_32); |
16247 | 16303 | } |
16248 | 16304 | _28 = _29 == _30; |
@@ -16261,15 +16317,15 @@ | ||
16261 | 16317 | _29 = 105; |
16262 | 16318 | uint8_t _30; memset(&_30, 0, sizeof(uint8_t)); |
16263 | 16319 | { |
16264 | - const struct stack/*u8*/ *_31 = &(*callee).data; | |
16320 | + const struct stack/*u8*/ *_31 = &(*callee).rest.data; | |
16265 | 16321 | uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); |
16266 | 16322 | { |
16267 | 16323 | uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); |
16268 | - _33 = 3; | |
16324 | + _33 = 2; | |
16269 | 16325 | _32 = _n - _33; |
16270 | 16326 | _IGNORE_(_33); |
16271 | 16327 | } |
16272 | - at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3328); | |
16328 | + at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3348); | |
16273 | 16329 | _IGNORE_(_32); |
16274 | 16330 | } |
16275 | 16331 | _28 = _29 == _30; |
@@ -16282,15 +16338,15 @@ | ||
16282 | 16338 | _30 = 110; |
16283 | 16339 | uint8_t _31; memset(&_31, 0, sizeof(uint8_t)); |
16284 | 16340 | { |
16285 | - const struct stack/*u8*/ *_32 = &(*callee).data; | |
16341 | + const struct stack/*u8*/ *_32 = &(*callee).rest.data; | |
16286 | 16342 | uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); |
16287 | 16343 | { |
16288 | 16344 | uint64_t _34; memset(&_34, 0, sizeof(uint64_t)); |
16289 | - _34 = 4; | |
16345 | + _34 = 3; | |
16290 | 16346 | _33 = _n - _34; |
16291 | 16347 | _IGNORE_(_34); |
16292 | 16348 | } |
16293 | - at_get$(&_31, &*_32, &_33, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3329); | |
16349 | + at_get$(&_31, &*_32, &_33, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3349); | |
16294 | 16350 | _IGNORE_(_33); |
16295 | 16351 | } |
16296 | 16352 | _29 = _30 == _31; |
@@ -16313,15 +16369,15 @@ | ||
16313 | 16369 | _28 = 116; |
16314 | 16370 | uint8_t _29; memset(&_29, 0, sizeof(uint8_t)); |
16315 | 16371 | { |
16316 | - const struct stack/*u8*/ *_30 = &(*callee).data; | |
16372 | + const struct stack/*u8*/ *_30 = &(*callee).rest.data; | |
16317 | 16373 | uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); |
16318 | 16374 | { |
16319 | 16375 | uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); |
16320 | - _32 = 5; | |
16376 | + _32 = 4; | |
16321 | 16377 | _31 = _n - _32; |
16322 | 16378 | _IGNORE_(_32); |
16323 | 16379 | } |
16324 | - at_get$(&_29, &*_30, &_31, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3334); | |
16380 | + at_get$(&_29, &*_30, &_31, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3354); | |
16325 | 16381 | _IGNORE_(_31); |
16326 | 16382 | } |
16327 | 16383 | _27 = _28 == _29; |
@@ -16334,15 +16390,15 @@ | ||
16334 | 16390 | _29 = 36; |
16335 | 16391 | uint8_t _30; memset(&_30, 0, sizeof(uint8_t)); |
16336 | 16392 | { |
16337 | - const struct stack/*u8*/ *_31 = &(*callee).data; | |
16393 | + const struct stack/*u8*/ *_31 = &(*callee).rest.data; | |
16338 | 16394 | uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); |
16339 | 16395 | { |
16340 | 16396 | uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); |
16341 | - _33 = 6; | |
16397 | + _33 = 5; | |
16342 | 16398 | _32 = _n - _33; |
16343 | 16399 | _IGNORE_(_33); |
16344 | 16400 | } |
16345 | - at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3335); | |
16401 | + at_get$(&_30, &*_31, &_32, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3355); | |
16346 | 16402 | _IGNORE_(_32); |
16347 | 16403 | } |
16348 | 16404 | _28 = _29 == _30; |
@@ -16372,7 +16428,12 @@ | ||
16372 | 16428 | } |
16373 | 16429 | { |
16374 | 16430 | const struct StreamOut *_29 = &(*streams).err; |
16375 | - PutStr(0 /* _28 */, &*_29, &*callee); | |
16431 | + struct string _30; memset(&_30, 0, sizeof(struct string)); | |
16432 | + { | |
16433 | + nonempty_to_string(&_30, &*callee); | |
16434 | + } | |
16435 | + PutStr(0 /* _28 */, &*_29, &_30); | |
16436 | + string$dest(&_30); | |
16376 | 16437 | } |
16377 | 16438 | { |
16378 | 16439 | const struct StreamOut *_30 = &(*streams).err; |
@@ -16450,21 +16511,8 @@ | ||
16450 | 16511 | { |
16451 | 16512 | uint8_t _27; memset(&_27, 0, sizeof(uint8_t)); |
16452 | 16513 | _27 = 99; |
16453 | - uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); | |
16454 | - { | |
16455 | - const struct stack/*u8*/ *_29 = &(*callee).data; | |
16456 | - uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); | |
16457 | - { | |
16458 | - uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); | |
16459 | - _31 = 1; | |
16460 | - _30 = _n - _31; | |
16461 | - _IGNORE_(_31); | |
16462 | - } | |
16463 | - at_get$(&_28, &*_29, &_30, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3368); | |
16464 | - _IGNORE_(_30); | |
16465 | - } | |
16466 | - _26 = _27 == _28; | |
16467 | - _IGNORE_(_28); | |
16514 | + const uint8_t *_28 = &(*callee).top; | |
16515 | + _26 = _27 == *_28; | |
16468 | 16516 | _IGNORE_(_27); |
16469 | 16517 | } |
16470 | 16518 | bool _27; memset(&_27, 0, sizeof(bool)); |
@@ -16473,15 +16521,15 @@ | ||
16473 | 16521 | _28 = 109; |
16474 | 16522 | uint8_t _29; memset(&_29, 0, sizeof(uint8_t)); |
16475 | 16523 | { |
16476 | - const struct stack/*u8*/ *_30 = &(*callee).data; | |
16524 | + const struct stack/*u8*/ *_30 = &(*callee).rest.data; | |
16477 | 16525 | uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); |
16478 | 16526 | { |
16479 | 16527 | uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); |
16480 | - _32 = 2; | |
16528 | + _32 = 1; | |
16481 | 16529 | _31 = _n - _32; |
16482 | 16530 | _IGNORE_(_32); |
16483 | 16531 | } |
16484 | - at_get$(&_29, &*_30, &_31, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3369); | |
16532 | + at_get$(&_29, &*_30, &_31, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3389); | |
16485 | 16533 | _IGNORE_(_31); |
16486 | 16534 | } |
16487 | 16535 | _27 = _28 == _29; |
@@ -16498,15 +16546,15 @@ | ||
16498 | 16546 | _27 = 112; |
16499 | 16547 | uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); |
16500 | 16548 | { |
16501 | - const struct stack/*u8*/ *_29 = &(*callee).data; | |
16549 | + const struct stack/*u8*/ *_29 = &(*callee).rest.data; | |
16502 | 16550 | uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); |
16503 | 16551 | { |
16504 | 16552 | uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); |
16505 | - _31 = 3; | |
16553 | + _31 = 2; | |
16506 | 16554 | _30 = _n - _31; |
16507 | 16555 | _IGNORE_(_31); |
16508 | 16556 | } |
16509 | - at_get$(&_28, &*_29, &_30, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3371); | |
16557 | + at_get$(&_28, &*_29, &_30, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3391); | |
16510 | 16558 | _IGNORE_(_30); |
16511 | 16559 | } |
16512 | 16560 | _26 = _27 == _28; |
@@ -16532,7 +16580,12 @@ | ||
16532 | 16580 | } |
16533 | 16581 | { |
16534 | 16582 | const struct StreamOut *_29 = &(*streams).err; |
16535 | - PutStr(0 /* _28 */, &*_29, &*callee); | |
16583 | + struct string _30; memset(&_30, 0, sizeof(struct string)); | |
16584 | + { | |
16585 | + nonempty_to_string(&_30, &*callee); | |
16586 | + } | |
16587 | + PutStr(0 /* _28 */, &*_29, &_30); | |
16588 | + string$dest(&_30); | |
16536 | 16589 | } |
16537 | 16590 | { |
16538 | 16591 | const struct StreamOut *_30 = &(*streams).err; |
@@ -16606,7 +16659,12 @@ | ||
16606 | 16659 | { |
16607 | 16660 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
16608 | 16661 | init$fromliteral(&_23, "strcat$", 7); |
16609 | - strequ(&_22, &_23, &*callee); | |
16662 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
16663 | + { | |
16664 | + nonempty_to_string(&_24, &*callee); | |
16665 | + } | |
16666 | + strequ(&_22, &_23, &_24); | |
16667 | + string$dest(&_24); | |
16610 | 16668 | string$dest(&_23); |
16611 | 16669 | } |
16612 | 16670 | if(_22) |
@@ -16638,7 +16696,7 @@ | ||
16638 | 16696 | } |
16639 | 16697 | } |
16640 | 16698 | |
16641 | -void ParseArgsMore$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*string*/ *const argids, const struct string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
16699 | +void ParseArgsMore$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*nonempty_string*/ *const argids, const struct nonempty_string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
16642 | 16700 | { |
16643 | 16701 | { |
16644 | 16702 | bool _2; |
@@ -16695,7 +16753,12 @@ | ||
16695 | 16753 | } |
16696 | 16754 | { |
16697 | 16755 | const struct StreamOut *_9 = &(*streams).err; |
16698 | - PutStr(0 /* _8 */, &*_9, &*callee); | |
16756 | + struct string _10; memset(&_10, 0, sizeof(struct string)); | |
16757 | + { | |
16758 | + nonempty_to_string(&_10, &*callee); | |
16759 | + } | |
16760 | + PutStr(0 /* _8 */, &*_9, &_10); | |
16761 | + string$dest(&_10); | |
16699 | 16762 | } |
16700 | 16763 | { |
16701 | 16764 | const struct StreamOut *_10 = &(*streams).err; |
@@ -16757,7 +16820,7 @@ | ||
16757 | 16820 | { |
16758 | 16821 | size(&_7, &*argids); |
16759 | 16822 | } |
16760 | - at_get$(&_par, &*_6, &_7, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 3430); | |
16823 | + at_get$(&_par, &*_6, &_7, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 3450); | |
16761 | 16824 | _IGNORE_(_7); |
16762 | 16825 | } |
16763 | 16826 | struct qtypepure _partyp; memset(&_partyp, 0, sizeof(struct qtypepure)); |
@@ -16807,7 +16870,7 @@ | ||
16807 | 16870 | } |
16808 | 16871 | } |
16809 | 16872 | |
16810 | -void ParseArgs$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct def *const def, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const store, struct stack/*string*/ *const argids, const struct string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
16873 | +void ParseArgs$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct def *const def, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const store, struct stack/*nonempty_string*/ *const argids, const struct nonempty_string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
16811 | 16874 | { |
16812 | 16875 | { |
16813 | 16876 | bool _2; |
@@ -16853,7 +16916,12 @@ | ||
16853 | 16916 | } |
16854 | 16917 | { |
16855 | 16918 | const struct StreamOut *_7 = &(*streams).err; |
16856 | - PutStr(0 /* _6 */, &*_7, &*callee); | |
16919 | + struct string _8; memset(&_8, 0, sizeof(struct string)); | |
16920 | + { | |
16921 | + nonempty_to_string(&_8, &*callee); | |
16922 | + } | |
16923 | + PutStr(0 /* _6 */, &*_7, &_8); | |
16924 | + string$dest(&_8); | |
16857 | 16925 | } |
16858 | 16926 | { |
16859 | 16927 | const struct StreamOut *_8 = &(*streams).err; |
@@ -16915,7 +16983,7 @@ | ||
16915 | 16983 | { |
16916 | 16984 | size(&_6, &*argids); |
16917 | 16985 | } |
16918 | - at_get$(&_par, &*_5, &_6, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 3461); | |
16986 | + at_get$(&_par, &*_5, &_6, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 3481); | |
16919 | 16987 | _IGNORE_(_6); |
16920 | 16988 | } |
16921 | 16989 | struct qtypepure _partyp; memset(&_partyp, 0, sizeof(struct qtypepure)); |
@@ -17087,7 +17155,7 @@ | ||
17087 | 17155 | if(_1) |
17088 | 17156 | { |
17089 | 17157 | { |
17090 | - solid(&*_0, &*current, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3497); | |
17158 | + solid(&*_0, &*current, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3517); | |
17091 | 17159 | } |
17092 | 17160 | } |
17093 | 17161 | else |
@@ -17100,17 +17168,17 @@ | ||
17100 | 17168 | else |
17101 | 17169 | { |
17102 | 17170 | { |
17103 | - empty(&*_0, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3501); | |
17171 | + empty(&*_0, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3521); | |
17104 | 17172 | } |
17105 | 17173 | } |
17106 | 17174 | } |
17107 | 17175 | |
17108 | -void ParseArg$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct qtypepureid *const par, const struct requires_totality *const totality_, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*string*/ *const argids, const struct string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
17176 | +void ParseArg$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const store, const struct qtypepureid *const par, const struct requires_totality *const totality_, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const uint64_t *const parnr, const struct def *const def, struct stack/*nonempty_string*/ *const argids, const struct nonempty_string *const callee, const struct stack/*type_pure*/ *const st_, struct stack/*idpath*/ *const ips) | |
17109 | 17177 | { |
17110 | 17178 | { |
17111 | - struct string _id; memset(&_id, 0, sizeof(struct string)); | |
17179 | + struct string _ID; memset(&_ID, 0, sizeof(struct string)); | |
17112 | 17180 | { |
17113 | - ParseId$(&_id, &*streams, &*txtpos, &*level); | |
17181 | + ParseId$(&_ID, &*streams, &*txtpos, &*level); | |
17114 | 17182 | } |
17115 | 17183 | struct requires_totality _totality; memset(&_totality, 0, sizeof(struct requires_totality)); |
17116 | 17184 | const struct requires_totality *_1 = &(*totality_); |
@@ -17128,7 +17196,12 @@ | ||
17128 | 17196 | const struct totality_required *totality_ = ((*_1).totality_required).data; |
17129 | 17197 | bool _2; |
17130 | 17198 | { |
17131 | - strequ(&_2, &*callee, &*self); | |
17199 | + struct cmp _3; memset(&_3, 0, sizeof(struct cmp)); | |
17200 | + { | |
17201 | + cmp$nonempty_string(&_3, &*callee, &*self); | |
17202 | + } | |
17203 | + is_equ(&_2, &_3); | |
17204 | + cmp$dest(&_3); | |
17132 | 17205 | } |
17133 | 17206 | if(_2) |
17134 | 17207 | { |
@@ -17140,13 +17213,13 @@ | ||
17140 | 17213 | { |
17141 | 17214 | size(&_4, &*argids); |
17142 | 17215 | } |
17143 | - at_get$(&_rel, &*_3, &_4, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 3514); | |
17216 | + at_get$(&_rel, &*_3, &_4, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 3534); | |
17144 | 17217 | _IGNORE_(_4); |
17145 | 17218 | } |
17146 | 17219 | struct ReducedId _ri; memset(&_ri, 0, sizeof(struct ReducedId)); |
17147 | 17220 | { |
17148 | 17221 | const struct nonempty_string *_3 = &(_rel).id; |
17149 | - ReducedId(&_ri, &*_3, &_id); | |
17222 | + ReducedId(&_ri, &*_3, &_ID); | |
17150 | 17223 | } |
17151 | 17224 | struct proof_of_totality _ts; memset(&_ts, 0, sizeof(struct proof_of_totality)); |
17152 | 17225 | proof_of_totality$copy(&_ts, &(*totality_).status); |
@@ -17206,7 +17279,7 @@ | ||
17206 | 17279 | { |
17207 | 17280 | struct string _5; memset(&_5, 0, sizeof(struct string)); |
17208 | 17281 | init$fromliteral(&_5, "let", 3); |
17209 | - strequ(&_4, &_id, &_5); | |
17282 | + strequ(&_4, &_ID, &_5); | |
17210 | 17283 | string$dest(&_5); |
17211 | 17284 | } |
17212 | 17285 | if(_4) |
@@ -17245,7 +17318,7 @@ | ||
17245 | 17318 | struct stack/*qtypepureid*/ _provide_; memset(&_provide_, 0, sizeof(struct stack/*qtypepureid*/)); |
17246 | 17319 | { |
17247 | 17320 | const struct StreamOut *_7 = &(*streams).err; |
17248 | - ScopePathFindParOrVarAndMarkUsed$(&_provide_, &*_7, &*txtpos, &*sp, &_id); | |
17321 | + ScopePathFindParOrVarAndMarkUsed$(&_provide_, &*_7, &*txtpos, &*sp, &_ID); | |
17249 | 17322 | } |
17250 | 17323 | const struct stack/*qtypepureid*/ *_7 = &(_provide_); |
17251 | 17324 | if(!(*_7).size) |
@@ -17273,18 +17346,13 @@ | ||
17273 | 17346 | { |
17274 | 17347 | struct stack/*qtypepureid*/ _11; memset(&_11, 0, sizeof(struct stack/*qtypepureid*/)); |
17275 | 17348 | { |
17276 | - solid(&_11, &_mut_pv, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3554); | |
17349 | + solid(&_11, &_mut_pv, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3574); | |
17277 | 17350 | } |
17278 | - ParseExpr$(0 /* _10 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_11, &_id, &_totality, &*action, &*self, &*reduced_ids); | |
17351 | + ParseExpr$(0 /* _10 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_11, &_ID, &_totality, &*action, &*self, &*reduced_ids); | |
17279 | 17352 | free$(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
17280 | 17353 | } |
17281 | 17354 | { |
17282 | - struct string _12; memset(&_12, 0, sizeof(struct string)); | |
17283 | - { | |
17284 | - nonempty_to_string(&_12, &_provide_id); | |
17285 | - } | |
17286 | - push(0 /* _11 */, &*argids, &_12, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3556); | |
17287 | - string$dest(&_12); | |
17355 | + push(0 /* _11 */, &*argids, &_provide_id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3576); | |
17288 | 17356 | } |
17289 | 17357 | { |
17290 | 17358 | uint64_t _13; memset(&_13, 0, sizeof(uint64_t)); |
@@ -17400,7 +17468,7 @@ | ||
17400 | 17468 | } |
17401 | 17469 | } |
17402 | 17470 | { |
17403 | - push(0 /* _16 */, &*ips, &_ip, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3590); | |
17471 | + push(0 /* _16 */, &*ips, &_ip, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3610); | |
17404 | 17472 | } |
17405 | 17473 | free$(&_previous, sizeof(struct idpath), (void (*)(void *))idpath$dest); |
17406 | 17474 | } |
@@ -17413,13 +17481,8 @@ | ||
17413 | 17481 | } |
17414 | 17482 | } |
17415 | 17483 | { |
17416 | - struct string _14; memset(&_14, 0, sizeof(struct string)); | |
17417 | - { | |
17418 | - struct nonempty_string *_15 = &(_provide).id; | |
17419 | - nonempty_to_string(&_14, &*_15); | |
17420 | - } | |
17421 | - push(0 /* _13 */, &*argids, &_14, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3593); | |
17422 | - string$dest(&_14); | |
17484 | + struct nonempty_string *_14 = &(_provide).id; | |
17485 | + push(0 /* _13 */, &*argids, &*_14, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3613); | |
17423 | 17486 | } |
17424 | 17487 | bool _15; |
17425 | 17488 | { |
@@ -17470,11 +17533,11 @@ | ||
17470 | 17533 | } |
17471 | 17534 | free$(&_provide_, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
17472 | 17535 | requires_totality$dest(&_totality); |
17473 | - string$dest(&_id); | |
17536 | + string$dest(&_ID); | |
17474 | 17537 | } |
17475 | 17538 | } |
17476 | 17539 | |
17477 | -void SpecializeFunctionPure$(struct string *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct focus *const focus, const struct string *const name, const struct stack/*type_pure*/ *const subtype) | |
17540 | +void SpecializeFunctionPure$(struct nonempty_string *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct focus *const focus, const struct nonempty_string *const name, const struct stack/*type_pure*/ *const subtype) | |
17478 | 17541 | { |
17479 | 17542 | const struct focus *_1 = &(*focus); |
17480 | 17543 | switch((*_1).type) |
@@ -17481,7 +17544,7 @@ | ||
17481 | 17544 | { |
17482 | 17545 | case 0: // void general: |
17483 | 17546 | { |
17484 | - string$copy(&*_0, &(*name)); | |
17547 | + nonempty_string$copy(&*_0, &(*name)); | |
17485 | 17548 | break; |
17486 | 17549 | } |
17487 | 17550 | case 1: // void specialized: |
@@ -17499,21 +17562,31 @@ | ||
17499 | 17562 | } |
17500 | 17563 | { |
17501 | 17564 | const struct StreamOut *_5 = &(*streams).err; |
17502 | - PutStr(0 /* _4 */, &*_5, &*name); | |
17565 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
17566 | + { | |
17567 | + nonempty_to_string(&_6, &*name); | |
17568 | + } | |
17569 | + PutStr(0 /* _4 */, &*_5, &_6); | |
17570 | + string$dest(&_6); | |
17503 | 17571 | } |
17504 | 17572 | { |
17505 | 17573 | const struct StreamOut *_6 = &(*streams).err; |
17506 | 17574 | Fail$(0 /* _5 */, &*_6, &*txtpos); |
17507 | 17575 | } |
17508 | - struct string _6; memset(&_6, 0, sizeof(struct string)); | |
17576 | + struct nonempty_string _6; memset(&_6, 0, sizeof(struct nonempty_string)); | |
17509 | 17577 | { |
17510 | - struct string _7; memset(&_7, 0, sizeof(struct string)); | |
17511 | - init$fromliteral(&_7, "$", 1); | |
17512 | - strcat$(&_6, &_7, &*name, 3621); | |
17513 | - string$dest(&_7); | |
17578 | + uint8_t _7; memset(&_7, 0, sizeof(uint8_t)); | |
17579 | + _7 = 36; | |
17580 | + struct string _8; memset(&_8, 0, sizeof(struct string)); | |
17581 | + { | |
17582 | + nonempty_to_string(&_8, &*name); | |
17583 | + } | |
17584 | + nonempty_string(&_6, &_7, &_8); | |
17585 | + string$dest(&_8); | |
17586 | + _IGNORE_(_7); | |
17514 | 17587 | } |
17515 | - string$copy(&*_0, &_6); | |
17516 | - string$dest(&_6); | |
17588 | + nonempty_string$copy(&*_0, &_6); | |
17589 | + nonempty_string$dest(&_6); | |
17517 | 17590 | } |
17518 | 17591 | } |
17519 | 17592 | else |
@@ -17520,25 +17593,32 @@ | ||
17520 | 17593 | { |
17521 | 17594 | const struct type_pure *subtype = (*_2).data; |
17522 | 17595 | { |
17523 | - struct string _3; memset(&_3, 0, sizeof(struct string)); | |
17596 | + const uint8_t *_3 = &(*name).top; | |
17597 | + struct string _4; memset(&_4, 0, sizeof(struct string)); | |
17524 | 17598 | { |
17525 | - struct string _4; memset(&_4, 0, sizeof(struct string)); | |
17526 | - init$fromliteral(&_4, "$", 1); | |
17527 | - struct string _5; memset(&_5, 0, sizeof(struct string)); | |
17599 | + const struct string *_5 = &(*name).rest; | |
17600 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
17528 | 17601 | { |
17529 | - struct nonempty_string _6; memset(&_6, 0, sizeof(struct nonempty_string)); | |
17602 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
17603 | + init$fromliteral(&_7, "$", 1); | |
17604 | + struct string _8; memset(&_8, 0, sizeof(struct string)); | |
17530 | 17605 | { |
17531 | - getpurename(&_6, &*subtype); | |
17606 | + struct nonempty_string _9; memset(&_9, 0, sizeof(struct nonempty_string)); | |
17607 | + { | |
17608 | + getpurename(&_9, &*subtype); | |
17609 | + } | |
17610 | + nonempty_to_string(&_8, &_9); | |
17611 | + nonempty_string$dest(&_9); | |
17532 | 17612 | } |
17533 | - nonempty_to_string(&_5, &_6); | |
17534 | - nonempty_string$dest(&_6); | |
17613 | + strcat$(&_6, &_7, &_8, 3645); | |
17614 | + string$dest(&_8); | |
17615 | + string$dest(&_7); | |
17535 | 17616 | } |
17536 | - strcat$(&_3, &_4, &_5, 3623); | |
17537 | - string$dest(&_5); | |
17538 | - string$dest(&_4); | |
17617 | + strcat$(&_4, &*_5, &_6, 3645); | |
17618 | + string$dest(&_6); | |
17539 | 17619 | } |
17540 | - strcat$(&*_0, &*name, &_3, 3623); | |
17541 | - string$dest(&_3); | |
17620 | + nonempty_string(&*_0, &*_3, &_4); | |
17621 | + string$dest(&_4); | |
17542 | 17622 | } |
17543 | 17623 | } |
17544 | 17624 | break; |
@@ -17551,7 +17631,7 @@ | ||
17551 | 17631 | } |
17552 | 17632 | } |
17553 | 17633 | |
17554 | -void ParseCall$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct nonempty_string *const callee, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
17634 | +void ParseCall$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct nonempty_string *const callee, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
17555 | 17635 | { |
17556 | 17636 | { |
17557 | 17637 | uint64_t _tmpnr; memset(&_tmpnr, 0, sizeof(uint64_t)); |
@@ -17581,7 +17661,12 @@ | ||
17581 | 17661 | } |
17582 | 17662 | { |
17583 | 17663 | const struct StreamOut *_5 = &(*streams).err; |
17584 | - PutStr(0 /* _4 */, &*_5, &*self); | |
17664 | + struct string _6; memset(&_6, 0, sizeof(struct string)); | |
17665 | + { | |
17666 | + nonempty_to_string(&_6, &*self); | |
17667 | + } | |
17668 | + PutStr(0 /* _4 */, &*_5, &_6); | |
17669 | + string$dest(&_6); | |
17585 | 17670 | } |
17586 | 17671 | { |
17587 | 17672 | const struct StreamOut *_6 = &(*streams).err; |
@@ -17626,8 +17711,7 @@ | ||
17626 | 17711 | { |
17627 | 17712 | bool _7; |
17628 | 17713 | { |
17629 | - const struct string *_8 = &(*callee).rest; | |
17630 | - idpart(&_7, &*_8); | |
17714 | + idpart(&_7, &*callee); | |
17631 | 17715 | } |
17632 | 17716 | if(_7) |
17633 | 17717 | { |
@@ -17640,7 +17724,12 @@ | ||
17640 | 17724 | } |
17641 | 17725 | { |
17642 | 17726 | const struct StreamOut *_10 = &(*streams).err; |
17643 | - PutStr(0 /* _9 */, &*_10, &*self); | |
17727 | + struct string _11; memset(&_11, 0, sizeof(struct string)); | |
17728 | + { | |
17729 | + nonempty_to_string(&_11, &*self); | |
17730 | + } | |
17731 | + PutStr(0 /* _9 */, &*_10, &_11); | |
17732 | + string$dest(&_11); | |
17644 | 17733 | } |
17645 | 17734 | { |
17646 | 17735 | const struct StreamOut *_11 = &(*streams).err; |
@@ -17683,12 +17772,7 @@ | ||
17683 | 17772 | struct stack/*def*/ _def; memset(&_def, 0, sizeof(struct stack/*def*/)); |
17684 | 17773 | { |
17685 | 17774 | struct stack/*def*/ *_6 = &(*state).defs; |
17686 | - struct string _7; memset(&_7, 0, sizeof(struct string)); | |
17687 | - { | |
17688 | - nonempty_to_string(&_7, &*callee); | |
17689 | - } | |
17690 | - findFnDefAndMarkUsed(&_def, &*_6, &_7); | |
17691 | - string$dest(&_7); | |
17775 | + findFnDefAndMarkUsed(&_def, &*_6, &*callee); | |
17692 | 17776 | } |
17693 | 17777 | const struct stack/*def*/ *_6 = &(_def); |
17694 | 17778 | if(!(*_6).size) |
@@ -17777,28 +17861,23 @@ | ||
17777 | 17861 | EmitLet$(0 /* _14 */, &*_15, &*level, &*_16, &_newstore); |
17778 | 17862 | } |
17779 | 17863 | { |
17780 | - struct stack/*string*/ _16; memset(&_16, 0, sizeof(struct stack/*string*/)); | |
17864 | + struct stack/*nonempty_string*/ _16; memset(&_16, 0, sizeof(struct stack/*nonempty_string*/)); | |
17781 | 17865 | { |
17782 | - /*argids*/ stack(&_16, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3721); | |
17866 | + /*argids*/ stack(&_16, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3743); | |
17783 | 17867 | } |
17784 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
17868 | + struct nonempty_string _17; memset(&_17, 0, sizeof(struct nonempty_string)); | |
17785 | 17869 | { |
17786 | 17870 | const struct focus *_18 = &(*def).focus; |
17787 | - struct string _19; memset(&_19, 0, sizeof(struct string)); | |
17788 | - { | |
17789 | - nonempty_to_string(&_19, &*callee); | |
17790 | - } | |
17791 | - SpecializeFunctionPure$(&_17, &*streams, &*txtpos, &*_18, &_19, &_st_); | |
17792 | - string$dest(&_19); | |
17871 | + SpecializeFunctionPure$(&_17, &*streams, &*txtpos, &*_18, &*callee, &_st_); | |
17793 | 17872 | } |
17794 | 17873 | struct stack/*idpath*/ _18; memset(&_18, 0, sizeof(struct stack/*idpath*/)); |
17795 | 17874 | { |
17796 | - /*ips*/ stack(&_18, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3721); | |
17875 | + /*ips*/ stack(&_18, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3743); | |
17797 | 17876 | } |
17798 | 17877 | ParseArgs$(0 /* _15 */, &*streams, &*txtpos, &*state, &*level, &*sp, &_tmpnr, &*def, &*totality, &*action, &*self, &*reduced_ids, &_newstore, &_16, &_17, &_st_, &_18); |
17799 | 17878 | free$(&_18, sizeof(struct idpath), (void (*)(void *))idpath$dest); |
17800 | - string$dest(&_17); | |
17801 | - free$(&_16, sizeof(struct string), (void (*)(void *))string$dest); | |
17879 | + nonempty_string$dest(&_17); | |
17880 | + free$(&_16, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
17802 | 17881 | } |
17803 | 17882 | { |
17804 | 17883 | const struct StreamOut *_17 = &(*streams).out; |
@@ -17841,37 +17920,27 @@ | ||
17841 | 17920 | { |
17842 | 17921 | { |
17843 | 17922 | const struct StreamOut *_16 = &(*streams).err; |
17844 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
17845 | - { | |
17846 | - nonempty_to_string(&_17, &*callee); | |
17847 | - } | |
17848 | - const struct qtypepure *_18 = &(*store).qt; | |
17849 | - AssertResultTypePure$(0 /* _15 */, &*_16, &*txtpos, &_17, &*_18, &_retype); | |
17850 | - string$dest(&_17); | |
17923 | + const struct qtypepure *_17 = &(*store).qt; | |
17924 | + AssertResultTypePure$(0 /* _15 */, &*_16, &*txtpos, &*callee, &*_17, &_retype); | |
17851 | 17925 | } |
17852 | 17926 | { |
17853 | - struct stack/*string*/ _17; memset(&_17, 0, sizeof(struct stack/*string*/)); | |
17927 | + struct stack/*nonempty_string*/ _17; memset(&_17, 0, sizeof(struct stack/*nonempty_string*/)); | |
17854 | 17928 | { |
17855 | - /*argids*/ stack(&_17, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3727); | |
17929 | + /*argids*/ stack(&_17, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3749); | |
17856 | 17930 | } |
17857 | - struct string _18; memset(&_18, 0, sizeof(struct string)); | |
17931 | + struct nonempty_string _18; memset(&_18, 0, sizeof(struct nonempty_string)); | |
17858 | 17932 | { |
17859 | 17933 | const struct focus *_19 = &(*def).focus; |
17860 | - struct string _20; memset(&_20, 0, sizeof(struct string)); | |
17861 | - { | |
17862 | - nonempty_to_string(&_20, &*callee); | |
17863 | - } | |
17864 | - SpecializeFunctionPure$(&_18, &*streams, &*txtpos, &*_19, &_20, &_st_); | |
17865 | - string$dest(&_20); | |
17934 | + SpecializeFunctionPure$(&_18, &*streams, &*txtpos, &*_19, &*callee, &_st_); | |
17866 | 17935 | } |
17867 | 17936 | struct stack/*idpath*/ _19; memset(&_19, 0, sizeof(struct stack/*idpath*/)); |
17868 | 17937 | { |
17869 | - /*ids*/ stack(&_19, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3727); | |
17938 | + /*ids*/ stack(&_19, sizeof(struct idpath), (void (*)(void *))idpath$dest, (void (*)(void *, const void *))idpath$copy, 3749); | |
17870 | 17939 | } |
17871 | 17940 | ParseArgs$(0 /* _16 */, &*streams, &*txtpos, &*state, &*level, &*sp, &_tmpnr, &*def, &*totality, &*action, &*self, &*reduced_ids, &*store, &_17, &_18, &_st_, &_19); |
17872 | 17941 | free$(&_19, sizeof(struct idpath), (void (*)(void *))idpath$dest); |
17873 | - string$dest(&_18); | |
17874 | - free$(&_17, sizeof(struct string), (void (*)(void *))string$dest); | |
17942 | + nonempty_string$dest(&_18); | |
17943 | + free$(&_17, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
17875 | 17944 | } |
17876 | 17945 | } |
17877 | 17946 | } |
@@ -17994,7 +18063,7 @@ | ||
17994 | 18063 | } |
17995 | 18064 | } |
17996 | 18065 | |
17997 | -void ParseIfStatement$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const provide) | |
18066 | +void ParseIfStatement$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const provide) | |
17998 | 18067 | { |
17999 | 18068 | { |
18000 | 18069 | struct qtypepureid _pred; memset(&_pred, 0, sizeof(struct qtypepureid)); |
@@ -18045,7 +18114,7 @@ | ||
18045 | 18114 | { |
18046 | 18115 | struct stack/*qtypepureid*/ _5; memset(&_5, 0, sizeof(struct stack/*qtypepureid*/)); |
18047 | 18116 | { |
18048 | - solid(&_5, &_pred, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3759); | |
18117 | + solid(&_5, &_pred, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3781); | |
18049 | 18118 | } |
18050 | 18119 | struct string _6; memset(&_6, 0, sizeof(struct string)); |
18051 | 18120 | { |
@@ -18117,7 +18186,7 @@ | ||
18117 | 18186 | { |
18118 | 18187 | struct stack/*qtypepureid*/ _12; memset(&_12, 0, sizeof(struct stack/*qtypepureid*/)); |
18119 | 18188 | { |
18120 | - solid(&_12, &*provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3768); | |
18189 | + solid(&_12, &*provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3790); | |
18121 | 18190 | } |
18122 | 18191 | ParseBlock$(0 /* _11 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_12, &*totality, &*action, &*self, &*reduced_ids); |
18123 | 18192 | free$(&_12, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -18176,7 +18245,7 @@ | ||
18176 | 18245 | } |
18177 | 18246 | struct stack/*qtypepureid*/ _22; memset(&_22, 0, sizeof(struct stack/*qtypepureid*/)); |
18178 | 18247 | { |
18179 | - solid(&_22, &*provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3779); | |
18248 | + solid(&_22, &*provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3801); | |
18180 | 18249 | } |
18181 | 18250 | ParseBlockRaw$(0 /* _20 */, &*streams, &*txtpos, &*state, &_21, &*sp, &*tmpnr, &_22, &*totality, &*action, &*self, &*reduced_ids); |
18182 | 18251 | free$(&_22, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -18300,7 +18369,7 @@ | ||
18300 | 18369 | } |
18301 | 18370 | } |
18302 | 18371 | |
18303 | -void ParseAssign$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const id) | |
18372 | +void ParseAssign$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const id) | |
18304 | 18373 | { |
18305 | 18374 | { |
18306 | 18375 | struct stack/*qtypepureid*/ _provide_; memset(&_provide_, 0, sizeof(struct stack/*qtypepureid*/)); |
@@ -18357,7 +18426,7 @@ | ||
18357 | 18426 | { |
18358 | 18427 | struct stack/*qtypepureid*/ _8; memset(&_8, 0, sizeof(struct stack/*qtypepureid*/)); |
18359 | 18428 | { |
18360 | - solid(&_8, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3821); | |
18429 | + solid(&_8, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3843); | |
18361 | 18430 | } |
18362 | 18431 | ParseBlock$(0 /* _7 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_8, &*totality, &*action, &*self, &*reduced_ids); |
18363 | 18432 | free$(&_8, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -18415,7 +18484,7 @@ | ||
18415 | 18484 | uint8_t _8; memset(&_8, 0, sizeof(uint8_t)); |
18416 | 18485 | { |
18417 | 18486 | struct stack/*u8*/ *_9 = &(*id).data; |
18418 | - pop$(&_8, &*_9, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3837); | |
18487 | + pop$(&_8, &*_9, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 3859); | |
18419 | 18488 | } |
18420 | 18489 | nonempty_string(&_7, &_8, &*id); |
18421 | 18490 | _IGNORE_(_8); |
@@ -18442,7 +18511,7 @@ | ||
18442 | 18511 | } |
18443 | 18512 | struct stack/*qtypepureid*/ _12; memset(&_12, 0, sizeof(struct stack/*qtypepureid*/)); |
18444 | 18513 | { |
18445 | - solid(&_12, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3840); | |
18514 | + solid(&_12, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3862); | |
18446 | 18515 | } |
18447 | 18516 | ParseCall$(0 /* _10 */, &*streams, &*txtpos, &*state, &_11, &*sp, &*tmpnr, &_12, &*id, &*totality, &*action, &*self, &*reduced_ids); |
18448 | 18517 | free$(&_12, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -18510,7 +18579,7 @@ | ||
18510 | 18579 | { |
18511 | 18580 | struct stack/*qtypepureid*/ _9; memset(&_9, 0, sizeof(struct stack/*qtypepureid*/)); |
18512 | 18581 | { |
18513 | - solid(&_9, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3853); | |
18582 | + solid(&_9, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3875); | |
18514 | 18583 | } |
18515 | 18584 | struct string _10; memset(&_10, 0, sizeof(struct string)); |
18516 | 18585 | { |
@@ -18577,7 +18646,7 @@ | ||
18577 | 18646 | { |
18578 | 18647 | struct stack/*qtypepureid*/ _12; memset(&_12, 0, sizeof(struct stack/*qtypepureid*/)); |
18579 | 18648 | { |
18580 | - solid(&_12, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3876); | |
18649 | + solid(&_12, &_provide, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 3898); | |
18581 | 18650 | } |
18582 | 18651 | ParseExpr$(0 /* _11 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_12, &*id, &*totality, &*action, &*self, &*reduced_ids); |
18583 | 18652 | free$(&_12, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -18593,7 +18662,7 @@ | ||
18593 | 18662 | } |
18594 | 18663 | } |
18595 | 18664 | |
18596 | -void ParseCasesBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const par, const struct type_mode *const qualifier, const bool *const typed, const struct string *const solidid, const struct typepureid *const ti) | |
18665 | +void ParseCasesBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct nonempty_string *const par, const struct type_mode *const qualifier, const bool *const typed, const struct nonempty_string *const solidid, const struct typepureid *const ti) | |
18597 | 18666 | { |
18598 | 18667 | { |
18599 | 18668 | { |
@@ -18619,7 +18688,12 @@ | ||
18619 | 18688 | { |
18620 | 18689 | uint8_t _6; memset(&_6, 0, sizeof(uint8_t)); |
18621 | 18690 | _6 = 42; |
18622 | - nonempty_string(&_5, &_6, &*solidid); | |
18691 | + struct string _7; memset(&_7, 0, sizeof(struct string)); | |
18692 | + { | |
18693 | + nonempty_to_string(&_7, &*solidid); | |
18694 | + } | |
18695 | + nonempty_string(&_5, &_6, &_7); | |
18696 | + string$dest(&_7); | |
18623 | 18697 | _IGNORE_(_6); |
18624 | 18698 | } |
18625 | 18699 | qtypepureid(&_qti, &_4, &_5); |
@@ -18651,7 +18725,12 @@ | ||
18651 | 18725 | } |
18652 | 18726 | { |
18653 | 18727 | const struct StreamOut *_8 = &(*streams).out; |
18654 | - PutStr(0 /* _7 */, &*_8, &*par); | |
18728 | + struct string _9; memset(&_9, 0, sizeof(struct string)); | |
18729 | + { | |
18730 | + nonempty_to_string(&_9, &*par); | |
18731 | + } | |
18732 | + PutStr(0 /* _7 */, &*_8, &_9); | |
18733 | + string$dest(&_9); | |
18655 | 18734 | } |
18656 | 18735 | { |
18657 | 18736 | const struct StreamOut *_9 = &(*streams).out; |
@@ -18683,7 +18762,7 @@ | ||
18683 | 18762 | { |
18684 | 18763 | varinit(&_13, &_qti); |
18685 | 18764 | } |
18686 | - push(0 /* _11 */, &*_12, &_13, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3892); | |
18765 | + push(0 /* _11 */, &*_12, &_13, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3914); | |
18687 | 18766 | var$dest(&_13); |
18688 | 18767 | } |
18689 | 18768 | qtypepureid$dest(&_qti); |
@@ -18714,7 +18793,12 @@ | ||
18714 | 18793 | { |
18715 | 18794 | uint8_t _9; memset(&_9, 0, sizeof(uint8_t)); |
18716 | 18795 | _9 = 42; |
18717 | - nonempty_string(&_8, &_9, &*solidid); | |
18796 | + struct string _10; memset(&_10, 0, sizeof(struct string)); | |
18797 | + { | |
18798 | + nonempty_to_string(&_10, &*solidid); | |
18799 | + } | |
18800 | + nonempty_string(&_8, &_9, &_10); | |
18801 | + string$dest(&_10); | |
18718 | 18802 | _IGNORE_(_9); |
18719 | 18803 | } |
18720 | 18804 | qtypepureid(&_qti, &_7, &_8); |
@@ -18746,7 +18830,12 @@ | ||
18746 | 18830 | } |
18747 | 18831 | { |
18748 | 18832 | const struct StreamOut *_11 = &(*streams).out; |
18749 | - PutStr(0 /* _10 */, &*_11, &*par); | |
18833 | + struct string _12; memset(&_12, 0, sizeof(struct string)); | |
18834 | + { | |
18835 | + nonempty_to_string(&_12, &*par); | |
18836 | + } | |
18837 | + PutStr(0 /* _10 */, &*_11, &_12); | |
18838 | + string$dest(&_12); | |
18750 | 18839 | } |
18751 | 18840 | { |
18752 | 18841 | const struct StreamOut *_12 = &(*streams).out; |
@@ -18778,7 +18867,7 @@ | ||
18778 | 18867 | { |
18779 | 18868 | varinit(&_16, &_qti); |
18780 | 18869 | } |
18781 | - push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3902); | |
18870 | + push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3924); | |
18782 | 18871 | var$dest(&_16); |
18783 | 18872 | } |
18784 | 18873 | qtypepureid$dest(&_qti); |
@@ -18799,7 +18888,12 @@ | ||
18799 | 18888 | { |
18800 | 18889 | uint8_t _10; memset(&_10, 0, sizeof(uint8_t)); |
18801 | 18890 | _10 = 42; |
18802 | - nonempty_string(&_9, &_10, &*solidid); | |
18891 | + struct string _11; memset(&_11, 0, sizeof(struct string)); | |
18892 | + { | |
18893 | + nonempty_to_string(&_11, &*solidid); | |
18894 | + } | |
18895 | + nonempty_string(&_9, &_10, &_11); | |
18896 | + string$dest(&_11); | |
18803 | 18897 | _IGNORE_(_10); |
18804 | 18898 | } |
18805 | 18899 | qtypepureid(&_qti, &_8, &_9); |
@@ -18831,7 +18925,12 @@ | ||
18831 | 18925 | } |
18832 | 18926 | { |
18833 | 18927 | const struct StreamOut *_12 = &(*streams).out; |
18834 | - PutStr(0 /* _11 */, &*_12, &*par); | |
18928 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
18929 | + { | |
18930 | + nonempty_to_string(&_13, &*par); | |
18931 | + } | |
18932 | + PutStr(0 /* _11 */, &*_12, &_13); | |
18933 | + string$dest(&_13); | |
18835 | 18934 | } |
18836 | 18935 | { |
18837 | 18936 | const struct StreamOut *_13 = &(*streams).out; |
@@ -18863,7 +18962,7 @@ | ||
18863 | 18962 | { |
18864 | 18963 | varinit(&_17, &_qti); |
18865 | 18964 | } |
18866 | - push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3908); | |
18965 | + push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3930); | |
18867 | 18966 | var$dest(&_17); |
18868 | 18967 | } |
18869 | 18968 | qtypepureid$dest(&_qti); |
@@ -18884,7 +18983,12 @@ | ||
18884 | 18983 | { |
18885 | 18984 | uint8_t _11; memset(&_11, 0, sizeof(uint8_t)); |
18886 | 18985 | _11 = 42; |
18887 | - nonempty_string(&_10, &_11, &*solidid); | |
18986 | + struct string _12; memset(&_12, 0, sizeof(struct string)); | |
18987 | + { | |
18988 | + nonempty_to_string(&_12, &*solidid); | |
18989 | + } | |
18990 | + nonempty_string(&_10, &_11, &_12); | |
18991 | + string$dest(&_12); | |
18888 | 18992 | _IGNORE_(_11); |
18889 | 18993 | } |
18890 | 18994 | qtypepureid(&_qti, &_9, &_10); |
@@ -18916,7 +19020,12 @@ | ||
18916 | 19020 | } |
18917 | 19021 | { |
18918 | 19022 | const struct StreamOut *_13 = &(*streams).out; |
18919 | - PutStr(0 /* _12 */, &*_13, &*par); | |
19023 | + struct string _14; memset(&_14, 0, sizeof(struct string)); | |
19024 | + { | |
19025 | + nonempty_to_string(&_14, &*par); | |
19026 | + } | |
19027 | + PutStr(0 /* _12 */, &*_13, &_14); | |
19028 | + string$dest(&_14); | |
18920 | 19029 | } |
18921 | 19030 | { |
18922 | 19031 | const struct StreamOut *_14 = &(*streams).out; |
@@ -18948,7 +19057,7 @@ | ||
18948 | 19057 | { |
18949 | 19058 | varinit(&_18, &_qti); |
18950 | 19059 | } |
18951 | - push(0 /* _16 */, &*_17, &_18, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3914); | |
19060 | + push(0 /* _16 */, &*_17, &_18, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3936); | |
18952 | 19061 | var$dest(&_18); |
18953 | 19062 | } |
18954 | 19063 | qtypepureid$dest(&_qti); |
@@ -18974,7 +19083,12 @@ | ||
18974 | 19083 | { |
18975 | 19084 | uint8_t _12; memset(&_12, 0, sizeof(uint8_t)); |
18976 | 19085 | _12 = 42; |
18977 | - nonempty_string(&_11, &_12, &*solidid); | |
19086 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
19087 | + { | |
19088 | + nonempty_to_string(&_13, &*solidid); | |
19089 | + } | |
19090 | + nonempty_string(&_11, &_12, &_13); | |
19091 | + string$dest(&_13); | |
18978 | 19092 | _IGNORE_(_12); |
18979 | 19093 | } |
18980 | 19094 | qtypepureid(&_qti, &_10, &_11); |
@@ -19006,7 +19120,12 @@ | ||
19006 | 19120 | } |
19007 | 19121 | { |
19008 | 19122 | const struct StreamOut *_14 = &(*streams).out; |
19009 | - PutStr(0 /* _13 */, &*_14, &*par); | |
19123 | + struct string _15; memset(&_15, 0, sizeof(struct string)); | |
19124 | + { | |
19125 | + nonempty_to_string(&_15, &*par); | |
19126 | + } | |
19127 | + PutStr(0 /* _13 */, &*_14, &_15); | |
19128 | + string$dest(&_15); | |
19010 | 19129 | } |
19011 | 19130 | { |
19012 | 19131 | const struct StreamOut *_15 = &(*streams).out; |
@@ -19038,7 +19157,7 @@ | ||
19038 | 19157 | { |
19039 | 19158 | varinit(&_19, &_qti); |
19040 | 19159 | } |
19041 | - push(0 /* _17 */, &*_18, &_19, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3920); | |
19160 | + push(0 /* _17 */, &*_18, &_19, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3942); | |
19042 | 19161 | var$dest(&_19); |
19043 | 19162 | } |
19044 | 19163 | qtypepureid$dest(&_qti); |
@@ -19104,15 +19223,20 @@ | ||
19104 | 19223 | bool _8; |
19105 | 19224 | { |
19106 | 19225 | struct stack/*var*/ *_9 = &(*sp).current.elems; |
19107 | - struct string _10; memset(&_10, 0, sizeof(struct string)); | |
19226 | + struct nonempty_string _10; memset(&_10, 0, sizeof(struct nonempty_string)); | |
19108 | 19227 | { |
19109 | 19228 | uint8_t _11; memset(&_11, 0, sizeof(uint8_t)); |
19110 | 19229 | _11 = 42; |
19111 | - preapp(&_10, &_11, &*solidid); | |
19230 | + struct string _12; memset(&_12, 0, sizeof(struct string)); | |
19231 | + { | |
19232 | + nonempty_to_string(&_12, &*solidid); | |
19233 | + } | |
19234 | + nonempty_string(&_10, &_11, &_12); | |
19235 | + string$dest(&_12); | |
19112 | 19236 | _IGNORE_(_11); |
19113 | 19237 | } |
19114 | 19238 | find_var_report_unused_and_mark_used(&_8, &*_9, &_10); |
19115 | - string$dest(&_10); | |
19239 | + nonempty_string$dest(&_10); | |
19116 | 19240 | } |
19117 | 19241 | if(_8) |
19118 | 19242 | { |
@@ -19137,7 +19261,12 @@ | ||
19137 | 19261 | } |
19138 | 19262 | { |
19139 | 19263 | const struct StreamOut *_12 = &(*streams).out; |
19140 | - PutStr(0 /* _11 */, &*_12, &*solidid); | |
19264 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
19265 | + { | |
19266 | + nonempty_to_string(&_13, &*solidid); | |
19267 | + } | |
19268 | + PutStr(0 /* _11 */, &*_12, &_13); | |
19269 | + string$dest(&_13); | |
19141 | 19270 | } |
19142 | 19271 | { |
19143 | 19272 | const struct StreamOut *_13 = &(*streams).out; |
@@ -19155,7 +19284,7 @@ | ||
19155 | 19284 | } |
19156 | 19285 | } |
19157 | 19286 | |
19158 | -void ParseCases$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const par, const struct type_mode *const qualifier, const struct stack/*typepureid*/ *const elems, const uint64_t *const idx, const bool *const typed, const struct string *const shadow) | |
19287 | +void ParseCases$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct nonempty_string *const par, const struct type_mode *const qualifier, const struct stack/*typepureid*/ *const elems, const uint64_t *const idx, const bool *const typed, const struct nonempty_string *const shadow) | |
19159 | 19288 | { |
19160 | 19289 | { |
19161 | 19290 | bool _2; |
@@ -19171,13 +19300,13 @@ | ||
19171 | 19300 | { |
19172 | 19301 | struct typepureid _ti; memset(&_ti, 0, sizeof(struct typepureid)); |
19173 | 19302 | { |
19174 | - at_get$(&_ti, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 3945); | |
19303 | + at_get$(&_ti, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 3967); | |
19175 | 19304 | } |
19176 | 19305 | { |
19177 | 19306 | const struct nonempty_string *_4 = &(_ti).id; |
19178 | 19307 | MatchCase$(0 /* _3 */, &*streams, &*txtpos, &*level, &*_4); |
19179 | 19308 | } |
19180 | - struct stack/*string*/ _id; memset(&_id, 0, sizeof(struct stack/*string*/)); | |
19309 | + struct stack/*nonempty_string*/ _id; memset(&_id, 0, sizeof(struct stack/*nonempty_string*/)); | |
19181 | 19310 | bool _4; |
19182 | 19311 | { |
19183 | 19312 | const struct type_pure *_5 = &(_ti).type; |
@@ -19186,13 +19315,13 @@ | ||
19186 | 19315 | if(_4) |
19187 | 19316 | { |
19188 | 19317 | { |
19189 | - empty(&_id, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3951); | |
19318 | + empty(&_id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3973); | |
19190 | 19319 | } |
19191 | 19320 | } |
19192 | 19321 | else |
19193 | 19322 | { |
19194 | 19323 | { |
19195 | - solid(&_id, &*shadow, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 3953); | |
19324 | + solid(&_id, &*shadow, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 3975); | |
19196 | 19325 | } |
19197 | 19326 | } |
19198 | 19327 | { |
@@ -19245,7 +19374,7 @@ | ||
19245 | 19374 | PutStr(0 /* _13 */, &*_14, &_15); |
19246 | 19375 | string$dest(&_15); |
19247 | 19376 | } |
19248 | - const struct stack/*string*/ *_14 = &(_id); | |
19377 | + const struct stack/*nonempty_string*/ *_14 = &(_id); | |
19249 | 19378 | if(!(*_14).size) |
19250 | 19379 | { |
19251 | 19380 | { |
@@ -19293,7 +19422,7 @@ | ||
19293 | 19422 | } |
19294 | 19423 | else |
19295 | 19424 | { |
19296 | - const struct string *id = (*_14).data; | |
19425 | + const struct nonempty_string *id = (*_14).data; | |
19297 | 19426 | { |
19298 | 19427 | { |
19299 | 19428 | ParseCasesBlock$(0 /* _17 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &*par, &*qualifier, &*typed, &*id, &_ti); |
@@ -19341,7 +19470,7 @@ | ||
19341 | 19470 | ParseCases$(0 /* _21 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &*par, &*qualifier, &*elems, &_22, &*typed, &*shadow); |
19342 | 19471 | _IGNORE_(_22); |
19343 | 19472 | } |
19344 | - free$(&_id, sizeof(struct string), (void (*)(void *))string$dest); | |
19473 | + free$(&_id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
19345 | 19474 | typepureid$dest(&_ti); |
19346 | 19475 | } |
19347 | 19476 | else |
@@ -19421,7 +19550,7 @@ | ||
19421 | 19550 | } |
19422 | 19551 | } |
19423 | 19552 | |
19424 | -void ParseSwitchBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed, const struct qtypepureid *const qti) | |
19553 | +void ParseSwitchBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed, const struct qtypepureid *const qti) | |
19425 | 19554 | { |
19426 | 19555 | { |
19427 | 19556 | { |
@@ -19433,7 +19562,7 @@ | ||
19433 | 19562 | { |
19434 | 19563 | varinit(&_4, &*qti); |
19435 | 19564 | } |
19436 | - push(0 /* _2 */, &*_3, &_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 3996); | |
19565 | + push(0 /* _2 */, &*_3, &_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4018); | |
19437 | 19566 | var$dest(&_4); |
19438 | 19567 | } |
19439 | 19568 | bool _4; |
@@ -19479,13 +19608,8 @@ | ||
19479 | 19608 | bool _6; |
19480 | 19609 | { |
19481 | 19610 | struct stack/*var*/ *_7 = &(*sp).current.elems; |
19482 | - struct string _8; memset(&_8, 0, sizeof(struct string)); | |
19483 | - { | |
19484 | - const struct nonempty_string *_9 = &(*qti).id; | |
19485 | - nonempty_to_string(&_8, &*_9); | |
19486 | - } | |
19487 | - find_var_report_unused_and_mark_used(&_6, &*_7, &_8); | |
19488 | - string$dest(&_8); | |
19611 | + const struct nonempty_string *_8 = &(*qti).id; | |
19612 | + find_var_report_unused_and_mark_used(&_6, &*_7, &*_8); | |
19489 | 19613 | } |
19490 | 19614 | if(_6) |
19491 | 19615 | { |
@@ -19533,7 +19657,7 @@ | ||
19533 | 19657 | } |
19534 | 19658 | } |
19535 | 19659 | |
19536 | -void ParseSwitchInternal$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed, const struct qtypepureid *const ref, const struct nonempty_string *const id, const struct nonempty_string *const provide_id) | |
19660 | +void ParseSwitchInternal$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed, const struct qtypepureid *const ref, const struct nonempty_string *const id, const struct nonempty_string *const provide_id) | |
19537 | 19661 | { |
19538 | 19662 | { |
19539 | 19663 | { |
@@ -19550,7 +19674,7 @@ | ||
19550 | 19674 | ReducedId(&_3, &*provide_id, &_4); |
19551 | 19675 | string$dest(&_4); |
19552 | 19676 | } |
19553 | - push(0 /* _2 */, &*reduced_ids, &_3, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4018); | |
19677 | + push(0 /* _2 */, &*reduced_ids, &_3, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4040); | |
19554 | 19678 | ReducedId$dest(&_3); |
19555 | 19679 | } |
19556 | 19680 | struct type_mode _qualifier; memset(&_qualifier, 0, sizeof(struct type_mode)); |
@@ -19738,22 +19862,12 @@ | ||
19738 | 19862 | _21 = *level + _22; |
19739 | 19863 | _IGNORE_(_22); |
19740 | 19864 | } |
19741 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
19742 | - { | |
19743 | - const struct nonempty_string *_23 = &(*ref).id; | |
19744 | - nonempty_to_string(&_22, &*_23); | |
19745 | - } | |
19865 | + const struct nonempty_string *_22 = &(*ref).id; | |
19746 | 19866 | const struct stack/*typepureid*/ *_23 = &(*s).elems; |
19747 | 19867 | uint64_t _24; memset(&_24, 0, sizeof(uint64_t)); |
19748 | 19868 | _24 = 0; |
19749 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
19750 | - { | |
19751 | - nonempty_to_string(&_25, &*id); | |
19752 | - } | |
19753 | - ParseCases$(0 /* _20 */, &*streams, &*txtpos, &*state, &_21, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &_22, &_qualifier, &*_23, &_24, &*typed, &_25); | |
19754 | - string$dest(&_25); | |
19869 | + ParseCases$(0 /* _20 */, &*streams, &*txtpos, &*state, &_21, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &*_22, &_qualifier, &*_23, &_24, &*typed, &*id); | |
19755 | 19870 | _IGNORE_(_24); |
19756 | - string$dest(&_22); | |
19757 | 19871 | _IGNORE_(_21); |
19758 | 19872 | } |
19759 | 19873 | { |
@@ -19821,11 +19935,7 @@ | ||
19821 | 19935 | _22 = *level + _23; |
19822 | 19936 | _IGNORE_(_23); |
19823 | 19937 | } |
19824 | - struct string _23; memset(&_23, 0, sizeof(struct string)); | |
19825 | - { | |
19826 | - const struct nonempty_string *_24 = &(*ref).id; | |
19827 | - nonempty_to_string(&_23, &*_24); | |
19828 | - } | |
19938 | + const struct nonempty_string *_23 = &(*ref).id; | |
19829 | 19939 | struct stack/*typepureid*/ _24; memset(&_24, 0, sizeof(struct stack/*typepureid*/)); |
19830 | 19940 | { |
19831 | 19941 | const struct stack/*constr*/ *_25 = &(*s).constrs; |
@@ -19833,15 +19943,9 @@ | ||
19833 | 19943 | } |
19834 | 19944 | uint64_t _25; memset(&_25, 0, sizeof(uint64_t)); |
19835 | 19945 | _25 = 0; |
19836 | - struct string _26; memset(&_26, 0, sizeof(struct string)); | |
19837 | - { | |
19838 | - nonempty_to_string(&_26, &*id); | |
19839 | - } | |
19840 | - ParseCases$(0 /* _21 */, &*streams, &*txtpos, &*state, &_22, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &_23, &_qualifier, &_24, &_25, &*typed, &_26); | |
19841 | - string$dest(&_26); | |
19946 | + ParseCases$(0 /* _21 */, &*streams, &*txtpos, &*state, &_22, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*reduced_ids, &*_23, &_qualifier, &_24, &_25, &*typed, &*id); | |
19842 | 19947 | _IGNORE_(_25); |
19843 | 19948 | free$(&_24, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
19844 | - string$dest(&_23); | |
19845 | 19949 | _IGNORE_(_22); |
19846 | 19950 | } |
19847 | 19951 | { |
@@ -20109,7 +20213,7 @@ | ||
20109 | 20213 | } |
20110 | 20214 | struct stack/*nonempty_string*/ _var; memset(&_var, 0, sizeof(struct stack/*nonempty_string*/)); |
20111 | 20215 | { |
20112 | - solid(&_var, &*id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 4113); | |
20216 | + solid(&_var, &*id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 4135); | |
20113 | 20217 | } |
20114 | 20218 | { |
20115 | 20219 | uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); |
@@ -20317,7 +20421,7 @@ | ||
20317 | 20421 | } |
20318 | 20422 | } |
20319 | 20423 | |
20320 | -void ParseSwitch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed) | |
20424 | +void ParseSwitch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const bool *const typed) | |
20321 | 20425 | { |
20322 | 20426 | { |
20323 | 20427 | struct nonempty_string _id; memset(&_id, 0, sizeof(struct nonempty_string)); |
@@ -20441,7 +20545,7 @@ | ||
20441 | 20545 | } |
20442 | 20546 | } |
20443 | 20547 | |
20444 | -void ParseReduceBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const access) | |
20548 | +void ParseReduceBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const access) | |
20445 | 20549 | { |
20446 | 20550 | { |
20447 | 20551 | { |
@@ -20451,13 +20555,8 @@ | ||
20451 | 20555 | { |
20452 | 20556 | bool _4; memset(&_4, 0, sizeof(bool)); |
20453 | 20557 | { |
20454 | - struct string _5; memset(&_5, 0, sizeof(struct string)); | |
20455 | - { | |
20456 | - const struct nonempty_string *_6 = &(*access).id; | |
20457 | - nonempty_to_string(&_5, &*_6); | |
20458 | - } | |
20459 | - istmp$(&_4, &_5); | |
20460 | - string$dest(&_5); | |
20558 | + const struct nonempty_string *_5 = &(*access).id; | |
20559 | + istmp$(&_4, &*_5); | |
20461 | 20560 | } |
20462 | 20561 | not(&_3, &_4); |
20463 | 20562 | _IGNORE_(_4); |
@@ -20470,7 +20569,7 @@ | ||
20470 | 20569 | { |
20471 | 20570 | varinit(&_6, &*access); |
20472 | 20571 | } |
20473 | - push(0 /* _4 */, &*_5, &_6, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4180); | |
20572 | + push(0 /* _4 */, &*_5, &_6, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4202); | |
20474 | 20573 | var$dest(&_6); |
20475 | 20574 | } |
20476 | 20575 | } |
@@ -20521,7 +20620,7 @@ | ||
20521 | 20620 | } |
20522 | 20621 | } |
20523 | 20622 | |
20524 | -void ParseReduceBlockStack$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure_prim *const tw_subtype, const struct string *const tmp_elem_id, const struct qtypepureid *const stack, const struct string *const stack_id) | |
20623 | +void ParseReduceBlockStack$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure_prim *const tw_subtype, const struct string *const tmp_elem_id, const struct qtypepureid *const stack, const struct nonempty_string *const stack_id) | |
20525 | 20624 | { |
20526 | 20625 | { |
20527 | 20626 | { |
@@ -20647,7 +20746,7 @@ | ||
20647 | 20746 | { |
20648 | 20747 | varinit(&_16, &_elem); |
20649 | 20748 | } |
20650 | - push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4207); | |
20749 | + push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4229); | |
20651 | 20750 | var$dest(&_16); |
20652 | 20751 | } |
20653 | 20752 | qtypepureid$dest(&_elem); |
@@ -20670,7 +20769,7 @@ | ||
20670 | 20769 | { |
20671 | 20770 | varused(&_8, &*stack); |
20672 | 20771 | } |
20673 | - push(0 /* _6 */, &*_7, &_8, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4213); | |
20772 | + push(0 /* _6 */, &*_7, &_8, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4235); | |
20674 | 20773 | var$dest(&_8); |
20675 | 20774 | } |
20676 | 20775 | } |
@@ -20721,7 +20820,7 @@ | ||
20721 | 20820 | } |
20722 | 20821 | } |
20723 | 20822 | |
20724 | -void ParseReduceBlockStackMut$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure_prim *const tw_subtype, const struct string *const tmp_elem_id, const struct qtypepureid *const stack, const struct string *const stack_id) | |
20823 | +void ParseReduceBlockStackMut$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const bool *const typed, struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure_prim *const tw_subtype, const struct string *const tmp_elem_id, const struct qtypepureid *const stack, const struct nonempty_string *const stack_id) | |
20725 | 20824 | { |
20726 | 20825 | { |
20727 | 20826 | { |
@@ -20847,7 +20946,7 @@ | ||
20847 | 20946 | { |
20848 | 20947 | varinit(&_16, &_elem); |
20849 | 20948 | } |
20850 | - push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4240); | |
20949 | + push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4262); | |
20851 | 20950 | var$dest(&_16); |
20852 | 20951 | } |
20853 | 20952 | qtypepureid$dest(&_elem); |
@@ -20870,7 +20969,7 @@ | ||
20870 | 20969 | { |
20871 | 20970 | varused(&_8, &*stack); |
20872 | 20971 | } |
20873 | - push(0 /* _6 */, &*_7, &_8, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4246); | |
20972 | + push(0 /* _6 */, &*_7, &_8, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4268); | |
20874 | 20973 | var$dest(&_8); |
20875 | 20974 | } |
20876 | 20975 | } |
@@ -20921,12 +21020,12 @@ | ||
20921 | 21020 | } |
20922 | 21021 | } |
20923 | 21022 | |
20924 | -void ParseReduce$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids_, const bool *const typed) | |
21023 | +void ParseReduce$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids_, const bool *const typed) | |
20925 | 21024 | { |
20926 | 21025 | { |
20927 | - struct string _par; memset(&_par, 0, sizeof(struct string)); | |
21026 | + struct nonempty_string _par; memset(&_par, 0, sizeof(struct nonempty_string)); | |
20928 | 21027 | { |
20929 | - ParseId$(&_par, &*streams, &*txtpos, &*level); | |
21028 | + ParseIdNonEmpty$(&_par, &*streams, &*txtpos, &*level); | |
20930 | 21029 | } |
20931 | 21030 | struct stack/*qtypepureid*/ _current; memset(&_current, 0, sizeof(struct stack/*qtypepureid*/)); |
20932 | 21031 | { |
@@ -21004,7 +21103,7 @@ | ||
21004 | 21103 | { |
21005 | 21104 | ParseId$(&_8, &*streams, &*txtpos, &*level); |
21006 | 21105 | } |
21007 | - solid(&_opt_elem_id, &_8, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 4288); | |
21106 | + solid(&_opt_elem_id, &_8, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 4310); | |
21008 | 21107 | string$dest(&_8); |
21009 | 21108 | } |
21010 | 21109 | } |
@@ -21011,7 +21110,7 @@ | ||
21011 | 21110 | else |
21012 | 21111 | { |
21013 | 21112 | { |
21014 | - empty(&_opt_elem_id, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 4290); | |
21113 | + empty(&_opt_elem_id, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 4312); | |
21015 | 21114 | } |
21016 | 21115 | } |
21017 | 21116 | { |
@@ -21038,542 +21137,346 @@ | ||
21038 | 21137 | ParseId$(&_tmp_reduce, &*streams, &*txtpos, &*level); |
21039 | 21138 | } |
21040 | 21139 | } |
21041 | - struct string _reduced_id; memset(&_reduced_id, 0, sizeof(struct string)); | |
21042 | - bool _10; | |
21140 | + struct stack/*nonempty_string*/ _reduced_id; memset(&_reduced_id, 0, sizeof(struct stack/*nonempty_string*/)); | |
21043 | 21141 | { |
21044 | - struct string _11; memset(&_11, 0, sizeof(struct string)); | |
21045 | - init$fromliteral(&_11, "", 0); | |
21046 | - strequ(&_10, &_11, &_tmp_reduce); | |
21047 | - string$dest(&_11); | |
21142 | + to_nonempty_string(&_reduced_id, &_tmp_reduce); | |
21048 | 21143 | } |
21049 | - if(_10) | |
21050 | 21144 | { |
21051 | - string$copy(&_reduced_id, &(_par)); | |
21052 | - } | |
21053 | - else | |
21054 | - { | |
21055 | - string$copy(&_reduced_id, &(_tmp_reduce)); | |
21056 | - } | |
21057 | - { | |
21058 | - struct stack/*ReducedId*/ _reduced_ids; memset(&_reduced_ids, 0, sizeof(struct stack/*ReducedId*/)); | |
21059 | - clone$(&_reduced_ids, &(*reduced_ids_), sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy); | |
21145 | + struct nonempty_string _10; memset(&_10, 0, sizeof(struct nonempty_string)); | |
21146 | + const struct stack/*nonempty_string*/ *_11 = &(_reduced_id); | |
21147 | + if(!(*_11).size) | |
21060 | 21148 | { |
21061 | - struct ReducedId _13; memset(&_13, 0, sizeof(struct ReducedId)); | |
21062 | - { | |
21063 | - const struct nonempty_string *_14 = &(*current).id; | |
21064 | - ReducedId(&_13, &*_14, &_reduced_id); | |
21065 | - } | |
21066 | - push(0 /* _12 */, &_reduced_ids, &_13, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4300); | |
21067 | - ReducedId$dest(&_13); | |
21149 | + nonempty_string$copy(&_10, &(_par)); | |
21068 | 21150 | } |
21069 | - struct type_pure _tp; memset(&_tp, 0, sizeof(struct type_pure)); | |
21070 | - type_pure$copy(&_tp, &(*current).qt.type); | |
21071 | - const struct type_pure *_13 = &(_tp); | |
21072 | - switch((*_13).type) | |
21151 | + else | |
21073 | 21152 | { |
21074 | - case 0: // struct stack/*type_pure_normal*/ type_pure_normal: | |
21153 | + const struct nonempty_string *reduced_id = (*_11).data; | |
21154 | + nonempty_string$copy(&_10, &(*reduced_id)); | |
21155 | + } | |
21156 | + const struct nonempty_string *reduced_id = &_10; | |
21157 | + { | |
21158 | + struct stack/*ReducedId*/ _reduced_ids; memset(&_reduced_ids, 0, sizeof(struct stack/*ReducedId*/)); | |
21159 | + clone$(&_reduced_ids, &(*reduced_ids_), sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy); | |
21075 | 21160 | { |
21076 | - const struct type_pure_normal *tp = ((*_13).type_pure_normal).data; | |
21161 | + struct ReducedId _14; memset(&_14, 0, sizeof(struct ReducedId)); | |
21077 | 21162 | { |
21163 | + const struct nonempty_string *_15 = &(*current).id; | |
21164 | + struct string _16; memset(&_16, 0, sizeof(struct string)); | |
21078 | 21165 | { |
21079 | - uint8_t _16; memset(&_16, 0, sizeof(uint8_t)); | |
21080 | - _16 = 58; | |
21081 | - AssertGet$(0 /* _15 */, &*streams, &*txtpos, &*level, &_16); | |
21082 | - _IGNORE_(_16); | |
21166 | + nonempty_to_string(&_16, &*reduced_id); | |
21083 | 21167 | } |
21084 | - bool _17; | |
21168 | + ReducedId(&_14, &*_15, &_16); | |
21169 | + string$dest(&_16); | |
21170 | + } | |
21171 | + push(0 /* _13 */, &_reduced_ids, &_14, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4326); | |
21172 | + ReducedId$dest(&_14); | |
21173 | + } | |
21174 | + struct type_pure _tp; memset(&_tp, 0, sizeof(struct type_pure)); | |
21175 | + type_pure$copy(&_tp, &(*current).qt.type); | |
21176 | + const struct type_pure *_14 = &(_tp); | |
21177 | + switch((*_14).type) | |
21178 | + { | |
21179 | + case 0: // struct stack/*type_pure_normal*/ type_pure_normal: | |
21180 | + { | |
21181 | + const struct type_pure_normal *tp = ((*_14).type_pure_normal).data; | |
21085 | 21182 | { |
21086 | - const struct type_pure *_18 = &(*current).qt.type; | |
21087 | - ispureprim(&_17, &*_18); | |
21088 | - } | |
21089 | - if(_17) | |
21090 | - { | |
21091 | - struct qtypepureid _reduced; memset(&_reduced, 0, sizeof(struct qtypepureid)); | |
21092 | 21183 | { |
21093 | - struct qtypepure _18; memset(&_18, 0, sizeof(struct qtypepure)); | |
21094 | - { | |
21095 | - const struct type_pure *_19 = &(*current).qt.type; | |
21096 | - constqtp(&_18, &*_19); | |
21097 | - } | |
21098 | - struct nonempty_string _19; memset(&_19, 0, sizeof(struct nonempty_string)); | |
21099 | - { | |
21100 | - uint8_t _20; memset(&_20, 0, sizeof(uint8_t)); | |
21101 | - _20 = 95; | |
21102 | - nonempty_string(&_19, &_20, &_reduced_id); | |
21103 | - _IGNORE_(_20); | |
21104 | - } | |
21105 | - qtypepureid(&_reduced, &_18, &_19); | |
21106 | - nonempty_string$dest(&_19); | |
21107 | - qtypepure$dest(&_18); | |
21184 | + uint8_t _17; memset(&_17, 0, sizeof(uint8_t)); | |
21185 | + _17 = 58; | |
21186 | + AssertGet$(0 /* _16 */, &*streams, &*txtpos, &*level, &_17); | |
21187 | + _IGNORE_(_17); | |
21108 | 21188 | } |
21189 | + bool _18; | |
21109 | 21190 | { |
21110 | - const struct StreamOut *_19 = &(*streams).out; | |
21111 | - Indent(0 /* _18 */, &*_19, &*level); | |
21191 | + const struct type_pure *_19 = &(*current).qt.type; | |
21192 | + ispureprim(&_18, &*_19); | |
21112 | 21193 | } |
21194 | + if(_18) | |
21113 | 21195 | { |
21114 | - const struct StreamOut *_20 = &(*streams).out; | |
21115 | - struct string _21; memset(&_21, 0, sizeof(struct string)); | |
21116 | - init$fromliteral(&_21, "if(", 3); | |
21117 | - PutStr(0 /* _19 */, &*_20, &_21); | |
21118 | - string$dest(&_21); | |
21119 | - } | |
21120 | - { | |
21121 | - const struct StreamOut *_21 = &(*streams).out; | |
21122 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21196 | + struct qtypepureid _reduced; memset(&_reduced, 0, sizeof(struct qtypepureid)); | |
21123 | 21197 | { |
21124 | - const struct nonempty_string *_23 = &(*current).id; | |
21125 | - nonempty_to_string(&_22, &*_23); | |
21126 | - } | |
21127 | - PutStr(0 /* _20 */, &*_21, &_22); | |
21128 | - string$dest(&_22); | |
21129 | - } | |
21130 | - { | |
21131 | - const struct StreamOut *_22 = &(*streams).out; | |
21132 | - struct string _23; memset(&_23, 0, sizeof(struct string)); | |
21133 | - init$fromliteral(&_23, " > 0)\n", 6); | |
21134 | - PutStr(0 /* _21 */, &*_22, &_23); | |
21135 | - string$dest(&_23); | |
21136 | - } | |
21137 | - { | |
21138 | - const struct StreamOut *_23 = &(*streams).out; | |
21139 | - Indent(0 /* _22 */, &*_23, &*level); | |
21140 | - } | |
21141 | - { | |
21142 | - const struct StreamOut *_24 = &(*streams).out; | |
21143 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21144 | - init$fromliteral(&_25, "{\n", 2); | |
21145 | - PutStr(0 /* _23 */, &*_24, &_25); | |
21146 | - string$dest(&_25); | |
21147 | - } | |
21148 | - { | |
21149 | - const struct StreamOut *_25 = &(*streams).out; | |
21150 | - uint64_t _26; memset(&_26, 0, sizeof(uint64_t)); | |
21151 | - { | |
21152 | - uint64_t _27; memset(&_27, 0, sizeof(uint64_t)); | |
21153 | - _27 = 1; | |
21154 | - _26 = _27 + *level; | |
21155 | - _IGNORE_(_27); | |
21156 | - } | |
21157 | - struct stack/*structdef*/ *_27 = &(*state).structs; | |
21158 | - EmitLet$(0 /* _24 */, &*_25, &_26, &*_27, &_reduced); | |
21159 | - _IGNORE_(_26); | |
21160 | - } | |
21161 | - const struct stack/*string*/ *_25 = &(_opt_elem_id); | |
21162 | - if(!(*_25).size) | |
21163 | - { | |
21164 | - { | |
21198 | + struct qtypepure _19; memset(&_19, 0, sizeof(struct qtypepure)); | |
21165 | 21199 | { |
21166 | - const struct StreamOut *_28 = &(*streams).out; | |
21167 | - uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); | |
21168 | - { | |
21169 | - uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); | |
21170 | - _30 = 1; | |
21171 | - _29 = *level + _30; | |
21172 | - _IGNORE_(_30); | |
21173 | - } | |
21174 | - Indent(0 /* _27 */, &*_28, &_29); | |
21175 | - _IGNORE_(_29); | |
21200 | + const struct type_pure *_20 = &(*current).qt.type; | |
21201 | + constqtp(&_19, &*_20); | |
21176 | 21202 | } |
21203 | + struct nonempty_string _20; memset(&_20, 0, sizeof(struct nonempty_string)); | |
21177 | 21204 | { |
21178 | - const struct StreamOut *_29 = &(*streams).out; | |
21179 | - struct string _30; memset(&_30, 0, sizeof(struct string)); | |
21205 | + uint8_t _21; memset(&_21, 0, sizeof(uint8_t)); | |
21206 | + _21 = 95; | |
21207 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21180 | 21208 | { |
21181 | - const struct nonempty_string *_31 = &(_reduced).id; | |
21182 | - nonempty_to_string(&_30, &*_31); | |
21209 | + nonempty_to_string(&_22, &*reduced_id); | |
21183 | 21210 | } |
21184 | - PutStr(0 /* _28 */, &*_29, &_30); | |
21185 | - string$dest(&_30); | |
21211 | + nonempty_string(&_20, &_21, &_22); | |
21212 | + string$dest(&_22); | |
21213 | + _IGNORE_(_21); | |
21186 | 21214 | } |
21187 | - { | |
21188 | - const struct StreamOut *_30 = &(*streams).out; | |
21189 | - struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21190 | - init$fromliteral(&_31, " = ", 3); | |
21191 | - PutStr(0 /* _29 */, &*_30, &_31); | |
21192 | - string$dest(&_31); | |
21193 | - } | |
21194 | - { | |
21195 | - const struct StreamOut *_31 = &(*streams).out; | |
21196 | - struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21197 | - { | |
21198 | - const struct nonempty_string *_33 = &(*current).id; | |
21199 | - nonempty_to_string(&_32, &*_33); | |
21200 | - } | |
21201 | - PutStr(0 /* _30 */, &*_31, &_32); | |
21202 | - string$dest(&_32); | |
21203 | - } | |
21204 | - { | |
21205 | - const struct StreamOut *_32 = &(*streams).out; | |
21206 | - struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21207 | - init$fromliteral(&_33, " - 1;", 5); | |
21208 | - PutStrLn(0 /* _31 */, &*_32, &_33); | |
21209 | - string$dest(&_33); | |
21210 | - } | |
21215 | + qtypepureid(&_reduced, &_19, &_20); | |
21216 | + nonempty_string$dest(&_20); | |
21217 | + qtypepure$dest(&_19); | |
21211 | 21218 | } |
21212 | - } | |
21213 | - else | |
21214 | - { | |
21215 | - const struct string *opt_elem_id = (*_25).data; | |
21216 | 21219 | { |
21217 | - { | |
21218 | - const struct StreamOut *_29 = &(*streams).err; | |
21219 | - struct string _30; memset(&_30, 0, sizeof(struct string)); | |
21220 | - init$fromliteral(&_30, "superfluous element-id - can only reduce primitive parameter ", 61); | |
21221 | - PutStr(0 /* _28 */, &*_29, &_30); | |
21222 | - string$dest(&_30); | |
21223 | - } | |
21224 | - { | |
21225 | - const struct StreamOut *_30 = &(*streams).err; | |
21226 | - struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21227 | - { | |
21228 | - const struct nonempty_string *_32 = &(*current).id; | |
21229 | - nonempty_to_string(&_31, &*_32); | |
21230 | - } | |
21231 | - PutStr(0 /* _29 */, &*_30, &_31); | |
21232 | - string$dest(&_31); | |
21233 | - } | |
21234 | - { | |
21235 | - const struct StreamOut *_31 = &(*streams).err; | |
21236 | - struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21237 | - init$fromliteral(&_32, " directly, without element ", 27); | |
21238 | - PutStr(0 /* _30 */, &*_31, &_32); | |
21239 | - string$dest(&_32); | |
21240 | - } | |
21241 | - { | |
21242 | - const struct StreamOut *_32 = &(*streams).err; | |
21243 | - PutStr(0 /* _31 */, &*_32, &*opt_elem_id); | |
21244 | - } | |
21245 | - { | |
21246 | - const struct StreamOut *_33 = &(*streams).err; | |
21247 | - Fail$(0 /* _32 */, &*_33, &*txtpos); | |
21248 | - } | |
21220 | + const struct StreamOut *_20 = &(*streams).out; | |
21221 | + Indent(0 /* _19 */, &*_20, &*level); | |
21249 | 21222 | } |
21250 | - } | |
21251 | - { | |
21252 | - ParseReduceBlock$(0 /* _28 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &_reduced); | |
21253 | - } | |
21254 | - { | |
21255 | - const struct StreamOut *_30 = &(*streams).out; | |
21256 | - uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); | |
21257 | 21223 | { |
21258 | - uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); | |
21259 | - _32 = 1; | |
21260 | - _31 = _32 + *level; | |
21261 | - _IGNORE_(_32); | |
21224 | + const struct StreamOut *_21 = &(*streams).out; | |
21225 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21226 | + init$fromliteral(&_22, "if(", 3); | |
21227 | + PutStr(0 /* _20 */, &*_21, &_22); | |
21228 | + string$dest(&_22); | |
21262 | 21229 | } |
21263 | - Indent(0 /* _29 */, &*_30, &_31); | |
21264 | - _IGNORE_(_31); | |
21265 | - } | |
21266 | - { | |
21267 | - const struct StreamOut *_31 = &(*streams).out; | |
21268 | - const struct type_pure *_32 = &(_reduced).qt.type; | |
21269 | - FreeIn(0 /* _30 */, &*_31, &*_32); | |
21270 | - } | |
21271 | - { | |
21272 | - const struct StreamOut *_32 = &(*streams).out; | |
21273 | - struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21274 | 21230 | { |
21275 | - const struct nonempty_string *_34 = &(_reduced).id; | |
21276 | - nonempty_to_string(&_33, &*_34); | |
21277 | - } | |
21278 | - PutStr(0 /* _31 */, &*_32, &_33); | |
21279 | - string$dest(&_33); | |
21280 | - } | |
21281 | - { | |
21282 | - const struct StreamOut *_33 = &(*streams).out; | |
21283 | - struct stack/*structdef*/ *_34 = &(*state).structs; | |
21284 | - const struct type_pure *_35 = &(_reduced).qt.type; | |
21285 | - FreeOut(0 /* _32 */, &*_33, &*_34, &*_35); | |
21286 | - } | |
21287 | - { | |
21288 | - const struct StreamOut *_34 = &(*streams).out; | |
21289 | - struct string _35; memset(&_35, 0, sizeof(struct string)); | |
21290 | - init$fromliteral(&_35, "\n", 1); | |
21291 | - PutStr(0 /* _33 */, &*_34, &_35); | |
21292 | - string$dest(&_35); | |
21293 | - } | |
21294 | - qtypepureid$dest(&_reduced); | |
21295 | - } | |
21296 | - else | |
21297 | - { | |
21298 | - bool _18; | |
21299 | - { | |
21300 | - struct string _19; memset(&_19, 0, sizeof(struct string)); | |
21301 | - init$fromliteral(&_19, "StreamIn", 8); | |
21302 | - struct string _20; memset(&_20, 0, sizeof(struct string)); | |
21303 | - { | |
21304 | - const struct nonempty_string *_21 = &(*tp).prim.name; | |
21305 | - nonempty_to_string(&_20, &*_21); | |
21306 | - } | |
21307 | - strequ(&_18, &_19, &_20); | |
21308 | - string$dest(&_20); | |
21309 | - string$dest(&_19); | |
21310 | - } | |
21311 | - if(_18) | |
21312 | - { | |
21313 | - { | |
21314 | - const struct StreamOut *_20 = &(*streams).err; | |
21315 | - struct string _21; memset(&_21, 0, sizeof(struct string)); | |
21316 | - init$fromliteral(&_21, "recursion on input limited by stack-size - use for until tail-call optimization implemented", 91); | |
21317 | - PutStr(0 /* _19 */, &*_20, &_21); | |
21318 | - string$dest(&_21); | |
21319 | - } | |
21320 | - { | |
21321 | - const struct StreamOut *_21 = &(*streams).err; | |
21322 | - Warn(0 /* _20 */, &*_21, &*txtpos); | |
21323 | - } | |
21324 | - { | |
21325 | - struct ReducedId _22; memset(&_22, 0, sizeof(struct ReducedId)); | |
21231 | + const struct StreamOut *_22 = &(*streams).out; | |
21232 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
21326 | 21233 | { |
21327 | - const struct nonempty_string *_23 = &(*current).id; | |
21328 | - ReducedId(&_22, &*_23, &_par); | |
21234 | + const struct nonempty_string *_24 = &(*current).id; | |
21235 | + nonempty_to_string(&_23, &*_24); | |
21329 | 21236 | } |
21330 | - push(0 /* _21 */, &_reduced_ids, &_22, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4342); | |
21331 | - ReducedId$dest(&_22); | |
21237 | + PutStr(0 /* _21 */, &*_22, &_23); | |
21238 | + string$dest(&_23); | |
21332 | 21239 | } |
21333 | - struct qtypepureid _elem; memset(&_elem, 0, sizeof(struct qtypepureid)); | |
21334 | 21240 | { |
21335 | - struct qtypepure _22; memset(&_22, 0, sizeof(struct qtypepure)); | |
21336 | - { | |
21337 | - struct type_pure _23; memset(&_23, 0, sizeof(struct type_pure)); | |
21338 | - { | |
21339 | - type_pure_u8(&_23); | |
21340 | - } | |
21341 | - constqtp(&_22, &_23); | |
21342 | - type_pure$dest(&_23); | |
21343 | - } | |
21344 | - struct nonempty_string _23; memset(&_23, 0, sizeof(struct nonempty_string)); | |
21345 | - { | |
21346 | - uint8_t _24; memset(&_24, 0, sizeof(uint8_t)); | |
21347 | - _24 = 95; | |
21348 | - nonempty_string(&_23, &_24, &_reduced_id); | |
21349 | - _IGNORE_(_24); | |
21350 | - } | |
21351 | - qtypepureid(&_elem, &_22, &_23); | |
21352 | - nonempty_string$dest(&_23); | |
21353 | - qtypepure$dest(&_22); | |
21354 | - } | |
21355 | - struct nonempty_string _tmpid; memset(&_tmpid, 0, sizeof(struct nonempty_string)); | |
21356 | - { | |
21357 | - GenVar$(&_tmpid, &*tmpnr); | |
21358 | - } | |
21359 | - { | |
21360 | 21241 | const struct StreamOut *_23 = &(*streams).out; |
21361 | - Indent(0 /* _22 */, &*_23, &*level); | |
21242 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
21243 | + init$fromliteral(&_24, " > 0)\n", 6); | |
21244 | + PutStr(0 /* _22 */, &*_23, &_24); | |
21245 | + string$dest(&_24); | |
21362 | 21246 | } |
21363 | 21247 | { |
21364 | 21248 | const struct StreamOut *_24 = &(*streams).out; |
21365 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21366 | - init$fromliteral(&_25, "int ", 4); | |
21367 | - PutStr(0 /* _23 */, &*_24, &_25); | |
21368 | - string$dest(&_25); | |
21249 | + Indent(0 /* _23 */, &*_24, &*level); | |
21369 | 21250 | } |
21370 | 21251 | { |
21371 | 21252 | const struct StreamOut *_25 = &(*streams).out; |
21372 | 21253 | struct string _26; memset(&_26, 0, sizeof(struct string)); |
21373 | - { | |
21374 | - nonempty_to_string(&_26, &_tmpid); | |
21375 | - } | |
21254 | + init$fromliteral(&_26, "{\n", 2); | |
21376 | 21255 | PutStr(0 /* _24 */, &*_25, &_26); |
21377 | 21256 | string$dest(&_26); |
21378 | 21257 | } |
21379 | 21258 | { |
21380 | 21259 | const struct StreamOut *_26 = &(*streams).out; |
21381 | - struct string _27; memset(&_27, 0, sizeof(struct string)); | |
21382 | - init$fromliteral(&_27, " = getc(", 8); | |
21383 | - PutStr(0 /* _25 */, &*_26, &_27); | |
21384 | - string$dest(&_27); | |
21260 | + uint64_t _27; memset(&_27, 0, sizeof(uint64_t)); | |
21261 | + { | |
21262 | + uint64_t _28; memset(&_28, 0, sizeof(uint64_t)); | |
21263 | + _28 = 1; | |
21264 | + _27 = _28 + *level; | |
21265 | + _IGNORE_(_28); | |
21266 | + } | |
21267 | + struct stack/*structdef*/ *_28 = &(*state).structs; | |
21268 | + EmitLet$(0 /* _25 */, &*_26, &_27, &*_28, &_reduced); | |
21269 | + _IGNORE_(_27); | |
21385 | 21270 | } |
21271 | + const struct stack/*string*/ *_26 = &(_opt_elem_id); | |
21272 | + if(!(*_26).size) | |
21386 | 21273 | { |
21387 | - const struct StreamOut *_27 = &(*streams).out; | |
21388 | - PutStr(0 /* _26 */, &*_27, &_par); | |
21389 | - } | |
21390 | - { | |
21391 | - const struct StreamOut *_28 = &(*streams).out; | |
21392 | - struct string _29; memset(&_29, 0, sizeof(struct string)); | |
21393 | - init$fromliteral(&_29, "->f); ", 6); | |
21394 | - PutStrLn(0 /* _27 */, &*_28, &_29); | |
21395 | - string$dest(&_29); | |
21396 | - } | |
21397 | - { | |
21398 | - const struct StreamOut *_29 = &(*streams).out; | |
21399 | - Indent(0 /* _28 */, &*_29, &*level); | |
21400 | - } | |
21401 | - { | |
21402 | - const struct StreamOut *_30 = &(*streams).out; | |
21403 | - struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21404 | - init$fromliteral(&_31, "if(", 3); | |
21405 | - PutStr(0 /* _29 */, &*_30, &_31); | |
21406 | - string$dest(&_31); | |
21407 | - } | |
21408 | - { | |
21409 | - const struct StreamOut *_31 = &(*streams).out; | |
21410 | - struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21411 | 21274 | { |
21412 | - nonempty_to_string(&_32, &_tmpid); | |
21275 | + { | |
21276 | + const struct StreamOut *_29 = &(*streams).out; | |
21277 | + uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); | |
21278 | + { | |
21279 | + uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); | |
21280 | + _31 = 1; | |
21281 | + _30 = *level + _31; | |
21282 | + _IGNORE_(_31); | |
21283 | + } | |
21284 | + Indent(0 /* _28 */, &*_29, &_30); | |
21285 | + _IGNORE_(_30); | |
21286 | + } | |
21287 | + { | |
21288 | + const struct StreamOut *_30 = &(*streams).out; | |
21289 | + struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21290 | + { | |
21291 | + const struct nonempty_string *_32 = &(_reduced).id; | |
21292 | + nonempty_to_string(&_31, &*_32); | |
21293 | + } | |
21294 | + PutStr(0 /* _29 */, &*_30, &_31); | |
21295 | + string$dest(&_31); | |
21296 | + } | |
21297 | + { | |
21298 | + const struct StreamOut *_31 = &(*streams).out; | |
21299 | + struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21300 | + init$fromliteral(&_32, " = ", 3); | |
21301 | + PutStr(0 /* _30 */, &*_31, &_32); | |
21302 | + string$dest(&_32); | |
21303 | + } | |
21304 | + { | |
21305 | + const struct StreamOut *_32 = &(*streams).out; | |
21306 | + struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21307 | + { | |
21308 | + const struct nonempty_string *_34 = &(*current).id; | |
21309 | + nonempty_to_string(&_33, &*_34); | |
21310 | + } | |
21311 | + PutStr(0 /* _31 */, &*_32, &_33); | |
21312 | + string$dest(&_33); | |
21313 | + } | |
21314 | + { | |
21315 | + const struct StreamOut *_33 = &(*streams).out; | |
21316 | + struct string _34; memset(&_34, 0, sizeof(struct string)); | |
21317 | + init$fromliteral(&_34, " - 1;", 5); | |
21318 | + PutStrLn(0 /* _32 */, &*_33, &_34); | |
21319 | + string$dest(&_34); | |
21320 | + } | |
21413 | 21321 | } |
21414 | - PutStr(0 /* _30 */, &*_31, &_32); | |
21415 | - string$dest(&_32); | |
21416 | 21322 | } |
21323 | + else | |
21417 | 21324 | { |
21418 | - const struct StreamOut *_32 = &(*streams).out; | |
21419 | - struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21420 | - init$fromliteral(&_33, " >= 0)", 6); | |
21421 | - PutStrLn(0 /* _31 */, &*_32, &_33); | |
21422 | - string$dest(&_33); | |
21423 | - } | |
21424 | - { | |
21425 | - const struct StreamOut *_33 = &(*streams).out; | |
21426 | - Indent(0 /* _32 */, &*_33, &*level); | |
21427 | - } | |
21428 | - { | |
21429 | - const struct StreamOut *_34 = &(*streams).out; | |
21430 | - struct string _35; memset(&_35, 0, sizeof(struct string)); | |
21431 | - init$fromliteral(&_35, "{", 1); | |
21432 | - PutStrLn(0 /* _33 */, &*_34, &_35); | |
21433 | - string$dest(&_35); | |
21434 | - } | |
21435 | - { | |
21436 | - const struct StreamOut *_35 = &(*streams).out; | |
21437 | - uint64_t _36; memset(&_36, 0, sizeof(uint64_t)); | |
21325 | + const struct string *opt_elem_id = (*_26).data; | |
21438 | 21326 | { |
21439 | - uint64_t _37; memset(&_37, 0, sizeof(uint64_t)); | |
21440 | - _37 = 1; | |
21441 | - _36 = _37 + *level; | |
21442 | - _IGNORE_(_37); | |
21327 | + { | |
21328 | + const struct StreamOut *_30 = &(*streams).err; | |
21329 | + struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21330 | + init$fromliteral(&_31, "superfluous element-id - can only reduce primitive parameter ", 61); | |
21331 | + PutStr(0 /* _29 */, &*_30, &_31); | |
21332 | + string$dest(&_31); | |
21333 | + } | |
21334 | + { | |
21335 | + const struct StreamOut *_31 = &(*streams).err; | |
21336 | + struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21337 | + { | |
21338 | + const struct nonempty_string *_33 = &(*current).id; | |
21339 | + nonempty_to_string(&_32, &*_33); | |
21340 | + } | |
21341 | + PutStr(0 /* _30 */, &*_31, &_32); | |
21342 | + string$dest(&_32); | |
21343 | + } | |
21344 | + { | |
21345 | + const struct StreamOut *_32 = &(*streams).err; | |
21346 | + struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21347 | + init$fromliteral(&_33, " directly, without element ", 27); | |
21348 | + PutStr(0 /* _31 */, &*_32, &_33); | |
21349 | + string$dest(&_33); | |
21350 | + } | |
21351 | + { | |
21352 | + const struct StreamOut *_33 = &(*streams).err; | |
21353 | + PutStr(0 /* _32 */, &*_33, &*opt_elem_id); | |
21354 | + } | |
21355 | + { | |
21356 | + const struct StreamOut *_34 = &(*streams).err; | |
21357 | + Fail$(0 /* _33 */, &*_34, &*txtpos); | |
21358 | + } | |
21443 | 21359 | } |
21444 | - Indent(0 /* _34 */, &*_35, &_36); | |
21445 | - _IGNORE_(_36); | |
21446 | 21360 | } |
21447 | 21361 | { |
21448 | - const struct StreamOut *_36 = &(*streams).out; | |
21449 | - struct string _37; memset(&_37, 0, sizeof(struct string)); | |
21450 | - init$fromliteral(&_37, "const uint8_t ", 14); | |
21451 | - PutStr(0 /* _35 */, &*_36, &_37); | |
21452 | - string$dest(&_37); | |
21362 | + ParseReduceBlock$(0 /* _29 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &_reduced); | |
21453 | 21363 | } |
21454 | 21364 | { |
21455 | - const struct StreamOut *_37 = &(*streams).out; | |
21456 | - struct string _38; memset(&_38, 0, sizeof(struct string)); | |
21365 | + const struct StreamOut *_31 = &(*streams).out; | |
21366 | + uint64_t _32; memset(&_32, 0, sizeof(uint64_t)); | |
21457 | 21367 | { |
21458 | - const struct nonempty_string *_39 = &(_elem).id; | |
21459 | - nonempty_to_string(&_38, &*_39); | |
21368 | + uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); | |
21369 | + _33 = 1; | |
21370 | + _32 = _33 + *level; | |
21371 | + _IGNORE_(_33); | |
21460 | 21372 | } |
21461 | - PutStr(0 /* _36 */, &*_37, &_38); | |
21462 | - string$dest(&_38); | |
21373 | + Indent(0 /* _30 */, &*_31, &_32); | |
21374 | + _IGNORE_(_32); | |
21463 | 21375 | } |
21464 | 21376 | { |
21465 | - const struct StreamOut *_38 = &(*streams).out; | |
21466 | - struct string _39; memset(&_39, 0, sizeof(struct string)); | |
21467 | - init$fromliteral(&_39, " = (uint8_t)", 12); | |
21468 | - PutStr(0 /* _37 */, &*_38, &_39); | |
21469 | - string$dest(&_39); | |
21377 | + const struct StreamOut *_32 = &(*streams).out; | |
21378 | + const struct type_pure *_33 = &(_reduced).qt.type; | |
21379 | + FreeIn(0 /* _31 */, &*_32, &*_33); | |
21470 | 21380 | } |
21471 | 21381 | { |
21472 | - const struct StreamOut *_39 = &(*streams).out; | |
21473 | - struct string _40; memset(&_40, 0, sizeof(struct string)); | |
21382 | + const struct StreamOut *_33 = &(*streams).out; | |
21383 | + struct string _34; memset(&_34, 0, sizeof(struct string)); | |
21474 | 21384 | { |
21475 | - nonempty_to_string(&_40, &_tmpid); | |
21385 | + const struct nonempty_string *_35 = &(_reduced).id; | |
21386 | + nonempty_to_string(&_34, &*_35); | |
21476 | 21387 | } |
21477 | - PutStr(0 /* _38 */, &*_39, &_40); | |
21478 | - string$dest(&_40); | |
21388 | + PutStr(0 /* _32 */, &*_33, &_34); | |
21389 | + string$dest(&_34); | |
21479 | 21390 | } |
21480 | 21391 | { |
21481 | - const struct StreamOut *_40 = &(*streams).out; | |
21482 | - struct string _41; memset(&_41, 0, sizeof(struct string)); | |
21483 | - init$fromliteral(&_41, ";", 1); | |
21484 | - PutStrLn(0 /* _39 */, &*_40, &_41); | |
21485 | - string$dest(&_41); | |
21392 | + const struct StreamOut *_34 = &(*streams).out; | |
21393 | + struct stack/*structdef*/ *_35 = &(*state).structs; | |
21394 | + const struct type_pure *_36 = &(_reduced).qt.type; | |
21395 | + FreeOut(0 /* _33 */, &*_34, &*_35, &*_36); | |
21486 | 21396 | } |
21487 | 21397 | { |
21488 | - ParseReduceBlock$(0 /* _40 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &_elem); | |
21398 | + const struct StreamOut *_35 = &(*streams).out; | |
21399 | + struct string _36; memset(&_36, 0, sizeof(struct string)); | |
21400 | + init$fromliteral(&_36, "\n", 1); | |
21401 | + PutStr(0 /* _34 */, &*_35, &_36); | |
21402 | + string$dest(&_36); | |
21489 | 21403 | } |
21490 | - nonempty_string$dest(&_tmpid); | |
21491 | - qtypepureid$dest(&_elem); | |
21404 | + qtypepureid$dest(&_reduced); | |
21492 | 21405 | } |
21493 | 21406 | else |
21494 | 21407 | { |
21408 | + bool _19; | |
21495 | 21409 | { |
21496 | - const struct StreamOut *_20 = &(*streams).err; | |
21410 | + struct string _20; memset(&_20, 0, sizeof(struct string)); | |
21411 | + init$fromliteral(&_20, "StreamIn", 8); | |
21497 | 21412 | struct string _21; memset(&_21, 0, sizeof(struct string)); |
21498 | - init$fromliteral(&_21, "reduce not implemented for struct/union/enum - use switch instead", 65); | |
21499 | - PutStr(0 /* _19 */, &*_20, &_21); | |
21500 | - string$dest(&_21); | |
21501 | - } | |
21502 | - { | |
21503 | - const struct StreamOut *_21 = &(*streams).err; | |
21504 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21505 | 21413 | { |
21506 | - const struct nonempty_string *_23 = &(*current).id; | |
21507 | - nonempty_to_string(&_22, &*_23); | |
21414 | + const struct nonempty_string *_22 = &(*tp).prim.name; | |
21415 | + nonempty_to_string(&_21, &*_22); | |
21508 | 21416 | } |
21509 | - PutStr(0 /* _20 */, &*_21, &_22); | |
21510 | - string$dest(&_22); | |
21417 | + strequ(&_19, &_20, &_21); | |
21418 | + string$dest(&_21); | |
21419 | + string$dest(&_20); | |
21511 | 21420 | } |
21421 | + if(_19) | |
21512 | 21422 | { |
21513 | - const struct StreamOut *_22 = &(*streams).err; | |
21514 | - Fail$(0 /* _21 */, &*_22, &*txtpos); | |
21515 | - } | |
21516 | - } | |
21517 | - } | |
21518 | - { | |
21519 | - const struct StreamOut *_20 = &(*streams).out; | |
21520 | - Indent(0 /* _19 */, &*_20, &*level); | |
21521 | - } | |
21522 | - { | |
21523 | - const struct StreamOut *_21 = &(*streams).out; | |
21524 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21525 | - init$fromliteral(&_22, "}\n", 2); | |
21526 | - PutStr(0 /* _20 */, &*_21, &_22); | |
21527 | - string$dest(&_22); | |
21528 | - } | |
21529 | - } | |
21530 | - break; | |
21531 | - } | |
21532 | - case 1: // struct stack/*type_pure_wrapped*/ type_pure_wrapped: | |
21533 | - { | |
21534 | - const struct type_pure_wrapped *tp = ((*_13).type_pure_wrapped).data; | |
21535 | - { | |
21536 | - struct container_type _tpw; memset(&_tpw, 0, sizeof(struct container_type)); | |
21537 | - container_type$copy(&_tpw, &(*tp).which); | |
21538 | - const struct container_type *_16 = &(_tpw); | |
21539 | - switch((*_16).type) | |
21540 | - { | |
21541 | - case 0: // void container_stack: | |
21542 | - { | |
21543 | - { | |
21544 | - struct string _tmp_elem_id; memset(&_tmp_elem_id, 0, sizeof(struct string)); | |
21545 | 21423 | { |
21546 | - ParseId$(&_tmp_elem_id, &*streams, &*txtpos, &*level); | |
21424 | + const struct StreamOut *_21 = &(*streams).err; | |
21425 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21426 | + init$fromliteral(&_22, "recursion on input limited by stack-size - use for until tail-call optimization implemented", 91); | |
21427 | + PutStr(0 /* _20 */, &*_21, &_22); | |
21428 | + string$dest(&_22); | |
21547 | 21429 | } |
21548 | 21430 | { |
21549 | - uint8_t _19; memset(&_19, 0, sizeof(uint8_t)); | |
21550 | - _19 = 58; | |
21551 | - AssertGet$(0 /* _18 */, &*streams, &*txtpos, &*level, &_19); | |
21552 | - _IGNORE_(_19); | |
21431 | + const struct StreamOut *_22 = &(*streams).err; | |
21432 | + Warn(0 /* _21 */, &*_22, &*txtpos); | |
21553 | 21433 | } |
21554 | 21434 | { |
21555 | - const struct StreamOut *_20 = &(*streams).out; | |
21556 | - Indent(0 /* _19 */, &*_20, &*level); | |
21435 | + struct ReducedId _23; memset(&_23, 0, sizeof(struct ReducedId)); | |
21436 | + { | |
21437 | + const struct nonempty_string *_24 = &(*current).id; | |
21438 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21439 | + { | |
21440 | + nonempty_to_string(&_25, &_par); | |
21441 | + } | |
21442 | + ReducedId(&_23, &*_24, &_25); | |
21443 | + string$dest(&_25); | |
21444 | + } | |
21445 | + push(0 /* _22 */, &_reduced_ids, &_23, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 4368); | |
21446 | + ReducedId$dest(&_23); | |
21557 | 21447 | } |
21448 | + struct qtypepureid _elem; memset(&_elem, 0, sizeof(struct qtypepureid)); | |
21558 | 21449 | { |
21559 | - const struct StreamOut *_21 = &(*streams).out; | |
21560 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21561 | - init$fromliteral(&_22, "if(", 3); | |
21562 | - PutStr(0 /* _20 */, &*_21, &_22); | |
21563 | - string$dest(&_22); | |
21450 | + struct qtypepure _23; memset(&_23, 0, sizeof(struct qtypepure)); | |
21451 | + { | |
21452 | + struct type_pure _24; memset(&_24, 0, sizeof(struct type_pure)); | |
21453 | + { | |
21454 | + type_pure_u8(&_24); | |
21455 | + } | |
21456 | + constqtp(&_23, &_24); | |
21457 | + type_pure$dest(&_24); | |
21458 | + } | |
21459 | + struct nonempty_string _24; memset(&_24, 0, sizeof(struct nonempty_string)); | |
21460 | + { | |
21461 | + uint8_t _25; memset(&_25, 0, sizeof(uint8_t)); | |
21462 | + _25 = 95; | |
21463 | + struct string _26; memset(&_26, 0, sizeof(struct string)); | |
21464 | + { | |
21465 | + nonempty_to_string(&_26, &*reduced_id); | |
21466 | + } | |
21467 | + nonempty_string(&_24, &_25, &_26); | |
21468 | + string$dest(&_26); | |
21469 | + _IGNORE_(_25); | |
21470 | + } | |
21471 | + qtypepureid(&_elem, &_23, &_24); | |
21472 | + nonempty_string$dest(&_24); | |
21473 | + qtypepure$dest(&_23); | |
21564 | 21474 | } |
21475 | + struct nonempty_string _tmpid; memset(&_tmpid, 0, sizeof(struct nonempty_string)); | |
21565 | 21476 | { |
21566 | - const struct StreamOut *_22 = &(*streams).out; | |
21567 | - PutStr(0 /* _21 */, &*_22, &_par); | |
21477 | + GenVar$(&_tmpid, &*tmpnr); | |
21568 | 21478 | } |
21569 | 21479 | { |
21570 | - const struct StreamOut *_23 = &(*streams).out; | |
21571 | - struct string _24; memset(&_24, 0, sizeof(struct string)); | |
21572 | - init$fromliteral(&_24, "->fill > 0)", 11); | |
21573 | - PutStrLn(0 /* _22 */, &*_23, &_24); | |
21574 | - string$dest(&_24); | |
21575 | - } | |
21576 | - { | |
21577 | 21480 | const struct StreamOut *_24 = &(*streams).out; |
21578 | 21481 | Indent(0 /* _23 */, &*_24, &*level); |
21579 | 21482 | } |
@@ -21580,71 +21483,31 @@ | ||
21580 | 21483 | { |
21581 | 21484 | const struct StreamOut *_25 = &(*streams).out; |
21582 | 21485 | struct string _26; memset(&_26, 0, sizeof(struct string)); |
21583 | - init$fromliteral(&_26, "{", 1); | |
21584 | - PutStrLn(0 /* _24 */, &*_25, &_26); | |
21486 | + init$fromliteral(&_26, "int ", 4); | |
21487 | + PutStr(0 /* _24 */, &*_25, &_26); | |
21585 | 21488 | string$dest(&_26); |
21586 | 21489 | } |
21587 | - struct string _stack_id; memset(&_stack_id, 0, sizeof(struct string)); | |
21588 | - string$copy(&_stack_id, &(_reduced_id)); | |
21589 | - struct qtypepureid _stack; memset(&_stack, 0, sizeof(struct qtypepureid)); | |
21590 | 21490 | { |
21591 | - struct qtypepure _25; memset(&_25, 0, sizeof(struct qtypepure)); | |
21592 | - { | |
21593 | - struct type_pure _26; memset(&_26, 0, sizeof(struct type_pure)); | |
21594 | - { | |
21595 | - struct container_type _27; memset(&_27, 0, sizeof(struct container_type)); | |
21596 | - { | |
21597 | - container_stack(&_27); | |
21598 | - } | |
21599 | - const struct type_pure_prim *_28 = &(*tp).subtype; | |
21600 | - type_pure_wrapped(&_26, &_27, &*_28); | |
21601 | - container_type$dest(&_27); | |
21602 | - } | |
21603 | - constqtp(&_25, &_26); | |
21604 | - type_pure$dest(&_26); | |
21605 | - } | |
21606 | - struct nonempty_string _26; memset(&_26, 0, sizeof(struct nonempty_string)); | |
21607 | - { | |
21608 | - uint8_t _27; memset(&_27, 0, sizeof(uint8_t)); | |
21609 | - _27 = 95; | |
21610 | - nonempty_string(&_26, &_27, &_stack_id); | |
21611 | - _IGNORE_(_27); | |
21612 | - } | |
21613 | - qtypepureid(&_stack, &_25, &_26); | |
21614 | - nonempty_string$dest(&_26); | |
21615 | - qtypepure$dest(&_25); | |
21616 | - } | |
21617 | - { | |
21618 | 21491 | const struct StreamOut *_26 = &(*streams).out; |
21619 | - uint64_t _27; memset(&_27, 0, sizeof(uint64_t)); | |
21492 | + struct string _27; memset(&_27, 0, sizeof(struct string)); | |
21620 | 21493 | { |
21621 | - uint64_t _28; memset(&_28, 0, sizeof(uint64_t)); | |
21622 | - _28 = 1; | |
21623 | - _27 = _28 + *level; | |
21624 | - _IGNORE_(_28); | |
21494 | + nonempty_to_string(&_27, &_tmpid); | |
21625 | 21495 | } |
21626 | - struct stack/*structdef*/ *_28 = &(*state).structs; | |
21627 | - EmitLet$(0 /* _25 */, &*_26, &_27, &*_28, &_stack); | |
21628 | - _IGNORE_(_27); | |
21496 | + PutStr(0 /* _25 */, &*_26, &_27); | |
21497 | + string$dest(&_27); | |
21629 | 21498 | } |
21630 | 21499 | { |
21631 | 21500 | const struct StreamOut *_27 = &(*streams).out; |
21632 | - uint64_t _28; memset(&_28, 0, sizeof(uint64_t)); | |
21633 | - { | |
21634 | - uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); | |
21635 | - _29 = 1; | |
21636 | - _28 = _29 + *level; | |
21637 | - _IGNORE_(_29); | |
21638 | - } | |
21639 | - Indent(0 /* _26 */, &*_27, &_28); | |
21640 | - _IGNORE_(_28); | |
21501 | + struct string _28; memset(&_28, 0, sizeof(struct string)); | |
21502 | + init$fromliteral(&_28, " = getc(", 8); | |
21503 | + PutStr(0 /* _26 */, &*_27, &_28); | |
21504 | + string$dest(&_28); | |
21641 | 21505 | } |
21642 | 21506 | { |
21643 | 21507 | const struct StreamOut *_28 = &(*streams).out; |
21644 | 21508 | struct string _29; memset(&_29, 0, sizeof(struct string)); |
21645 | 21509 | { |
21646 | - const struct nonempty_string *_30 = &(_stack).id; | |
21647 | - nonempty_to_string(&_29, &*_30); | |
21510 | + nonempty_to_string(&_29, &_par); | |
21648 | 21511 | } |
21649 | 21512 | PutStr(0 /* _27 */, &*_28, &_29); |
21650 | 21513 | string$dest(&_29); |
@@ -21652,78 +21515,72 @@ | ||
21652 | 21515 | { |
21653 | 21516 | const struct StreamOut *_29 = &(*streams).out; |
21654 | 21517 | struct string _30; memset(&_30, 0, sizeof(struct string)); |
21655 | - init$fromliteral(&_30, ".fill = ", 8); | |
21656 | - PutStr(0 /* _28 */, &*_29, &_30); | |
21518 | + init$fromliteral(&_30, "->f); ", 6); | |
21519 | + PutStrLn(0 /* _28 */, &*_29, &_30); | |
21657 | 21520 | string$dest(&_30); |
21658 | 21521 | } |
21659 | 21522 | { |
21660 | 21523 | const struct StreamOut *_30 = &(*streams).out; |
21661 | - PutStr(0 /* _29 */, &*_30, &_par); | |
21524 | + Indent(0 /* _29 */, &*_30, &*level); | |
21662 | 21525 | } |
21663 | 21526 | { |
21664 | 21527 | const struct StreamOut *_31 = &(*streams).out; |
21665 | 21528 | struct string _32; memset(&_32, 0, sizeof(struct string)); |
21666 | - init$fromliteral(&_32, "->fill - 1; ", 12); | |
21667 | - PutStrLn(0 /* _30 */, &*_31, &_32); | |
21529 | + init$fromliteral(&_32, "if(", 3); | |
21530 | + PutStr(0 /* _30 */, &*_31, &_32); | |
21668 | 21531 | string$dest(&_32); |
21669 | 21532 | } |
21670 | 21533 | { |
21671 | 21534 | const struct StreamOut *_32 = &(*streams).out; |
21672 | - uint64_t _33; memset(&_33, 0, sizeof(uint64_t)); | |
21535 | + struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21673 | 21536 | { |
21674 | - uint64_t _34; memset(&_34, 0, sizeof(uint64_t)); | |
21675 | - _34 = 1; | |
21676 | - _33 = _34 + *level; | |
21677 | - _IGNORE_(_34); | |
21537 | + nonempty_to_string(&_33, &_tmpid); | |
21678 | 21538 | } |
21679 | - Indent(0 /* _31 */, &*_32, &_33); | |
21680 | - _IGNORE_(_33); | |
21539 | + PutStr(0 /* _31 */, &*_32, &_33); | |
21540 | + string$dest(&_33); | |
21681 | 21541 | } |
21682 | 21542 | { |
21683 | 21543 | const struct StreamOut *_33 = &(*streams).out; |
21684 | 21544 | struct string _34; memset(&_34, 0, sizeof(struct string)); |
21685 | - { | |
21686 | - const struct nonempty_string *_35 = &(_stack).id; | |
21687 | - nonempty_to_string(&_34, &*_35); | |
21688 | - } | |
21689 | - PutStr(0 /* _32 */, &*_33, &_34); | |
21545 | + init$fromliteral(&_34, " >= 0)", 6); | |
21546 | + PutStrLn(0 /* _32 */, &*_33, &_34); | |
21690 | 21547 | string$dest(&_34); |
21691 | 21548 | } |
21692 | 21549 | { |
21693 | 21550 | const struct StreamOut *_34 = &(*streams).out; |
21694 | - struct string _35; memset(&_35, 0, sizeof(struct string)); | |
21695 | - init$fromliteral(&_35, ".data = ", 8); | |
21696 | - PutStr(0 /* _33 */, &*_34, &_35); | |
21697 | - string$dest(&_35); | |
21551 | + Indent(0 /* _33 */, &*_34, &*level); | |
21698 | 21552 | } |
21699 | 21553 | { |
21700 | 21554 | const struct StreamOut *_35 = &(*streams).out; |
21701 | - PutStr(0 /* _34 */, &*_35, &_par); | |
21555 | + struct string _36; memset(&_36, 0, sizeof(struct string)); | |
21556 | + init$fromliteral(&_36, "{", 1); | |
21557 | + PutStrLn(0 /* _34 */, &*_35, &_36); | |
21558 | + string$dest(&_36); | |
21702 | 21559 | } |
21703 | 21560 | { |
21704 | 21561 | const struct StreamOut *_36 = &(*streams).out; |
21705 | - struct string _37; memset(&_37, 0, sizeof(struct string)); | |
21706 | - init$fromliteral(&_37, "->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!!", 76); | |
21707 | - PutStrLn(0 /* _35 */, &*_36, &_37); | |
21708 | - string$dest(&_37); | |
21562 | + uint64_t _37; memset(&_37, 0, sizeof(uint64_t)); | |
21563 | + { | |
21564 | + uint64_t _38; memset(&_38, 0, sizeof(uint64_t)); | |
21565 | + _38 = 1; | |
21566 | + _37 = _38 + *level; | |
21567 | + _IGNORE_(_38); | |
21568 | + } | |
21569 | + Indent(0 /* _35 */, &*_36, &_37); | |
21570 | + _IGNORE_(_37); | |
21709 | 21571 | } |
21710 | 21572 | { |
21711 | 21573 | const struct StreamOut *_37 = &(*streams).out; |
21712 | - uint64_t _38; memset(&_38, 0, sizeof(uint64_t)); | |
21713 | - { | |
21714 | - uint64_t _39; memset(&_39, 0, sizeof(uint64_t)); | |
21715 | - _39 = 1; | |
21716 | - _38 = _39 + *level; | |
21717 | - _IGNORE_(_39); | |
21718 | - } | |
21719 | - Indent(0 /* _36 */, &*_37, &_38); | |
21720 | - _IGNORE_(_38); | |
21574 | + struct string _38; memset(&_38, 0, sizeof(struct string)); | |
21575 | + init$fromliteral(&_38, "const uint8_t ", 14); | |
21576 | + PutStr(0 /* _36 */, &*_37, &_38); | |
21577 | + string$dest(&_38); | |
21721 | 21578 | } |
21722 | 21579 | { |
21723 | 21580 | const struct StreamOut *_38 = &(*streams).out; |
21724 | 21581 | struct string _39; memset(&_39, 0, sizeof(struct string)); |
21725 | 21582 | { |
21726 | - const struct nonempty_string *_40 = &(_stack).id; | |
21583 | + const struct nonempty_string *_40 = &(_elem).id; | |
21727 | 21584 | nonempty_to_string(&_39, &*_40); |
21728 | 21585 | } |
21729 | 21586 | PutStr(0 /* _37 */, &*_38, &_39); |
@@ -21732,534 +21589,894 @@ | ||
21732 | 21589 | { |
21733 | 21590 | const struct StreamOut *_39 = &(*streams).out; |
21734 | 21591 | struct string _40; memset(&_40, 0, sizeof(struct string)); |
21735 | - init$fromliteral(&_40, ".size = (4 * (", 14); | |
21592 | + init$fromliteral(&_40, " = (uint8_t)", 12); | |
21736 | 21593 | PutStr(0 /* _38 */, &*_39, &_40); |
21737 | 21594 | string$dest(&_40); |
21738 | 21595 | } |
21739 | 21596 | { |
21740 | 21597 | const struct StreamOut *_40 = &(*streams).out; |
21741 | - PutStr(0 /* _39 */, &*_40, &_par); | |
21598 | + struct string _41; memset(&_41, 0, sizeof(struct string)); | |
21599 | + { | |
21600 | + nonempty_to_string(&_41, &_tmpid); | |
21601 | + } | |
21602 | + PutStr(0 /* _39 */, &*_40, &_41); | |
21603 | + string$dest(&_41); | |
21742 | 21604 | } |
21743 | 21605 | { |
21744 | 21606 | const struct StreamOut *_41 = &(*streams).out; |
21745 | 21607 | struct string _42; memset(&_42, 0, sizeof(struct string)); |
21746 | - init$fromliteral(&_42, "->fill + 1) > ", 14); | |
21747 | - PutStr(0 /* _40 */, &*_41, &_42); | |
21608 | + init$fromliteral(&_42, ";", 1); | |
21609 | + PutStrLn(0 /* _40 */, &*_41, &_42); | |
21748 | 21610 | string$dest(&_42); |
21749 | 21611 | } |
21750 | 21612 | { |
21751 | - const struct StreamOut *_42 = &(*streams).out; | |
21752 | - PutStr(0 /* _41 */, &*_42, &_par); | |
21613 | + ParseReduceBlock$(0 /* _41 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &_elem); | |
21753 | 21614 | } |
21754 | - { | |
21755 | - const struct StreamOut *_43 = &(*streams).out; | |
21756 | - struct string _44; memset(&_44, 0, sizeof(struct string)); | |
21757 | - init$fromliteral(&_44, "->size + 1) ? ", 14); | |
21758 | - PutStr(0 /* _42 */, &*_43, &_44); | |
21759 | - string$dest(&_44); | |
21760 | - } | |
21761 | - { | |
21762 | - const struct StreamOut *_44 = &(*streams).out; | |
21763 | - PutStr(0 /* _43 */, &*_44, &_par); | |
21764 | - } | |
21765 | - { | |
21766 | - const struct StreamOut *_45 = &(*streams).out; | |
21767 | - struct string _46; memset(&_46, 0, sizeof(struct string)); | |
21768 | - init$fromliteral(&_46, "->size : (", 10); | |
21769 | - PutStr(0 /* _44 */, &*_45, &_46); | |
21770 | - string$dest(&_46); | |
21771 | - } | |
21772 | - { | |
21773 | - const struct StreamOut *_46 = &(*streams).out; | |
21774 | - PutStr(0 /* _45 */, &*_46, &_par); | |
21775 | - } | |
21776 | - { | |
21777 | - const struct StreamOut *_47 = &(*streams).out; | |
21778 | - struct string _48; memset(&_48, 0, sizeof(struct string)); | |
21779 | - init$fromliteral(&_48, "->size + 1) / 2 - 1;", 20); | |
21780 | - PutStrLn(0 /* _46 */, &*_47, &_48); | |
21781 | - string$dest(&_48); | |
21782 | - } | |
21783 | - { | |
21784 | - const struct type_pure_prim *_48 = &(*tp).subtype; | |
21785 | - ParseReduceBlockStack$(0 /* _47 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &*_48, &_tmp_elem_id, &_stack, &_stack_id); | |
21786 | - } | |
21787 | - { | |
21788 | - const struct StreamOut *_49 = &(*streams).out; | |
21789 | - Indent(0 /* _48 */, &*_49, &*level); | |
21790 | - } | |
21791 | - { | |
21792 | - const struct StreamOut *_50 = &(*streams).out; | |
21793 | - struct string _51; memset(&_51, 0, sizeof(struct string)); | |
21794 | - init$fromliteral(&_51, "}", 1); | |
21795 | - PutStrLn(0 /* _49 */, &*_50, &_51); | |
21796 | - string$dest(&_51); | |
21797 | - } | |
21798 | - qtypepureid$dest(&_stack); | |
21799 | - string$dest(&_stack_id); | |
21800 | - string$dest(&_tmp_elem_id); | |
21615 | + nonempty_string$dest(&_tmpid); | |
21616 | + qtypepureid$dest(&_elem); | |
21801 | 21617 | } |
21802 | - break; | |
21803 | - } | |
21804 | - case 1: // void container_stack_of_mut: | |
21805 | - { | |
21618 | + else | |
21806 | 21619 | { |
21807 | - struct string _tmp_elem_id; memset(&_tmp_elem_id, 0, sizeof(struct string)); | |
21808 | 21620 | { |
21809 | - ParseId$(&_tmp_elem_id, &*streams, &*txtpos, &*level); | |
21621 | + const struct StreamOut *_21 = &(*streams).err; | |
21622 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
21623 | + init$fromliteral(&_22, "reduce not implemented for struct/union/enum - use switch instead", 65); | |
21624 | + PutStr(0 /* _20 */, &*_21, &_22); | |
21625 | + string$dest(&_22); | |
21810 | 21626 | } |
21811 | 21627 | { |
21812 | - uint8_t _20; memset(&_20, 0, sizeof(uint8_t)); | |
21813 | - _20 = 58; | |
21814 | - AssertGet$(0 /* _19 */, &*streams, &*txtpos, &*level, &_20); | |
21815 | - _IGNORE_(_20); | |
21816 | - } | |
21817 | - { | |
21818 | - const struct StreamOut *_21 = &(*streams).out; | |
21819 | - Indent(0 /* _20 */, &*_21, &*level); | |
21820 | - } | |
21821 | - { | |
21822 | - const struct StreamOut *_22 = &(*streams).out; | |
21628 | + const struct StreamOut *_22 = &(*streams).err; | |
21823 | 21629 | struct string _23; memset(&_23, 0, sizeof(struct string)); |
21824 | - init$fromliteral(&_23, "if(", 3); | |
21630 | + { | |
21631 | + const struct nonempty_string *_24 = &(*current).id; | |
21632 | + nonempty_to_string(&_23, &*_24); | |
21633 | + } | |
21825 | 21634 | PutStr(0 /* _21 */, &*_22, &_23); |
21826 | 21635 | string$dest(&_23); |
21827 | 21636 | } |
21828 | 21637 | { |
21829 | - const struct StreamOut *_23 = &(*streams).out; | |
21830 | - PutStr(0 /* _22 */, &*_23, &_par); | |
21638 | + const struct StreamOut *_23 = &(*streams).err; | |
21639 | + Fail$(0 /* _22 */, &*_23, &*txtpos); | |
21831 | 21640 | } |
21641 | + } | |
21642 | + } | |
21643 | + { | |
21644 | + const struct StreamOut *_21 = &(*streams).out; | |
21645 | + Indent(0 /* _20 */, &*_21, &*level); | |
21646 | + } | |
21647 | + { | |
21648 | + const struct StreamOut *_22 = &(*streams).out; | |
21649 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
21650 | + init$fromliteral(&_23, "}\n", 2); | |
21651 | + PutStr(0 /* _21 */, &*_22, &_23); | |
21652 | + string$dest(&_23); | |
21653 | + } | |
21654 | + } | |
21655 | + break; | |
21656 | + } | |
21657 | + case 1: // struct stack/*type_pure_wrapped*/ type_pure_wrapped: | |
21658 | + { | |
21659 | + const struct type_pure_wrapped *tp = ((*_14).type_pure_wrapped).data; | |
21660 | + { | |
21661 | + struct container_type _tpw; memset(&_tpw, 0, sizeof(struct container_type)); | |
21662 | + container_type$copy(&_tpw, &(*tp).which); | |
21663 | + const struct container_type *_17 = &(_tpw); | |
21664 | + switch((*_17).type) | |
21665 | + { | |
21666 | + case 0: // void container_stack: | |
21667 | + { | |
21832 | 21668 | { |
21833 | - const struct StreamOut *_24 = &(*streams).out; | |
21834 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21835 | - init$fromliteral(&_25, "->fill > 0)", 11); | |
21836 | - PutStrLn(0 /* _23 */, &*_24, &_25); | |
21837 | - string$dest(&_25); | |
21838 | - } | |
21839 | - { | |
21840 | - const struct StreamOut *_25 = &(*streams).out; | |
21841 | - Indent(0 /* _24 */, &*_25, &*level); | |
21842 | - } | |
21843 | - { | |
21844 | - const struct StreamOut *_26 = &(*streams).out; | |
21845 | - struct string _27; memset(&_27, 0, sizeof(struct string)); | |
21846 | - init$fromliteral(&_27, "{", 1); | |
21847 | - PutStrLn(0 /* _25 */, &*_26, &_27); | |
21848 | - string$dest(&_27); | |
21849 | - } | |
21850 | - struct string _stack_id; memset(&_stack_id, 0, sizeof(struct string)); | |
21851 | - string$copy(&_stack_id, &(_reduced_id)); | |
21852 | - struct qtypepureid _stack; memset(&_stack, 0, sizeof(struct qtypepureid)); | |
21853 | - { | |
21854 | - struct qtypepure _26; memset(&_26, 0, sizeof(struct qtypepure)); | |
21669 | + struct string _tmp_elem_id; memset(&_tmp_elem_id, 0, sizeof(struct string)); | |
21855 | 21670 | { |
21856 | - struct type_pure _27; memset(&_27, 0, sizeof(struct type_pure)); | |
21671 | + ParseId$(&_tmp_elem_id, &*streams, &*txtpos, &*level); | |
21672 | + } | |
21673 | + { | |
21674 | + uint8_t _20; memset(&_20, 0, sizeof(uint8_t)); | |
21675 | + _20 = 58; | |
21676 | + AssertGet$(0 /* _19 */, &*streams, &*txtpos, &*level, &_20); | |
21677 | + _IGNORE_(_20); | |
21678 | + } | |
21679 | + { | |
21680 | + const struct StreamOut *_21 = &(*streams).out; | |
21681 | + Indent(0 /* _20 */, &*_21, &*level); | |
21682 | + } | |
21683 | + { | |
21684 | + const struct StreamOut *_22 = &(*streams).out; | |
21685 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
21686 | + init$fromliteral(&_23, "if(", 3); | |
21687 | + PutStr(0 /* _21 */, &*_22, &_23); | |
21688 | + string$dest(&_23); | |
21689 | + } | |
21690 | + { | |
21691 | + const struct StreamOut *_23 = &(*streams).out; | |
21692 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
21857 | 21693 | { |
21858 | - struct container_type _28; memset(&_28, 0, sizeof(struct container_type)); | |
21694 | + nonempty_to_string(&_24, &_par); | |
21695 | + } | |
21696 | + PutStr(0 /* _22 */, &*_23, &_24); | |
21697 | + string$dest(&_24); | |
21698 | + } | |
21699 | + { | |
21700 | + const struct StreamOut *_24 = &(*streams).out; | |
21701 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21702 | + init$fromliteral(&_25, "->fill > 0)", 11); | |
21703 | + PutStrLn(0 /* _23 */, &*_24, &_25); | |
21704 | + string$dest(&_25); | |
21705 | + } | |
21706 | + { | |
21707 | + const struct StreamOut *_25 = &(*streams).out; | |
21708 | + Indent(0 /* _24 */, &*_25, &*level); | |
21709 | + } | |
21710 | + { | |
21711 | + const struct StreamOut *_26 = &(*streams).out; | |
21712 | + struct string _27; memset(&_27, 0, sizeof(struct string)); | |
21713 | + init$fromliteral(&_27, "{", 1); | |
21714 | + PutStrLn(0 /* _25 */, &*_26, &_27); | |
21715 | + string$dest(&_27); | |
21716 | + } | |
21717 | + struct nonempty_string _stack_id; memset(&_stack_id, 0, sizeof(struct nonempty_string)); | |
21718 | + nonempty_string$copy(&_stack_id, &(*reduced_id)); | |
21719 | + struct qtypepureid _stack; memset(&_stack, 0, sizeof(struct qtypepureid)); | |
21720 | + { | |
21721 | + struct qtypepure _26; memset(&_26, 0, sizeof(struct qtypepure)); | |
21722 | + { | |
21723 | + struct type_pure _27; memset(&_27, 0, sizeof(struct type_pure)); | |
21859 | 21724 | { |
21860 | - container_stack_of_mut(&_28); | |
21725 | + struct container_type _28; memset(&_28, 0, sizeof(struct container_type)); | |
21726 | + { | |
21727 | + container_stack(&_28); | |
21728 | + } | |
21729 | + const struct type_pure_prim *_29 = &(*tp).subtype; | |
21730 | + type_pure_wrapped(&_27, &_28, &*_29); | |
21731 | + container_type$dest(&_28); | |
21861 | 21732 | } |
21862 | - const struct type_pure_prim *_29 = &(*tp).subtype; | |
21863 | - type_pure_wrapped(&_27, &_28, &*_29); | |
21864 | - container_type$dest(&_28); | |
21733 | + constqtp(&_26, &_27); | |
21734 | + type_pure$dest(&_27); | |
21865 | 21735 | } |
21866 | - constqtp(&_26, &_27); | |
21867 | - type_pure$dest(&_27); | |
21736 | + struct nonempty_string _27; memset(&_27, 0, sizeof(struct nonempty_string)); | |
21737 | + { | |
21738 | + uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); | |
21739 | + _28 = 95; | |
21740 | + struct string _29; memset(&_29, 0, sizeof(struct string)); | |
21741 | + { | |
21742 | + nonempty_to_string(&_29, &_stack_id); | |
21743 | + } | |
21744 | + nonempty_string(&_27, &_28, &_29); | |
21745 | + string$dest(&_29); | |
21746 | + _IGNORE_(_28); | |
21747 | + } | |
21748 | + qtypepureid(&_stack, &_26, &_27); | |
21749 | + nonempty_string$dest(&_27); | |
21750 | + qtypepure$dest(&_26); | |
21868 | 21751 | } |
21869 | - struct nonempty_string _27; memset(&_27, 0, sizeof(struct nonempty_string)); | |
21870 | 21752 | { |
21871 | - uint8_t _28; memset(&_28, 0, sizeof(uint8_t)); | |
21872 | - _28 = 95; | |
21873 | - nonempty_string(&_27, &_28, &_stack_id); | |
21753 | + const struct StreamOut *_27 = &(*streams).out; | |
21754 | + uint64_t _28; memset(&_28, 0, sizeof(uint64_t)); | |
21755 | + { | |
21756 | + uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); | |
21757 | + _29 = 1; | |
21758 | + _28 = _29 + *level; | |
21759 | + _IGNORE_(_29); | |
21760 | + } | |
21761 | + struct stack/*structdef*/ *_29 = &(*state).structs; | |
21762 | + EmitLet$(0 /* _26 */, &*_27, &_28, &*_29, &_stack); | |
21874 | 21763 | _IGNORE_(_28); |
21875 | 21764 | } |
21876 | - qtypepureid(&_stack, &_26, &_27); | |
21877 | - nonempty_string$dest(&_27); | |
21878 | - qtypepure$dest(&_26); | |
21879 | - } | |
21880 | - { | |
21881 | - const struct StreamOut *_27 = &(*streams).out; | |
21882 | - uint64_t _28; memset(&_28, 0, sizeof(uint64_t)); | |
21883 | 21765 | { |
21766 | + const struct StreamOut *_28 = &(*streams).out; | |
21884 | 21767 | uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); |
21885 | - _29 = 1; | |
21886 | - _28 = _29 + *level; | |
21768 | + { | |
21769 | + uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); | |
21770 | + _30 = 1; | |
21771 | + _29 = _30 + *level; | |
21772 | + _IGNORE_(_30); | |
21773 | + } | |
21774 | + Indent(0 /* _27 */, &*_28, &_29); | |
21887 | 21775 | _IGNORE_(_29); |
21888 | 21776 | } |
21889 | - struct stack/*structdef*/ *_29 = &(*state).structs; | |
21890 | - EmitLet$(0 /* _26 */, &*_27, &_28, &*_29, &_stack); | |
21891 | - _IGNORE_(_28); | |
21777 | + { | |
21778 | + const struct StreamOut *_29 = &(*streams).out; | |
21779 | + struct string _30; memset(&_30, 0, sizeof(struct string)); | |
21780 | + { | |
21781 | + const struct nonempty_string *_31 = &(_stack).id; | |
21782 | + nonempty_to_string(&_30, &*_31); | |
21783 | + } | |
21784 | + PutStr(0 /* _28 */, &*_29, &_30); | |
21785 | + string$dest(&_30); | |
21786 | + } | |
21787 | + { | |
21788 | + const struct StreamOut *_30 = &(*streams).out; | |
21789 | + struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21790 | + init$fromliteral(&_31, ".fill = ", 8); | |
21791 | + PutStr(0 /* _29 */, &*_30, &_31); | |
21792 | + string$dest(&_31); | |
21793 | + } | |
21794 | + { | |
21795 | + const struct StreamOut *_31 = &(*streams).out; | |
21796 | + struct string _32; memset(&_32, 0, sizeof(struct string)); | |
21797 | + { | |
21798 | + nonempty_to_string(&_32, &_par); | |
21799 | + } | |
21800 | + PutStr(0 /* _30 */, &*_31, &_32); | |
21801 | + string$dest(&_32); | |
21802 | + } | |
21803 | + { | |
21804 | + const struct StreamOut *_32 = &(*streams).out; | |
21805 | + struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21806 | + init$fromliteral(&_33, "->fill - 1; ", 12); | |
21807 | + PutStrLn(0 /* _31 */, &*_32, &_33); | |
21808 | + string$dest(&_33); | |
21809 | + } | |
21810 | + { | |
21811 | + const struct StreamOut *_33 = &(*streams).out; | |
21812 | + uint64_t _34; memset(&_34, 0, sizeof(uint64_t)); | |
21813 | + { | |
21814 | + uint64_t _35; memset(&_35, 0, sizeof(uint64_t)); | |
21815 | + _35 = 1; | |
21816 | + _34 = _35 + *level; | |
21817 | + _IGNORE_(_35); | |
21818 | + } | |
21819 | + Indent(0 /* _32 */, &*_33, &_34); | |
21820 | + _IGNORE_(_34); | |
21821 | + } | |
21822 | + { | |
21823 | + const struct StreamOut *_34 = &(*streams).out; | |
21824 | + struct string _35; memset(&_35, 0, sizeof(struct string)); | |
21825 | + { | |
21826 | + const struct nonempty_string *_36 = &(_stack).id; | |
21827 | + nonempty_to_string(&_35, &*_36); | |
21828 | + } | |
21829 | + PutStr(0 /* _33 */, &*_34, &_35); | |
21830 | + string$dest(&_35); | |
21831 | + } | |
21832 | + { | |
21833 | + const struct StreamOut *_35 = &(*streams).out; | |
21834 | + struct string _36; memset(&_36, 0, sizeof(struct string)); | |
21835 | + init$fromliteral(&_36, ".data = ", 8); | |
21836 | + PutStr(0 /* _34 */, &*_35, &_36); | |
21837 | + string$dest(&_36); | |
21838 | + } | |
21839 | + { | |
21840 | + const struct StreamOut *_36 = &(*streams).out; | |
21841 | + struct string _37; memset(&_37, 0, sizeof(struct string)); | |
21842 | + { | |
21843 | + nonempty_to_string(&_37, &_par); | |
21844 | + } | |
21845 | + PutStr(0 /* _35 */, &*_36, &_37); | |
21846 | + string$dest(&_37); | |
21847 | + } | |
21848 | + { | |
21849 | + const struct StreamOut *_37 = &(*streams).out; | |
21850 | + struct string _38; memset(&_38, 0, sizeof(struct string)); | |
21851 | + init$fromliteral(&_38, "->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!!", 76); | |
21852 | + PutStrLn(0 /* _36 */, &*_37, &_38); | |
21853 | + string$dest(&_38); | |
21854 | + } | |
21855 | + { | |
21856 | + const struct StreamOut *_38 = &(*streams).out; | |
21857 | + uint64_t _39; memset(&_39, 0, sizeof(uint64_t)); | |
21858 | + { | |
21859 | + uint64_t _40; memset(&_40, 0, sizeof(uint64_t)); | |
21860 | + _40 = 1; | |
21861 | + _39 = _40 + *level; | |
21862 | + _IGNORE_(_40); | |
21863 | + } | |
21864 | + Indent(0 /* _37 */, &*_38, &_39); | |
21865 | + _IGNORE_(_39); | |
21866 | + } | |
21867 | + { | |
21868 | + const struct StreamOut *_39 = &(*streams).out; | |
21869 | + struct string _40; memset(&_40, 0, sizeof(struct string)); | |
21870 | + { | |
21871 | + const struct nonempty_string *_41 = &(_stack).id; | |
21872 | + nonempty_to_string(&_40, &*_41); | |
21873 | + } | |
21874 | + PutStr(0 /* _38 */, &*_39, &_40); | |
21875 | + string$dest(&_40); | |
21876 | + } | |
21877 | + { | |
21878 | + const struct StreamOut *_40 = &(*streams).out; | |
21879 | + struct string _41; memset(&_41, 0, sizeof(struct string)); | |
21880 | + init$fromliteral(&_41, ".size = (4 * (", 14); | |
21881 | + PutStr(0 /* _39 */, &*_40, &_41); | |
21882 | + string$dest(&_41); | |
21883 | + } | |
21884 | + { | |
21885 | + const struct StreamOut *_41 = &(*streams).out; | |
21886 | + struct string _42; memset(&_42, 0, sizeof(struct string)); | |
21887 | + { | |
21888 | + nonempty_to_string(&_42, &_par); | |
21889 | + } | |
21890 | + PutStr(0 /* _40 */, &*_41, &_42); | |
21891 | + string$dest(&_42); | |
21892 | + } | |
21893 | + { | |
21894 | + const struct StreamOut *_42 = &(*streams).out; | |
21895 | + struct string _43; memset(&_43, 0, sizeof(struct string)); | |
21896 | + init$fromliteral(&_43, "->fill + 1) > ", 14); | |
21897 | + PutStr(0 /* _41 */, &*_42, &_43); | |
21898 | + string$dest(&_43); | |
21899 | + } | |
21900 | + { | |
21901 | + const struct StreamOut *_43 = &(*streams).out; | |
21902 | + struct string _44; memset(&_44, 0, sizeof(struct string)); | |
21903 | + { | |
21904 | + nonempty_to_string(&_44, &_par); | |
21905 | + } | |
21906 | + PutStr(0 /* _42 */, &*_43, &_44); | |
21907 | + string$dest(&_44); | |
21908 | + } | |
21909 | + { | |
21910 | + const struct StreamOut *_44 = &(*streams).out; | |
21911 | + struct string _45; memset(&_45, 0, sizeof(struct string)); | |
21912 | + init$fromliteral(&_45, "->size + 1) ? ", 14); | |
21913 | + PutStr(0 /* _43 */, &*_44, &_45); | |
21914 | + string$dest(&_45); | |
21915 | + } | |
21916 | + { | |
21917 | + const struct StreamOut *_45 = &(*streams).out; | |
21918 | + struct string _46; memset(&_46, 0, sizeof(struct string)); | |
21919 | + { | |
21920 | + nonempty_to_string(&_46, &_par); | |
21921 | + } | |
21922 | + PutStr(0 /* _44 */, &*_45, &_46); | |
21923 | + string$dest(&_46); | |
21924 | + } | |
21925 | + { | |
21926 | + const struct StreamOut *_46 = &(*streams).out; | |
21927 | + struct string _47; memset(&_47, 0, sizeof(struct string)); | |
21928 | + init$fromliteral(&_47, "->size : (", 10); | |
21929 | + PutStr(0 /* _45 */, &*_46, &_47); | |
21930 | + string$dest(&_47); | |
21931 | + } | |
21932 | + { | |
21933 | + const struct StreamOut *_47 = &(*streams).out; | |
21934 | + struct string _48; memset(&_48, 0, sizeof(struct string)); | |
21935 | + { | |
21936 | + nonempty_to_string(&_48, &_par); | |
21937 | + } | |
21938 | + PutStr(0 /* _46 */, &*_47, &_48); | |
21939 | + string$dest(&_48); | |
21940 | + } | |
21941 | + { | |
21942 | + const struct StreamOut *_48 = &(*streams).out; | |
21943 | + struct string _49; memset(&_49, 0, sizeof(struct string)); | |
21944 | + init$fromliteral(&_49, "->size + 1) / 2 - 1;", 20); | |
21945 | + PutStrLn(0 /* _47 */, &*_48, &_49); | |
21946 | + string$dest(&_49); | |
21947 | + } | |
21948 | + { | |
21949 | + const struct type_pure_prim *_49 = &(*tp).subtype; | |
21950 | + ParseReduceBlockStack$(0 /* _48 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &*_49, &_tmp_elem_id, &_stack, &_stack_id); | |
21951 | + } | |
21952 | + { | |
21953 | + const struct StreamOut *_50 = &(*streams).out; | |
21954 | + Indent(0 /* _49 */, &*_50, &*level); | |
21955 | + } | |
21956 | + { | |
21957 | + const struct StreamOut *_51 = &(*streams).out; | |
21958 | + struct string _52; memset(&_52, 0, sizeof(struct string)); | |
21959 | + init$fromliteral(&_52, "}", 1); | |
21960 | + PutStrLn(0 /* _50 */, &*_51, &_52); | |
21961 | + string$dest(&_52); | |
21962 | + } | |
21963 | + qtypepureid$dest(&_stack); | |
21964 | + nonempty_string$dest(&_stack_id); | |
21965 | + string$dest(&_tmp_elem_id); | |
21892 | 21966 | } |
21967 | + break; | |
21968 | + } | |
21969 | + case 1: // void container_stack_of_mut: | |
21970 | + { | |
21893 | 21971 | { |
21894 | - const struct StreamOut *_28 = &(*streams).out; | |
21895 | - uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); | |
21972 | + struct string _tmp_elem_id; memset(&_tmp_elem_id, 0, sizeof(struct string)); | |
21896 | 21973 | { |
21974 | + ParseId$(&_tmp_elem_id, &*streams, &*txtpos, &*level); | |
21975 | + } | |
21976 | + { | |
21977 | + uint8_t _21; memset(&_21, 0, sizeof(uint8_t)); | |
21978 | + _21 = 58; | |
21979 | + AssertGet$(0 /* _20 */, &*streams, &*txtpos, &*level, &_21); | |
21980 | + _IGNORE_(_21); | |
21981 | + } | |
21982 | + { | |
21983 | + const struct StreamOut *_22 = &(*streams).out; | |
21984 | + Indent(0 /* _21 */, &*_22, &*level); | |
21985 | + } | |
21986 | + { | |
21987 | + const struct StreamOut *_23 = &(*streams).out; | |
21988 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
21989 | + init$fromliteral(&_24, "if(", 3); | |
21990 | + PutStr(0 /* _22 */, &*_23, &_24); | |
21991 | + string$dest(&_24); | |
21992 | + } | |
21993 | + { | |
21994 | + const struct StreamOut *_24 = &(*streams).out; | |
21995 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
21996 | + { | |
21997 | + nonempty_to_string(&_25, &_par); | |
21998 | + } | |
21999 | + PutStr(0 /* _23 */, &*_24, &_25); | |
22000 | + string$dest(&_25); | |
22001 | + } | |
22002 | + { | |
22003 | + const struct StreamOut *_25 = &(*streams).out; | |
22004 | + struct string _26; memset(&_26, 0, sizeof(struct string)); | |
22005 | + init$fromliteral(&_26, "->fill > 0)", 11); | |
22006 | + PutStrLn(0 /* _24 */, &*_25, &_26); | |
22007 | + string$dest(&_26); | |
22008 | + } | |
22009 | + { | |
22010 | + const struct StreamOut *_26 = &(*streams).out; | |
22011 | + Indent(0 /* _25 */, &*_26, &*level); | |
22012 | + } | |
22013 | + { | |
22014 | + const struct StreamOut *_27 = &(*streams).out; | |
22015 | + struct string _28; memset(&_28, 0, sizeof(struct string)); | |
22016 | + init$fromliteral(&_28, "{", 1); | |
22017 | + PutStrLn(0 /* _26 */, &*_27, &_28); | |
22018 | + string$dest(&_28); | |
22019 | + } | |
22020 | + struct nonempty_string _stack_id; memset(&_stack_id, 0, sizeof(struct nonempty_string)); | |
22021 | + nonempty_string$copy(&_stack_id, &(*reduced_id)); | |
22022 | + struct qtypepureid _stack; memset(&_stack, 0, sizeof(struct qtypepureid)); | |
22023 | + { | |
22024 | + struct qtypepure _27; memset(&_27, 0, sizeof(struct qtypepure)); | |
22025 | + { | |
22026 | + struct type_pure _28; memset(&_28, 0, sizeof(struct type_pure)); | |
22027 | + { | |
22028 | + struct container_type _29; memset(&_29, 0, sizeof(struct container_type)); | |
22029 | + { | |
22030 | + container_stack_of_mut(&_29); | |
22031 | + } | |
22032 | + const struct type_pure_prim *_30 = &(*tp).subtype; | |
22033 | + type_pure_wrapped(&_28, &_29, &*_30); | |
22034 | + container_type$dest(&_29); | |
22035 | + } | |
22036 | + constqtp(&_27, &_28); | |
22037 | + type_pure$dest(&_28); | |
22038 | + } | |
22039 | + struct nonempty_string _28; memset(&_28, 0, sizeof(struct nonempty_string)); | |
22040 | + { | |
22041 | + uint8_t _29; memset(&_29, 0, sizeof(uint8_t)); | |
22042 | + _29 = 95; | |
22043 | + struct string _30; memset(&_30, 0, sizeof(struct string)); | |
22044 | + { | |
22045 | + nonempty_to_string(&_30, &_stack_id); | |
22046 | + } | |
22047 | + nonempty_string(&_28, &_29, &_30); | |
22048 | + string$dest(&_30); | |
22049 | + _IGNORE_(_29); | |
22050 | + } | |
22051 | + qtypepureid(&_stack, &_27, &_28); | |
22052 | + nonempty_string$dest(&_28); | |
22053 | + qtypepure$dest(&_27); | |
22054 | + } | |
22055 | + { | |
22056 | + const struct StreamOut *_28 = &(*streams).out; | |
22057 | + uint64_t _29; memset(&_29, 0, sizeof(uint64_t)); | |
22058 | + { | |
22059 | + uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); | |
22060 | + _30 = 1; | |
22061 | + _29 = _30 + *level; | |
22062 | + _IGNORE_(_30); | |
22063 | + } | |
22064 | + struct stack/*structdef*/ *_30 = &(*state).structs; | |
22065 | + EmitLet$(0 /* _27 */, &*_28, &_29, &*_30, &_stack); | |
22066 | + _IGNORE_(_29); | |
22067 | + } | |
22068 | + { | |
22069 | + const struct StreamOut *_29 = &(*streams).out; | |
21897 | 22070 | uint64_t _30; memset(&_30, 0, sizeof(uint64_t)); |
21898 | - _30 = 1; | |
21899 | - _29 = _30 + *level; | |
22071 | + { | |
22072 | + uint64_t _31; memset(&_31, 0, sizeof(uint64_t)); | |
22073 | + _31 = 1; | |
22074 | + _30 = _31 + *level; | |
22075 | + _IGNORE_(_31); | |
22076 | + } | |
22077 | + Indent(0 /* _28 */, &*_29, &_30); | |
21900 | 22078 | _IGNORE_(_30); |
21901 | 22079 | } |
21902 | - Indent(0 /* _27 */, &*_28, &_29); | |
21903 | - _IGNORE_(_29); | |
21904 | - } | |
21905 | - { | |
21906 | - const struct StreamOut *_29 = &(*streams).out; | |
21907 | - struct string _30; memset(&_30, 0, sizeof(struct string)); | |
21908 | 22080 | { |
21909 | - const struct nonempty_string *_31 = &(_stack).id; | |
21910 | - nonempty_to_string(&_30, &*_31); | |
22081 | + const struct StreamOut *_30 = &(*streams).out; | |
22082 | + struct string _31; memset(&_31, 0, sizeof(struct string)); | |
22083 | + { | |
22084 | + const struct nonempty_string *_32 = &(_stack).id; | |
22085 | + nonempty_to_string(&_31, &*_32); | |
22086 | + } | |
22087 | + PutStr(0 /* _29 */, &*_30, &_31); | |
22088 | + string$dest(&_31); | |
21911 | 22089 | } |
21912 | - PutStr(0 /* _28 */, &*_29, &_30); | |
21913 | - string$dest(&_30); | |
21914 | - } | |
21915 | - { | |
21916 | - const struct StreamOut *_30 = &(*streams).out; | |
21917 | - struct string _31; memset(&_31, 0, sizeof(struct string)); | |
21918 | - init$fromliteral(&_31, ".fill = ", 8); | |
21919 | - PutStr(0 /* _29 */, &*_30, &_31); | |
21920 | - string$dest(&_31); | |
21921 | - } | |
21922 | - { | |
21923 | - const struct StreamOut *_31 = &(*streams).out; | |
21924 | - PutStr(0 /* _30 */, &*_31, &_par); | |
21925 | - } | |
21926 | - { | |
21927 | - const struct StreamOut *_32 = &(*streams).out; | |
21928 | - struct string _33; memset(&_33, 0, sizeof(struct string)); | |
21929 | - init$fromliteral(&_33, "->fill - 1; ", 12); | |
21930 | - PutStrLn(0 /* _31 */, &*_32, &_33); | |
21931 | - string$dest(&_33); | |
21932 | - } | |
21933 | - { | |
21934 | - const struct StreamOut *_33 = &(*streams).out; | |
21935 | - uint64_t _34; memset(&_34, 0, sizeof(uint64_t)); | |
21936 | 22090 | { |
22091 | + const struct StreamOut *_31 = &(*streams).out; | |
22092 | + struct string _32; memset(&_32, 0, sizeof(struct string)); | |
22093 | + init$fromliteral(&_32, ".fill = ", 8); | |
22094 | + PutStr(0 /* _30 */, &*_31, &_32); | |
22095 | + string$dest(&_32); | |
22096 | + } | |
22097 | + { | |
22098 | + const struct StreamOut *_32 = &(*streams).out; | |
22099 | + struct string _33; memset(&_33, 0, sizeof(struct string)); | |
22100 | + { | |
22101 | + nonempty_to_string(&_33, &_par); | |
22102 | + } | |
22103 | + PutStr(0 /* _31 */, &*_32, &_33); | |
22104 | + string$dest(&_33); | |
22105 | + } | |
22106 | + { | |
22107 | + const struct StreamOut *_33 = &(*streams).out; | |
22108 | + struct string _34; memset(&_34, 0, sizeof(struct string)); | |
22109 | + init$fromliteral(&_34, "->fill - 1; ", 12); | |
22110 | + PutStrLn(0 /* _32 */, &*_33, &_34); | |
22111 | + string$dest(&_34); | |
22112 | + } | |
22113 | + { | |
22114 | + const struct StreamOut *_34 = &(*streams).out; | |
21937 | 22115 | uint64_t _35; memset(&_35, 0, sizeof(uint64_t)); |
21938 | - _35 = 1; | |
21939 | - _34 = _35 + *level; | |
22116 | + { | |
22117 | + uint64_t _36; memset(&_36, 0, sizeof(uint64_t)); | |
22118 | + _36 = 1; | |
22119 | + _35 = _36 + *level; | |
22120 | + _IGNORE_(_36); | |
22121 | + } | |
22122 | + Indent(0 /* _33 */, &*_34, &_35); | |
21940 | 22123 | _IGNORE_(_35); |
21941 | 22124 | } |
21942 | - Indent(0 /* _32 */, &*_33, &_34); | |
21943 | - _IGNORE_(_34); | |
21944 | - } | |
21945 | - { | |
21946 | - const struct StreamOut *_34 = &(*streams).out; | |
21947 | - struct string _35; memset(&_35, 0, sizeof(struct string)); | |
21948 | 22125 | { |
21949 | - const struct nonempty_string *_36 = &(_stack).id; | |
21950 | - nonempty_to_string(&_35, &*_36); | |
22126 | + const struct StreamOut *_35 = &(*streams).out; | |
22127 | + struct string _36; memset(&_36, 0, sizeof(struct string)); | |
22128 | + { | |
22129 | + const struct nonempty_string *_37 = &(_stack).id; | |
22130 | + nonempty_to_string(&_36, &*_37); | |
22131 | + } | |
22132 | + PutStr(0 /* _34 */, &*_35, &_36); | |
22133 | + string$dest(&_36); | |
21951 | 22134 | } |
21952 | - PutStr(0 /* _33 */, &*_34, &_35); | |
21953 | - string$dest(&_35); | |
21954 | - } | |
21955 | - { | |
21956 | - const struct StreamOut *_35 = &(*streams).out; | |
21957 | - struct string _36; memset(&_36, 0, sizeof(struct string)); | |
21958 | - init$fromliteral(&_36, ".data = ", 8); | |
21959 | - PutStr(0 /* _34 */, &*_35, &_36); | |
21960 | - string$dest(&_36); | |
21961 | - } | |
21962 | - { | |
21963 | - const struct StreamOut *_36 = &(*streams).out; | |
21964 | - PutStr(0 /* _35 */, &*_36, &_par); | |
21965 | - } | |
21966 | - { | |
21967 | - const struct StreamOut *_37 = &(*streams).out; | |
21968 | - struct string _38; memset(&_38, 0, sizeof(struct string)); | |
21969 | - init$fromliteral(&_38, "->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!!", 76); | |
21970 | - PutStrLn(0 /* _36 */, &*_37, &_38); | |
21971 | - string$dest(&_38); | |
21972 | - } | |
21973 | - { | |
21974 | - const struct StreamOut *_38 = &(*streams).out; | |
21975 | - uint64_t _39; memset(&_39, 0, sizeof(uint64_t)); | |
21976 | 22135 | { |
22136 | + const struct StreamOut *_36 = &(*streams).out; | |
22137 | + struct string _37; memset(&_37, 0, sizeof(struct string)); | |
22138 | + init$fromliteral(&_37, ".data = ", 8); | |
22139 | + PutStr(0 /* _35 */, &*_36, &_37); | |
22140 | + string$dest(&_37); | |
22141 | + } | |
22142 | + { | |
22143 | + const struct StreamOut *_37 = &(*streams).out; | |
22144 | + struct string _38; memset(&_38, 0, sizeof(struct string)); | |
22145 | + { | |
22146 | + nonempty_to_string(&_38, &_par); | |
22147 | + } | |
22148 | + PutStr(0 /* _36 */, &*_37, &_38); | |
22149 | + string$dest(&_38); | |
22150 | + } | |
22151 | + { | |
22152 | + const struct StreamOut *_38 = &(*streams).out; | |
22153 | + struct string _39; memset(&_39, 0, sizeof(struct string)); | |
22154 | + init$fromliteral(&_39, "->data; // REFERENCE - memory must NOT be de-allocated when leaving scope!!!", 76); | |
22155 | + PutStrLn(0 /* _37 */, &*_38, &_39); | |
22156 | + string$dest(&_39); | |
22157 | + } | |
22158 | + { | |
22159 | + const struct StreamOut *_39 = &(*streams).out; | |
21977 | 22160 | uint64_t _40; memset(&_40, 0, sizeof(uint64_t)); |
21978 | - _40 = 1; | |
21979 | - _39 = _40 + *level; | |
22161 | + { | |
22162 | + uint64_t _41; memset(&_41, 0, sizeof(uint64_t)); | |
22163 | + _41 = 1; | |
22164 | + _40 = _41 + *level; | |
22165 | + _IGNORE_(_41); | |
22166 | + } | |
22167 | + Indent(0 /* _38 */, &*_39, &_40); | |
21980 | 22168 | _IGNORE_(_40); |
21981 | 22169 | } |
21982 | - Indent(0 /* _37 */, &*_38, &_39); | |
21983 | - _IGNORE_(_39); | |
21984 | - } | |
21985 | - { | |
21986 | - const struct StreamOut *_39 = &(*streams).out; | |
21987 | - struct string _40; memset(&_40, 0, sizeof(struct string)); | |
21988 | 22170 | { |
21989 | - const struct nonempty_string *_41 = &(_stack).id; | |
21990 | - nonempty_to_string(&_40, &*_41); | |
22171 | + const struct StreamOut *_40 = &(*streams).out; | |
22172 | + struct string _41; memset(&_41, 0, sizeof(struct string)); | |
22173 | + { | |
22174 | + const struct nonempty_string *_42 = &(_stack).id; | |
22175 | + nonempty_to_string(&_41, &*_42); | |
22176 | + } | |
22177 | + PutStr(0 /* _39 */, &*_40, &_41); | |
22178 | + string$dest(&_41); | |
21991 | 22179 | } |
21992 | - PutStr(0 /* _38 */, &*_39, &_40); | |
21993 | - string$dest(&_40); | |
22180 | + { | |
22181 | + const struct StreamOut *_41 = &(*streams).out; | |
22182 | + struct string _42; memset(&_42, 0, sizeof(struct string)); | |
22183 | + init$fromliteral(&_42, ".size = (4 * (", 14); | |
22184 | + PutStr(0 /* _40 */, &*_41, &_42); | |
22185 | + string$dest(&_42); | |
22186 | + } | |
22187 | + { | |
22188 | + const struct StreamOut *_42 = &(*streams).out; | |
22189 | + struct string _43; memset(&_43, 0, sizeof(struct string)); | |
22190 | + { | |
22191 | + nonempty_to_string(&_43, &_par); | |
22192 | + } | |
22193 | + PutStr(0 /* _41 */, &*_42, &_43); | |
22194 | + string$dest(&_43); | |
22195 | + } | |
22196 | + { | |
22197 | + const struct StreamOut *_43 = &(*streams).out; | |
22198 | + struct string _44; memset(&_44, 0, sizeof(struct string)); | |
22199 | + init$fromliteral(&_44, "->fill + 1) > ", 14); | |
22200 | + PutStr(0 /* _42 */, &*_43, &_44); | |
22201 | + string$dest(&_44); | |
22202 | + } | |
22203 | + { | |
22204 | + const struct StreamOut *_44 = &(*streams).out; | |
22205 | + struct string _45; memset(&_45, 0, sizeof(struct string)); | |
22206 | + { | |
22207 | + nonempty_to_string(&_45, &_par); | |
22208 | + } | |
22209 | + PutStr(0 /* _43 */, &*_44, &_45); | |
22210 | + string$dest(&_45); | |
22211 | + } | |
22212 | + { | |
22213 | + const struct StreamOut *_45 = &(*streams).out; | |
22214 | + struct string _46; memset(&_46, 0, sizeof(struct string)); | |
22215 | + init$fromliteral(&_46, "->size + 1) ? ", 14); | |
22216 | + PutStr(0 /* _44 */, &*_45, &_46); | |
22217 | + string$dest(&_46); | |
22218 | + } | |
22219 | + { | |
22220 | + const struct StreamOut *_46 = &(*streams).out; | |
22221 | + struct string _47; memset(&_47, 0, sizeof(struct string)); | |
22222 | + { | |
22223 | + nonempty_to_string(&_47, &_par); | |
22224 | + } | |
22225 | + PutStr(0 /* _45 */, &*_46, &_47); | |
22226 | + string$dest(&_47); | |
22227 | + } | |
22228 | + { | |
22229 | + const struct StreamOut *_47 = &(*streams).out; | |
22230 | + struct string _48; memset(&_48, 0, sizeof(struct string)); | |
22231 | + init$fromliteral(&_48, "->size : (", 10); | |
22232 | + PutStr(0 /* _46 */, &*_47, &_48); | |
22233 | + string$dest(&_48); | |
22234 | + } | |
22235 | + { | |
22236 | + const struct StreamOut *_48 = &(*streams).out; | |
22237 | + struct string _49; memset(&_49, 0, sizeof(struct string)); | |
22238 | + { | |
22239 | + nonempty_to_string(&_49, &_par); | |
22240 | + } | |
22241 | + PutStr(0 /* _47 */, &*_48, &_49); | |
22242 | + string$dest(&_49); | |
22243 | + } | |
22244 | + { | |
22245 | + const struct StreamOut *_49 = &(*streams).out; | |
22246 | + struct string _50; memset(&_50, 0, sizeof(struct string)); | |
22247 | + init$fromliteral(&_50, "->size + 1) / 2 - 1;", 20); | |
22248 | + PutStrLn(0 /* _48 */, &*_49, &_50); | |
22249 | + string$dest(&_50); | |
22250 | + } | |
22251 | + { | |
22252 | + const struct type_pure_prim *_50 = &(*tp).subtype; | |
22253 | + ParseReduceBlockStackMut$(0 /* _49 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &*_50, &_tmp_elem_id, &_stack, &_stack_id); | |
22254 | + } | |
22255 | + { | |
22256 | + const struct StreamOut *_51 = &(*streams).out; | |
22257 | + Indent(0 /* _50 */, &*_51, &*level); | |
22258 | + } | |
22259 | + { | |
22260 | + const struct StreamOut *_52 = &(*streams).out; | |
22261 | + struct string _53; memset(&_53, 0, sizeof(struct string)); | |
22262 | + init$fromliteral(&_53, "}", 1); | |
22263 | + PutStrLn(0 /* _51 */, &*_52, &_53); | |
22264 | + string$dest(&_53); | |
22265 | + } | |
22266 | + qtypepureid$dest(&_stack); | |
22267 | + nonempty_string$dest(&_stack_id); | |
22268 | + string$dest(&_tmp_elem_id); | |
21994 | 22269 | } |
21995 | - { | |
21996 | - const struct StreamOut *_40 = &(*streams).out; | |
21997 | - struct string _41; memset(&_41, 0, sizeof(struct string)); | |
21998 | - init$fromliteral(&_41, ".size = (4 * (", 14); | |
21999 | - PutStr(0 /* _39 */, &*_40, &_41); | |
22000 | - string$dest(&_41); | |
22001 | - } | |
22002 | - { | |
22003 | - const struct StreamOut *_41 = &(*streams).out; | |
22004 | - PutStr(0 /* _40 */, &*_41, &_par); | |
22005 | - } | |
22006 | - { | |
22007 | - const struct StreamOut *_42 = &(*streams).out; | |
22008 | - struct string _43; memset(&_43, 0, sizeof(struct string)); | |
22009 | - init$fromliteral(&_43, "->fill + 1) > ", 14); | |
22010 | - PutStr(0 /* _41 */, &*_42, &_43); | |
22011 | - string$dest(&_43); | |
22012 | - } | |
22013 | - { | |
22014 | - const struct StreamOut *_43 = &(*streams).out; | |
22015 | - PutStr(0 /* _42 */, &*_43, &_par); | |
22016 | - } | |
22017 | - { | |
22018 | - const struct StreamOut *_44 = &(*streams).out; | |
22019 | - struct string _45; memset(&_45, 0, sizeof(struct string)); | |
22020 | - init$fromliteral(&_45, "->size + 1) ? ", 14); | |
22021 | - PutStr(0 /* _43 */, &*_44, &_45); | |
22022 | - string$dest(&_45); | |
22023 | - } | |
22024 | - { | |
22025 | - const struct StreamOut *_45 = &(*streams).out; | |
22026 | - PutStr(0 /* _44 */, &*_45, &_par); | |
22027 | - } | |
22028 | - { | |
22029 | - const struct StreamOut *_46 = &(*streams).out; | |
22030 | - struct string _47; memset(&_47, 0, sizeof(struct string)); | |
22031 | - init$fromliteral(&_47, "->size : (", 10); | |
22032 | - PutStr(0 /* _45 */, &*_46, &_47); | |
22033 | - string$dest(&_47); | |
22034 | - } | |
22035 | - { | |
22036 | - const struct StreamOut *_47 = &(*streams).out; | |
22037 | - PutStr(0 /* _46 */, &*_47, &_par); | |
22038 | - } | |
22039 | - { | |
22040 | - const struct StreamOut *_48 = &(*streams).out; | |
22041 | - struct string _49; memset(&_49, 0, sizeof(struct string)); | |
22042 | - init$fromliteral(&_49, "->size + 1) / 2 - 1;", 20); | |
22043 | - PutStrLn(0 /* _47 */, &*_48, &_49); | |
22044 | - string$dest(&_49); | |
22045 | - } | |
22046 | - { | |
22047 | - const struct type_pure_prim *_49 = &(*tp).subtype; | |
22048 | - ParseReduceBlockStackMut$(0 /* _48 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*store, &*totality, &*action, &*self, &*typed, &_reduced_ids, &*_49, &_tmp_elem_id, &_stack, &_stack_id); | |
22049 | - } | |
22050 | - { | |
22051 | - const struct StreamOut *_50 = &(*streams).out; | |
22052 | - Indent(0 /* _49 */, &*_50, &*level); | |
22053 | - } | |
22054 | - { | |
22055 | - const struct StreamOut *_51 = &(*streams).out; | |
22056 | - struct string _52; memset(&_52, 0, sizeof(struct string)); | |
22057 | - init$fromliteral(&_52, "}", 1); | |
22058 | - PutStrLn(0 /* _50 */, &*_51, &_52); | |
22059 | - string$dest(&_52); | |
22060 | - } | |
22061 | - qtypepureid$dest(&_stack); | |
22062 | - string$dest(&_stack_id); | |
22063 | - string$dest(&_tmp_elem_id); | |
22270 | + break; | |
22064 | 22271 | } |
22065 | - break; | |
22066 | - } | |
22067 | - case 2: // void container_opt: | |
22068 | - { | |
22272 | + case 2: // void container_opt: | |
22069 | 22273 | { |
22070 | 22274 | { |
22071 | - const struct StreamOut *_21 = &(*streams).err; | |
22072 | - struct string _22; memset(&_22, 0, sizeof(struct string)); | |
22073 | - init$fromliteral(&_22, "can't reduce ", 13); | |
22074 | - PutStr(0 /* _20 */, &*_21, &_22); | |
22075 | - string$dest(&_22); | |
22275 | + { | |
22276 | + const struct StreamOut *_22 = &(*streams).err; | |
22277 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
22278 | + init$fromliteral(&_23, "can't reduce ", 13); | |
22279 | + PutStr(0 /* _21 */, &*_22, &_23); | |
22280 | + string$dest(&_23); | |
22281 | + } | |
22282 | + { | |
22283 | + const struct StreamOut *_23 = &(*streams).err; | |
22284 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
22285 | + { | |
22286 | + nonempty_to_string(&_24, &_par); | |
22287 | + } | |
22288 | + PutStr(0 /* _22 */, &*_23, &_24); | |
22289 | + string$dest(&_24); | |
22290 | + } | |
22291 | + { | |
22292 | + const struct StreamOut *_24 = &(*streams).err; | |
22293 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22294 | + init$fromliteral(&_25, " of type ", 9); | |
22295 | + PutStr(0 /* _23 */, &*_24, &_25); | |
22296 | + string$dest(&_25); | |
22297 | + } | |
22298 | + { | |
22299 | + const struct StreamOut *_25 = &(*streams).err; | |
22300 | + const struct type_pure *_26 = &(*current).qt.type; | |
22301 | + EPrTypePure(0 /* _24 */, &*_25, &*_26); | |
22302 | + } | |
22303 | + { | |
22304 | + const struct StreamOut *_26 = &(*streams).err; | |
22305 | + Fail$(0 /* _25 */, &*_26, &*txtpos); | |
22306 | + } | |
22076 | 22307 | } |
22077 | - { | |
22078 | - const struct StreamOut *_22 = &(*streams).err; | |
22079 | - PutStr(0 /* _21 */, &*_22, &_par); | |
22080 | - } | |
22081 | - { | |
22082 | - const struct StreamOut *_23 = &(*streams).err; | |
22083 | - struct string _24; memset(&_24, 0, sizeof(struct string)); | |
22084 | - init$fromliteral(&_24, " of type ", 9); | |
22085 | - PutStr(0 /* _22 */, &*_23, &_24); | |
22086 | - string$dest(&_24); | |
22087 | - } | |
22088 | - { | |
22089 | - const struct StreamOut *_24 = &(*streams).err; | |
22090 | - const struct type_pure *_25 = &(*current).qt.type; | |
22091 | - EPrTypePure(0 /* _23 */, &*_24, &*_25); | |
22092 | - } | |
22093 | - { | |
22094 | - const struct StreamOut *_25 = &(*streams).err; | |
22095 | - Fail$(0 /* _24 */, &*_25, &*txtpos); | |
22096 | - } | |
22308 | + break; | |
22097 | 22309 | } |
22098 | - break; | |
22099 | - } | |
22100 | - case 3: // void container_box: | |
22101 | - { | |
22310 | + case 3: // void container_box: | |
22102 | 22311 | { |
22103 | 22312 | { |
22104 | - const struct StreamOut *_22 = &(*streams).err; | |
22105 | - struct string _23; memset(&_23, 0, sizeof(struct string)); | |
22106 | - init$fromliteral(&_23, "can't reduce ", 13); | |
22107 | - PutStr(0 /* _21 */, &*_22, &_23); | |
22108 | - string$dest(&_23); | |
22313 | + { | |
22314 | + const struct StreamOut *_23 = &(*streams).err; | |
22315 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
22316 | + init$fromliteral(&_24, "can't reduce ", 13); | |
22317 | + PutStr(0 /* _22 */, &*_23, &_24); | |
22318 | + string$dest(&_24); | |
22319 | + } | |
22320 | + { | |
22321 | + const struct StreamOut *_24 = &(*streams).err; | |
22322 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22323 | + { | |
22324 | + nonempty_to_string(&_25, &_par); | |
22325 | + } | |
22326 | + PutStr(0 /* _23 */, &*_24, &_25); | |
22327 | + string$dest(&_25); | |
22328 | + } | |
22329 | + { | |
22330 | + const struct StreamOut *_25 = &(*streams).err; | |
22331 | + struct string _26; memset(&_26, 0, sizeof(struct string)); | |
22332 | + init$fromliteral(&_26, " of type ", 9); | |
22333 | + PutStr(0 /* _24 */, &*_25, &_26); | |
22334 | + string$dest(&_26); | |
22335 | + } | |
22336 | + { | |
22337 | + const struct StreamOut *_26 = &(*streams).err; | |
22338 | + const struct type_pure *_27 = &(*current).qt.type; | |
22339 | + EPrTypePure(0 /* _25 */, &*_26, &*_27); | |
22340 | + } | |
22341 | + { | |
22342 | + const struct StreamOut *_27 = &(*streams).err; | |
22343 | + Fail$(0 /* _26 */, &*_27, &*txtpos); | |
22344 | + } | |
22109 | 22345 | } |
22110 | - { | |
22111 | - const struct StreamOut *_23 = &(*streams).err; | |
22112 | - PutStr(0 /* _22 */, &*_23, &_par); | |
22113 | - } | |
22114 | - { | |
22115 | - const struct StreamOut *_24 = &(*streams).err; | |
22116 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22117 | - init$fromliteral(&_25, " of type ", 9); | |
22118 | - PutStr(0 /* _23 */, &*_24, &_25); | |
22119 | - string$dest(&_25); | |
22120 | - } | |
22121 | - { | |
22122 | - const struct StreamOut *_25 = &(*streams).err; | |
22123 | - const struct type_pure *_26 = &(*current).qt.type; | |
22124 | - EPrTypePure(0 /* _24 */, &*_25, &*_26); | |
22125 | - } | |
22126 | - { | |
22127 | - const struct StreamOut *_26 = &(*streams).err; | |
22128 | - Fail$(0 /* _25 */, &*_26, &*txtpos); | |
22129 | - } | |
22346 | + break; | |
22130 | 22347 | } |
22131 | - break; | |
22348 | + default: | |
22349 | + { | |
22350 | + fprintf(stderr, "INTERNAL ERROR IN SWITCH"); | |
22351 | + break; | |
22352 | + } | |
22132 | 22353 | } |
22133 | - default: | |
22134 | - { | |
22135 | - fprintf(stderr, "INTERNAL ERROR IN SWITCH"); | |
22136 | - break; | |
22137 | - } | |
22354 | + container_type$dest(&_tpw); | |
22138 | 22355 | } |
22139 | - container_type$dest(&_tpw); | |
22356 | + break; | |
22140 | 22357 | } |
22141 | - break; | |
22358 | + default: | |
22359 | + { | |
22360 | + fprintf(stderr, "INTERNAL ERROR IN SWITCH"); | |
22361 | + break; | |
22362 | + } | |
22142 | 22363 | } |
22143 | - default: | |
22144 | - { | |
22145 | - fprintf(stderr, "INTERNAL ERROR IN SWITCH"); | |
22146 | - break; | |
22147 | - } | |
22364 | + type_pure$dest(&_tp); | |
22365 | + free$(&_reduced_ids, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
22148 | 22366 | } |
22149 | - type_pure$dest(&_tp); | |
22150 | - free$(&_reduced_ids, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
22151 | - } | |
22152 | - bool _13; | |
22153 | - { | |
22154 | - bool _14; memset(&_14, 0, sizeof(bool)); | |
22367 | + bool _14; | |
22155 | 22368 | { |
22156 | 22369 | bool _15; memset(&_15, 0, sizeof(bool)); |
22157 | 22370 | { |
22158 | - uint8_t _16; memset(&_16, 0, sizeof(uint8_t)); | |
22159 | - _16 = 59; | |
22160 | - uint8_t _17; memset(&_17, 0, sizeof(uint8_t)); | |
22371 | + bool _16; memset(&_16, 0, sizeof(bool)); | |
22161 | 22372 | { |
22162 | - SkipCommentPeek$(&_17, &*streams, &*txtpos, &*level); | |
22373 | + uint8_t _17; memset(&_17, 0, sizeof(uint8_t)); | |
22374 | + _17 = 59; | |
22375 | + uint8_t _18; memset(&_18, 0, sizeof(uint8_t)); | |
22376 | + { | |
22377 | + SkipCommentPeek$(&_18, &*streams, &*txtpos, &*level); | |
22378 | + } | |
22379 | + _16 = _17 == _18; | |
22380 | + _IGNORE_(_18); | |
22381 | + _IGNORE_(_17); | |
22163 | 22382 | } |
22164 | - _15 = _16 == _17; | |
22165 | - _IGNORE_(_17); | |
22383 | + not(&_15, &_16); | |
22166 | 22384 | _IGNORE_(_16); |
22167 | 22385 | } |
22168 | - not(&_14, &_15); | |
22386 | + or(&_14, &*typed, &_15); | |
22169 | 22387 | _IGNORE_(_15); |
22170 | 22388 | } |
22171 | - or(&_13, &*typed, &_14); | |
22172 | - _IGNORE_(_14); | |
22173 | - } | |
22174 | - if(_13) | |
22175 | - { | |
22389 | + if(_14) | |
22176 | 22390 | { |
22177 | - const struct StreamOut *_15 = &(*streams).out; | |
22178 | - Indent(0 /* _14 */, &*_15, &*level); | |
22179 | - } | |
22180 | - { | |
22181 | - const struct StreamOut *_16 = &(*streams).out; | |
22182 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
22183 | - init$fromliteral(&_17, "else\n", 5); | |
22184 | - PutStr(0 /* _15 */, &*_16, &_17); | |
22185 | - string$dest(&_17); | |
22186 | - } | |
22187 | - { | |
22188 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
22189 | - init$fromliteral(&_17, "term", 4); | |
22190 | - MatchId$(0 /* _16 */, &_17, &*streams, &*txtpos, &*level); | |
22191 | - string$dest(&_17); | |
22192 | - } | |
22193 | - { | |
22194 | - uint8_t _18; memset(&_18, 0, sizeof(uint8_t)); | |
22195 | - _18 = 58; | |
22196 | - AssertGet$(0 /* _17 */, &*streams, &*txtpos, &*level, &_18); | |
22197 | - _IGNORE_(_18); | |
22198 | - } | |
22199 | - { | |
22200 | - const struct StreamOut *_19 = &(*streams).out; | |
22201 | - Indent(0 /* _18 */, &*_19, &*level); | |
22202 | - } | |
22203 | - { | |
22204 | - const struct StreamOut *_20 = &(*streams).out; | |
22205 | - struct string _21; memset(&_21, 0, sizeof(struct string)); | |
22206 | - init$fromliteral(&_21, "{\n", 2); | |
22207 | - PutStr(0 /* _19 */, &*_20, &_21); | |
22208 | - string$dest(&_21); | |
22209 | - } | |
22210 | - bool _21; | |
22211 | - _21 = (*typed); | |
22212 | - if(_21) | |
22213 | - { | |
22214 | 22391 | { |
22215 | - uint64_t _23; memset(&_23, 0, sizeof(uint64_t)); | |
22392 | + const struct StreamOut *_16 = &(*streams).out; | |
22393 | + Indent(0 /* _15 */, &*_16, &*level); | |
22394 | + } | |
22395 | + { | |
22396 | + const struct StreamOut *_17 = &(*streams).out; | |
22397 | + struct string _18; memset(&_18, 0, sizeof(struct string)); | |
22398 | + init$fromliteral(&_18, "else\n", 5); | |
22399 | + PutStr(0 /* _16 */, &*_17, &_18); | |
22400 | + string$dest(&_18); | |
22401 | + } | |
22402 | + { | |
22403 | + struct string _18; memset(&_18, 0, sizeof(struct string)); | |
22404 | + init$fromliteral(&_18, "term", 4); | |
22405 | + MatchId$(0 /* _17 */, &_18, &*streams, &*txtpos, &*level); | |
22406 | + string$dest(&_18); | |
22407 | + } | |
22408 | + { | |
22409 | + uint8_t _19; memset(&_19, 0, sizeof(uint8_t)); | |
22410 | + _19 = 58; | |
22411 | + AssertGet$(0 /* _18 */, &*streams, &*txtpos, &*level, &_19); | |
22412 | + _IGNORE_(_19); | |
22413 | + } | |
22414 | + { | |
22415 | + const struct StreamOut *_20 = &(*streams).out; | |
22416 | + Indent(0 /* _19 */, &*_20, &*level); | |
22417 | + } | |
22418 | + { | |
22419 | + const struct StreamOut *_21 = &(*streams).out; | |
22420 | + struct string _22; memset(&_22, 0, sizeof(struct string)); | |
22421 | + init$fromliteral(&_22, "{\n", 2); | |
22422 | + PutStr(0 /* _20 */, &*_21, &_22); | |
22423 | + string$dest(&_22); | |
22424 | + } | |
22425 | + bool _22; | |
22426 | + _22 = (*typed); | |
22427 | + if(_22) | |
22428 | + { | |
22216 | 22429 | { |
22217 | 22430 | uint64_t _24; memset(&_24, 0, sizeof(uint64_t)); |
22218 | - _24 = 1; | |
22219 | - _23 = *level + _24; | |
22431 | + { | |
22432 | + uint64_t _25; memset(&_25, 0, sizeof(uint64_t)); | |
22433 | + _25 = 1; | |
22434 | + _24 = *level + _25; | |
22435 | + _IGNORE_(_25); | |
22436 | + } | |
22437 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22438 | + { | |
22439 | + ParseId$(&_25, &*streams, &*txtpos, &*level); | |
22440 | + } | |
22441 | + ParseExpr$(0 /* _23 */, &*streams, &*txtpos, &*state, &_24, &*sp, &*tmpnr, &*store, &_25, &*totality, &*action, &*self, &*reduced_ids_); | |
22442 | + string$dest(&_25); | |
22220 | 22443 | _IGNORE_(_24); |
22221 | 22444 | } |
22222 | - struct string _24; memset(&_24, 0, sizeof(struct string)); | |
22223 | - { | |
22224 | - ParseId$(&_24, &*streams, &*txtpos, &*level); | |
22225 | - } | |
22226 | - ParseExpr$(0 /* _22 */, &*streams, &*txtpos, &*state, &_23, &*sp, &*tmpnr, &*store, &_24, &*totality, &*action, &*self, &*reduced_ids_); | |
22227 | - string$dest(&_24); | |
22228 | - _IGNORE_(_23); | |
22229 | 22445 | } |
22230 | - } | |
22231 | - else | |
22232 | - { | |
22446 | + else | |
22233 | 22447 | { |
22234 | - uint64_t _23; memset(&_23, 0, sizeof(uint64_t)); | |
22235 | 22448 | { |
22236 | 22449 | uint64_t _24; memset(&_24, 0, sizeof(uint64_t)); |
22237 | - _24 = 1; | |
22238 | - _23 = *level + _24; | |
22450 | + { | |
22451 | + uint64_t _25; memset(&_25, 0, sizeof(uint64_t)); | |
22452 | + _25 = 1; | |
22453 | + _24 = *level + _25; | |
22454 | + _IGNORE_(_25); | |
22455 | + } | |
22456 | + struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22457 | + { | |
22458 | + ParseId$(&_25, &*streams, &*txtpos, &*level); | |
22459 | + } | |
22460 | + ParseAssign$(0 /* _23 */, &*streams, &*txtpos, &*state, &_24, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids_, &_25); | |
22461 | + string$dest(&_25); | |
22239 | 22462 | _IGNORE_(_24); |
22240 | 22463 | } |
22241 | - struct string _24; memset(&_24, 0, sizeof(struct string)); | |
22242 | - { | |
22243 | - ParseId$(&_24, &*streams, &*txtpos, &*level); | |
22244 | - } | |
22245 | - ParseAssign$(0 /* _22 */, &*streams, &*txtpos, &*state, &_23, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids_, &_24); | |
22246 | - string$dest(&_24); | |
22247 | - _IGNORE_(_23); | |
22248 | 22464 | } |
22465 | + { | |
22466 | + const struct StreamOut *_24 = &(*streams).out; | |
22467 | + Indent(0 /* _23 */, &*_24, &*level); | |
22468 | + } | |
22469 | + { | |
22470 | + const struct StreamOut *_25 = &(*streams).out; | |
22471 | + struct string _26; memset(&_26, 0, sizeof(struct string)); | |
22472 | + init$fromliteral(&_26, "}\n", 2); | |
22473 | + PutStr(0 /* _24 */, &*_25, &_26); | |
22474 | + string$dest(&_26); | |
22475 | + } | |
22249 | 22476 | } |
22250 | - { | |
22251 | - const struct StreamOut *_23 = &(*streams).out; | |
22252 | - Indent(0 /* _22 */, &*_23, &*level); | |
22477 | + nonempty_string$dest(&_10); | |
22253 | 22478 | } |
22254 | - { | |
22255 | - const struct StreamOut *_24 = &(*streams).out; | |
22256 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
22257 | - init$fromliteral(&_25, "}\n", 2); | |
22258 | - PutStr(0 /* _23 */, &*_24, &_25); | |
22259 | - string$dest(&_25); | |
22260 | - } | |
22261 | - } | |
22262 | - string$dest(&_reduced_id); | |
22479 | + free$(&_reduced_id, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
22263 | 22480 | string$dest(&_tmp_reduce); |
22264 | 22481 | free$(&_opt_elem_id, sizeof(struct string), (void (*)(void *))string$dest); |
22265 | 22482 | type_mode$dest(&_cqq); |
@@ -22266,7 +22483,7 @@ | ||
22266 | 22483 | } |
22267 | 22484 | } |
22268 | 22485 | free$(&_current, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
22269 | - string$dest(&_par); | |
22486 | + nonempty_string$dest(&_par); | |
22270 | 22487 | } |
22271 | 22488 | } |
22272 | 22489 |
@@ -22746,7 +22963,7 @@ | ||
22746 | 22963 | } |
22747 | 22964 | } |
22748 | 22965 | |
22749 | -void ParseExpr$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct string *const id, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
22966 | +void ParseExpr$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct string *const id, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
22750 | 22967 | { |
22751 | 22968 | { |
22752 | 22969 | bool _2; |
@@ -22826,7 +23043,7 @@ | ||
22826 | 23043 | { |
22827 | 23044 | struct stack/*qtypepureid*/ _10; memset(&_10, 0, sizeof(struct stack/*qtypepureid*/)); |
22828 | 23045 | { |
22829 | - solid(&_10, &_pred, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4576); | |
23046 | + solid(&_10, &_pred, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4602); | |
22830 | 23047 | } |
22831 | 23048 | ParseExpr$(0 /* _9 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_10, &*id, &*totality, &*action, &*self, &*reduced_ids); |
22832 | 23049 | free$(&_10, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -23074,7 +23291,7 @@ | ||
23074 | 23291 | uint8_t _14; memset(&_14, 0, sizeof(uint8_t)); |
23075 | 23292 | { |
23076 | 23293 | struct stack/*u8*/ *_15 = &(*id).data; |
23077 | - pop$(&_14, &*_15, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 4622); | |
23294 | + pop$(&_14, &*_15, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 4648); | |
23078 | 23295 | } |
23079 | 23296 | nonempty_string(&_13, &_14, &*id); |
23080 | 23297 | _IGNORE_(_14); |
@@ -23124,11 +23341,8 @@ | ||
23124 | 23341 | { |
23125 | 23342 | struct qtypepure _typ; memset(&_typ, 0, sizeof(struct qtypepure)); |
23126 | 23343 | qtypepure$copy(&_typ, &(*current).qt); |
23127 | - struct string _par; memset(&_par, 0, sizeof(struct string)); | |
23128 | - { | |
23129 | - const struct nonempty_string *_14 = &(*current).id; | |
23130 | - nonempty_to_string(&_par, &*_14); | |
23131 | - } | |
23344 | + struct nonempty_string _par; memset(&_par, 0, sizeof(struct nonempty_string)); | |
23345 | + nonempty_string$copy(&_par, &(*current).id); | |
23132 | 23346 | bool _15; |
23133 | 23347 | { |
23134 | 23348 | const struct string *_16 = &(*store).id.rest; |
@@ -23209,7 +23423,12 @@ | ||
23209 | 23423 | } |
23210 | 23424 | { |
23211 | 23425 | const struct StreamOut *_23 = &(*streams).out; |
23212 | - PutStr(0 /* _22 */, &*_23, &_par); | |
23426 | + struct string _24; memset(&_24, 0, sizeof(struct string)); | |
23427 | + { | |
23428 | + nonempty_to_string(&_24, &_par); | |
23429 | + } | |
23430 | + PutStr(0 /* _22 */, &*_23, &_24); | |
23431 | + string$dest(&_24); | |
23213 | 23432 | } |
23214 | 23433 | { |
23215 | 23434 | const struct StreamOut *_24 = &(*streams).out; |
@@ -23241,7 +23460,7 @@ | ||
23241 | 23460 | ChkQTPI$(0 /* _27 */, &*_28, &*txtpos, &*store, &*_29, &*id); |
23242 | 23461 | } |
23243 | 23462 | free$(&_path, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); |
23244 | - string$dest(&_par); | |
23463 | + nonempty_string$dest(&_par); | |
23245 | 23464 | qtypepure$dest(&_typ); |
23246 | 23465 | } |
23247 | 23466 | } |
@@ -23541,7 +23760,7 @@ | ||
23541 | 23760 | } |
23542 | 23761 | } |
23543 | 23762 | |
23544 | -void ParseExpr2$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct qtypepureid *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23763 | +void ParseExpr2$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct qtypepureid *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23545 | 23764 | { |
23546 | 23765 | { |
23547 | 23766 | uint64_t _tmpnr; memset(&_tmpnr, 0, sizeof(uint64_t)); |
@@ -23572,7 +23791,7 @@ | ||
23572 | 23791 | { |
23573 | 23792 | struct stack/*qtypepureid*/ _4; memset(&_4, 0, sizeof(struct stack/*qtypepureid*/)); |
23574 | 23793 | { |
23575 | - solid(&_4, &*store, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4728); | |
23794 | + solid(&_4, &*store, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4754); | |
23576 | 23795 | } |
23577 | 23796 | ParseExpr$(0 /* _3 */, &*streams, &*txtpos, &*state, &*level, &*sp, &_tmpnr, &_4, &_id, &*totality, &*action, &*self, &*reduced_ids); |
23578 | 23797 | free$(&_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -23582,8 +23801,8 @@ | ||
23582 | 23801 | } |
23583 | 23802 | } |
23584 | 23803 | |
23585 | -void ParseLines$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
23586 | -void ParseNext$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23804 | +void ParseLines$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids); | |
23805 | +void ParseNext$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23587 | 23806 | { |
23588 | 23807 | { |
23589 | 23808 | bool _2; |
@@ -23702,7 +23921,7 @@ | ||
23702 | 23921 | } |
23703 | 23922 | } |
23704 | 23923 | |
23705 | -void ParseLet$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23924 | +void ParseLet$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
23706 | 23925 | { |
23707 | 23926 | { |
23708 | 23927 | bool _2; |
@@ -23727,7 +23946,7 @@ | ||
23727 | 23946 | { |
23728 | 23947 | struct stack/*qtypepureid*/ _5; memset(&_5, 0, sizeof(struct stack/*qtypepureid*/)); |
23729 | 23948 | { |
23730 | - empty(&_5, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4776); | |
23949 | + empty(&_5, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4802); | |
23731 | 23950 | } |
23732 | 23951 | ParseExpr$(0 /* _4 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_5, &_id, &*totality, &*action, &*self, &*reduced_ids); |
23733 | 23952 | free$(&_5, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -23909,7 +24128,7 @@ | ||
23909 | 24128 | { |
23910 | 24129 | struct stack/*qtypepureid*/ _14; memset(&_14, 0, sizeof(struct stack/*qtypepureid*/)); |
23911 | 24130 | { |
23912 | - solid(&_14, &_mut_st, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4807); | |
24131 | + solid(&_14, &_mut_st, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4833); | |
23913 | 24132 | } |
23914 | 24133 | struct string _15; memset(&_15, 0, sizeof(struct string)); |
23915 | 24134 | { |
@@ -23928,7 +24147,7 @@ | ||
23928 | 24147 | { |
23929 | 24148 | varinit(&_11, &_new); |
23930 | 24149 | } |
23931 | - push(0 /* _9 */, &*_10, &_11, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4811); | |
24150 | + push(0 /* _9 */, &*_10, &_11, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4837); | |
23932 | 24151 | var$dest(&_11); |
23933 | 24152 | } |
23934 | 24153 | { |
@@ -23983,13 +24202,8 @@ | ||
23983 | 24202 | bool _11; |
23984 | 24203 | { |
23985 | 24204 | struct stack/*var*/ *_12 = &(*sp).current.elems; |
23986 | - struct string _13; memset(&_13, 0, sizeof(struct string)); | |
23987 | - { | |
23988 | - struct nonempty_string *_14 = &(_new).id; | |
23989 | - nonempty_to_string(&_13, &*_14); | |
23990 | - } | |
23991 | - exists_var(&_11, &*_12, &_13); | |
23992 | - string$dest(&_13); | |
24205 | + struct nonempty_string *_13 = &(_new).id; | |
24206 | + exists_var(&_11, &*_12, &*_13); | |
23993 | 24207 | } |
23994 | 24208 | if(_11) |
23995 | 24209 | { |
@@ -24172,7 +24386,7 @@ | ||
24172 | 24386 | } |
24173 | 24387 | struct stack/*qtypepureid*/ _20; memset(&_20, 0, sizeof(struct stack/*qtypepureid*/)); |
24174 | 24388 | { |
24175 | - solid(&_20, &_mut_st, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4847); | |
24389 | + solid(&_20, &_mut_st, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4873); | |
24176 | 24390 | } |
24177 | 24391 | struct string _21; memset(&_21, 0, sizeof(struct string)); |
24178 | 24392 | { |
@@ -24240,7 +24454,7 @@ | ||
24240 | 24454 | { |
24241 | 24455 | varinit(&_16, &_ref); |
24242 | 24456 | } |
24243 | - push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4853); | |
24457 | + push(0 /* _14 */, &*_15, &_16, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4879); | |
24244 | 24458 | var$dest(&_16); |
24245 | 24459 | } |
24246 | 24460 | { |
@@ -24322,7 +24536,7 @@ | ||
24322 | 24536 | } |
24323 | 24537 | } |
24324 | 24538 | |
24325 | -void ParseRes$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
24539 | +void ParseRes$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
24326 | 24540 | { |
24327 | 24541 | { |
24328 | 24542 | const struct stack/*qtypepureid*/ *_1 = &(*store); |
@@ -24397,7 +24611,7 @@ | ||
24397 | 24611 | { |
24398 | 24612 | struct stack/*qtypepureid*/ _11; memset(&_11, 0, sizeof(struct stack/*qtypepureid*/)); |
24399 | 24613 | { |
24400 | - empty(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4903); | |
24614 | + empty(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4929); | |
24401 | 24615 | } |
24402 | 24616 | ParseExpr$(0 /* _10 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_11, &_id, &*totality, &*action, &*self, &*reduced_ids); |
24403 | 24617 | free$(&_11, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -24437,7 +24651,7 @@ | ||
24437 | 24651 | { |
24438 | 24652 | struct stack/*qtypepureid*/ _13; memset(&_13, 0, sizeof(struct stack/*qtypepureid*/)); |
24439 | 24653 | { |
24440 | - solid(&_13, &_mut_pv, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4914); | |
24654 | + solid(&_13, &_mut_pv, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4940); | |
24441 | 24655 | } |
24442 | 24656 | ParseExpr$(0 /* _12 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &_13, &_id, &*totality, &*action, &*self, &*reduced_ids); |
24443 | 24657 | free$(&_13, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -24671,7 +24885,7 @@ | ||
24671 | 24885 | } |
24672 | 24886 | } |
24673 | 24887 | |
24674 | -void ParseForBlockStream$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const container, const struct nonempty_string *const elem_id) | |
24888 | +void ParseForBlockStream$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct qtypepureid *const container, const struct nonempty_string *const elem_id) | |
24675 | 24889 | { |
24676 | 24890 | { |
24677 | 24891 | { |
@@ -24695,12 +24909,7 @@ | ||
24695 | 24909 | { |
24696 | 24910 | bool _4; memset(&_4, 0, sizeof(bool)); |
24697 | 24911 | { |
24698 | - struct string _5; memset(&_5, 0, sizeof(struct string)); | |
24699 | - { | |
24700 | - nonempty_to_string(&_5, &*elem_id); | |
24701 | - } | |
24702 | - istmp$(&_4, &_5); | |
24703 | - string$dest(&_5); | |
24912 | + istmp$(&_4, &*elem_id); | |
24704 | 24913 | } |
24705 | 24914 | not(&_3, &_4); |
24706 | 24915 | _IGNORE_(_4); |
@@ -24729,7 +24938,7 @@ | ||
24729 | 24938 | varinit(&_6, &_7); |
24730 | 24939 | qtypepureid$dest(&_7); |
24731 | 24940 | } |
24732 | - push(0 /* _4 */, &*_5, &_6, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4968); | |
24941 | + push(0 /* _4 */, &*_5, &_6, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 4994); | |
24733 | 24942 | var$dest(&_6); |
24734 | 24943 | } |
24735 | 24944 | } |
@@ -24908,7 +25117,7 @@ | ||
24908 | 25117 | } |
24909 | 25118 | struct stack/*qtypepureid*/ _27; memset(&_27, 0, sizeof(struct stack/*qtypepureid*/)); |
24910 | 25119 | { |
24911 | - empty(&_27, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 4987); | |
25120 | + empty(&_27, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5013); | |
24912 | 25121 | } |
24913 | 25122 | ParseBlockRaw$(0 /* _25 */, &*streams, &*txtpos, &*state, &_26, &*sp, &*tmpnr, &_27, &*totality, &*action, &*self, &*reduced_ids); |
24914 | 25123 | free$(&_27, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -24940,7 +25149,7 @@ | ||
24940 | 25149 | } |
24941 | 25150 | } |
24942 | 25151 | |
24943 | -void ParseForBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure *const argtype, const struct qtypepureid *const container, const struct string *const id) | |
25152 | +void ParseForBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct type_pure *const argtype, const struct qtypepureid *const container, const struct nonempty_string *const id) | |
24944 | 25153 | { |
24945 | 25154 | { |
24946 | 25155 | { |
@@ -25020,7 +25229,12 @@ | ||
25020 | 25229 | { |
25021 | 25230 | uint8_t _11; memset(&_11, 0, sizeof(uint8_t)); |
25022 | 25231 | _11 = 42; |
25023 | - nonempty_string(&_10, &_11, &*id); | |
25232 | + struct string _12; memset(&_12, 0, sizeof(struct string)); | |
25233 | + { | |
25234 | + nonempty_to_string(&_12, &*id); | |
25235 | + } | |
25236 | + nonempty_string(&_10, &_11, &_12); | |
25237 | + string$dest(&_12); | |
25024 | 25238 | _IGNORE_(_11); |
25025 | 25239 | } |
25026 | 25240 | qtypepureid(&_mut_elem2, &_9, &_10); |
@@ -25045,7 +25259,7 @@ | ||
25045 | 25259 | varinit(&_11, &_12); |
25046 | 25260 | qtypepureid$dest(&_12); |
25047 | 25261 | } |
25048 | - push(0 /* _9 */, &*_10, &_11, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5004); | |
25262 | + push(0 /* _9 */, &*_10, &_11, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5030); | |
25049 | 25263 | var$dest(&_11); |
25050 | 25264 | } |
25051 | 25265 | { |
@@ -25134,7 +25348,7 @@ | ||
25134 | 25348 | } |
25135 | 25349 | struct stack/*qtypepureid*/ _21; memset(&_21, 0, sizeof(struct stack/*qtypepureid*/)); |
25136 | 25350 | { |
25137 | - empty(&_21, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5009); | |
25351 | + empty(&_21, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5035); | |
25138 | 25352 | } |
25139 | 25353 | ParseBlock$(0 /* _19 */, &*streams, &*txtpos, &*state, &_20, &*sp, &*tmpnr, &_21, &*totality, &*action, &*self, &*reduced_ids); |
25140 | 25354 | free$(&_21, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -25143,13 +25357,8 @@ | ||
25143 | 25357 | bool _21; |
25144 | 25358 | { |
25145 | 25359 | struct stack/*var*/ *_22 = &(*sp).current.elems; |
25146 | - struct string _23; memset(&_23, 0, sizeof(struct string)); | |
25147 | - { | |
25148 | - const struct nonempty_string *_24 = &(_mut_elem2).id; | |
25149 | - nonempty_to_string(&_23, &*_24); | |
25150 | - } | |
25151 | - find_var_report_unused_and_mark_used(&_21, &*_22, &_23); | |
25152 | - string$dest(&_23); | |
25360 | + const struct nonempty_string *_23 = &(_mut_elem2).id; | |
25361 | + find_var_report_unused_and_mark_used(&_21, &*_22, &*_23); | |
25153 | 25362 | } |
25154 | 25363 | if(_21) |
25155 | 25364 | { |
@@ -25211,7 +25420,7 @@ | ||
25211 | 25420 | } |
25212 | 25421 | } |
25213 | 25422 | |
25214 | -void ParseFor$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
25423 | +void ParseFor$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
25215 | 25424 | { |
25216 | 25425 | { |
25217 | 25426 | { |
@@ -25301,7 +25510,7 @@ | ||
25301 | 25510 | varhide(&_10, &_11, &*txtpos); |
25302 | 25511 | nonempty_string$dest(&_11); |
25303 | 25512 | } |
25304 | - push(0 /* _8 */, &*_9, &_10, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5043); | |
25513 | + push(0 /* _8 */, &*_9, &_10, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5069); | |
25305 | 25514 | var$dest(&_10); |
25306 | 25515 | } |
25307 | 25516 | } |
@@ -25423,12 +25632,7 @@ | ||
25423 | 25632 | const struct type_pure_prim *_17 = &(*containertype).prim; |
25424 | 25633 | type_pure_normal(&_16, &*_17); |
25425 | 25634 | } |
25426 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
25427 | - { | |
25428 | - nonempty_to_string(&_17, &*id); | |
25429 | - } | |
25430 | - ParseForBlock$(0 /* _15 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &_16, &*container, &_17); | |
25431 | - string$dest(&_17); | |
25635 | + ParseForBlock$(0 /* _15 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &_16, &*container, &*id); | |
25432 | 25636 | type_pure$dest(&_16); |
25433 | 25637 | } |
25434 | 25638 | } |
@@ -25744,7 +25948,7 @@ | ||
25744 | 25948 | { |
25745 | 25949 | varinit(&_49, &_mut_elem); |
25746 | 25950 | } |
25747 | - push(0 /* _47 */, &*_48, &_49, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5107); | |
25951 | + push(0 /* _47 */, &*_48, &_49, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5133); | |
25748 | 25952 | var$dest(&_49); |
25749 | 25953 | } |
25750 | 25954 | { |
@@ -25757,7 +25961,7 @@ | ||
25757 | 25961 | } |
25758 | 25962 | struct stack/*qtypepureid*/ _50; memset(&_50, 0, sizeof(struct stack/*qtypepureid*/)); |
25759 | 25963 | { |
25760 | - empty(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5108); | |
25964 | + empty(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5134); | |
25761 | 25965 | } |
25762 | 25966 | ParseBlockRaw$(0 /* _48 */, &*streams, &*txtpos, &*state, &_49, &*sp, &*tmpnr, &_50, &*totality, &*action, &*self, &*reduced_ids); |
25763 | 25967 | free$(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -25766,7 +25970,7 @@ | ||
25766 | 25970 | bool _50; |
25767 | 25971 | { |
25768 | 25972 | struct stack/*var*/ *_51 = &(*sp).current.elems; |
25769 | - struct string _52; memset(&_52, 0, sizeof(struct string)); | |
25973 | + struct nonempty_string _52; memset(&_52, 0, sizeof(struct nonempty_string)); | |
25770 | 25974 | { |
25771 | 25975 | uint8_t _53; memset(&_53, 0, sizeof(uint8_t)); |
25772 | 25976 | _53 = 42; |
@@ -25774,12 +25978,12 @@ | ||
25774 | 25978 | { |
25775 | 25979 | nonempty_to_string(&_54, &*id); |
25776 | 25980 | } |
25777 | - preapp(&_52, &_53, &_54); | |
25981 | + nonempty_string(&_52, &_53, &_54); | |
25778 | 25982 | string$dest(&_54); |
25779 | 25983 | _IGNORE_(_53); |
25780 | 25984 | } |
25781 | 25985 | find_var_report_unused_and_mark_used(&_50, &*_51, &_52); |
25782 | - string$dest(&_52); | |
25986 | + nonempty_string$dest(&_52); | |
25783 | 25987 | } |
25784 | 25988 | if(_50) |
25785 | 25989 | { |
@@ -26080,7 +26284,7 @@ | ||
26080 | 26284 | { |
26081 | 26285 | varinit(&_50, &_mut_elem); |
26082 | 26286 | } |
26083 | - push(0 /* _48 */, &*_49, &_50, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5136); | |
26287 | + push(0 /* _48 */, &*_49, &_50, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5162); | |
26084 | 26288 | var$dest(&_50); |
26085 | 26289 | } |
26086 | 26290 | { |
@@ -26093,7 +26297,7 @@ | ||
26093 | 26297 | } |
26094 | 26298 | struct stack/*qtypepureid*/ _51; memset(&_51, 0, sizeof(struct stack/*qtypepureid*/)); |
26095 | 26299 | { |
26096 | - empty(&_51, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5137); | |
26300 | + empty(&_51, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5163); | |
26097 | 26301 | } |
26098 | 26302 | ParseBlockRaw$(0 /* _49 */, &*streams, &*txtpos, &*state, &_50, &*sp, &*tmpnr, &_51, &*totality, &*action, &*self, &*reduced_ids); |
26099 | 26303 | free$(&_51, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -26102,7 +26306,7 @@ | ||
26102 | 26306 | bool _51; |
26103 | 26307 | { |
26104 | 26308 | struct stack/*var*/ *_52 = &(*sp).current.elems; |
26105 | - struct string _53; memset(&_53, 0, sizeof(struct string)); | |
26309 | + struct nonempty_string _53; memset(&_53, 0, sizeof(struct nonempty_string)); | |
26106 | 26310 | { |
26107 | 26311 | uint8_t _54; memset(&_54, 0, sizeof(uint8_t)); |
26108 | 26312 | _54 = 42; |
@@ -26110,12 +26314,12 @@ | ||
26110 | 26314 | { |
26111 | 26315 | nonempty_to_string(&_55, &*id); |
26112 | 26316 | } |
26113 | - preapp(&_53, &_54, &_55); | |
26317 | + nonempty_string(&_53, &_54, &_55); | |
26114 | 26318 | string$dest(&_55); |
26115 | 26319 | _IGNORE_(_54); |
26116 | 26320 | } |
26117 | 26321 | find_var_report_unused_and_mark_used(&_51, &*_52, &_53); |
26118 | - string$dest(&_53); | |
26322 | + nonempty_string$dest(&_53); | |
26119 | 26323 | } |
26120 | 26324 | if(_51) |
26121 | 26325 | { |
@@ -26274,7 +26478,7 @@ | ||
26274 | 26478 | } |
26275 | 26479 | } |
26276 | 26480 | |
26277 | -void ParseWhile$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
26481 | +void ParseWhile$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
26278 | 26482 | { |
26279 | 26483 | { |
26280 | 26484 | const struct requires_totality *_1 = &(*totality); |
@@ -26368,7 +26572,7 @@ | ||
26368 | 26572 | } |
26369 | 26573 | struct stack/*qtypepureid*/ _12; memset(&_12, 0, sizeof(struct stack/*qtypepureid*/)); |
26370 | 26574 | { |
26371 | - solid(&_12, &_condition, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5176); | |
26575 | + solid(&_12, &_condition, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5202); | |
26372 | 26576 | } |
26373 | 26577 | struct string _13; memset(&_13, 0, sizeof(struct string)); |
26374 | 26578 | { |
@@ -26456,7 +26660,7 @@ | ||
26456 | 26660 | } |
26457 | 26661 | struct stack/*qtypepureid*/ _19; memset(&_19, 0, sizeof(struct stack/*qtypepureid*/)); |
26458 | 26662 | { |
26459 | - empty(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5183); | |
26663 | + empty(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5209); | |
26460 | 26664 | } |
26461 | 26665 | ParseBlock$(0 /* _17 */, &*streams, &*txtpos, &*state, &_18, &*sp, &*tmpnr, &_19, &*totality, &*action, &*self, &*reduced_ids); |
26462 | 26666 | free$(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -26505,7 +26709,7 @@ | ||
26505 | 26709 | } |
26506 | 26710 | } |
26507 | 26711 | |
26508 | -void ParseStatement$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const id) | |
26712 | +void ParseStatement$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids, const struct string *const id) | |
26509 | 26713 | { |
26510 | 26714 | { |
26511 | 26715 | bool _2; |
@@ -26535,7 +26739,7 @@ | ||
26535 | 26739 | { |
26536 | 26740 | struct stack/*qtypepureid*/ _6; memset(&_6, 0, sizeof(struct stack/*qtypepureid*/)); |
26537 | 26741 | { |
26538 | - empty(&_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5204); | |
26742 | + empty(&_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5230); | |
26539 | 26743 | } |
26540 | 26744 | bool _7; memset(&_7, 0, sizeof(bool)); |
26541 | 26745 | _7 = 0; |
@@ -27005,7 +27209,7 @@ | ||
27005 | 27209 | } |
27006 | 27210 | } |
27007 | 27211 | |
27008 | -void ParseLines$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27212 | +void ParseLines$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27009 | 27213 | { |
27010 | 27214 | { |
27011 | 27215 | { |
@@ -27038,7 +27242,7 @@ | ||
27038 | 27242 | } |
27039 | 27243 | } |
27040 | 27244 | |
27041 | -void ParseBlockRaw$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level_, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27245 | +void ParseBlockRaw$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level_, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27042 | 27246 | { |
27043 | 27247 | { |
27044 | 27248 | { |
@@ -27060,7 +27264,7 @@ | ||
27060 | 27264 | } |
27061 | 27265 | } |
27062 | 27266 | |
27063 | -void ParseBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27267 | +void ParseBlock$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, struct state *const state, const uint64_t *const level, struct scopepath *const sp, const uint64_t *const tmpnr_, const struct stack/*qtypepureid*/ *const store, const struct requires_totality *const totality, const bool *const action, const struct nonempty_string *const self, const struct stack/*ReducedId*/ *const reduced_ids) | |
27064 | 27268 | { |
27065 | 27269 | { |
27066 | 27270 | { |
@@ -27413,8 +27617,7 @@ | ||
27413 | 27617 | { |
27414 | 27618 | bool _13; memset(&_13, 0, sizeof(bool)); |
27415 | 27619 | { |
27416 | - const struct string *_14 = &(*id).rest; | |
27417 | - idpart(&_13, &*_14); | |
27620 | + idpart(&_13, &*id); | |
27418 | 27621 | } |
27419 | 27622 | StructCompareElems(0 /* _12 */, &*out, &*err, &*structs, &*elems, &_13); |
27420 | 27623 | _IGNORE_(_13); |
@@ -27657,8 +27860,7 @@ | ||
27657 | 27860 | { |
27658 | 27861 | bool _14; memset(&_14, 0, sizeof(bool)); |
27659 | 27862 | { |
27660 | - const struct string *_15 = &(*id).rest; | |
27661 | - idpart(&_14, &*_15); | |
27863 | + idpart(&_14, &*id); | |
27662 | 27864 | } |
27663 | 27865 | StructPrintElems(0 /* _13 */, &*out, &*err, &*structs, &*elems, &_14); |
27664 | 27866 | _IGNORE_(_14); |
@@ -27717,7 +27919,7 @@ | ||
27717 | 27919 | _IGNORE_(_3); |
27718 | 27920 | } |
27719 | 27921 | { |
27720 | - push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5507); | |
27922 | + push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5533); | |
27721 | 27923 | } |
27722 | 27924 | { |
27723 | 27925 | uint64_t _5; memset(&_5, 0, sizeof(uint64_t)); |
@@ -27902,8 +28104,7 @@ | ||
27902 | 28104 | { |
27903 | 28105 | bool _5; memset(&_5, 0, sizeof(bool)); |
27904 | 28106 | { |
27905 | - const struct string *_6 = &(*id).rest; | |
27906 | - idpart(&_5, &*_6); | |
28107 | + idpart(&_5, &*id); | |
27907 | 28108 | } |
27908 | 28109 | StructCopyElems(0 /* _4 */, &*out, &*err, &*txtpos, &*structs, &*elems, &_5); |
27909 | 28110 | _IGNORE_(_5); |
@@ -28329,8 +28530,7 @@ | ||
28329 | 28530 | struct stack/*structdef*/ *_12 = &(*state).structs; |
28330 | 28531 | bool _13; memset(&_13, 0, sizeof(bool)); |
28331 | 28532 | { |
28332 | - const struct string *_14 = &(*id).rest; | |
28333 | - idpart(&_13, &*_14); | |
28533 | + idpart(&_13, &*id); | |
28334 | 28534 | } |
28335 | 28535 | StructConstrElems(0 /* _11 */, &*out, &*err, &*txtpos, &*_12, &*elems, &_13); |
28336 | 28536 | _IGNORE_(_13); |
@@ -28355,8 +28555,7 @@ | ||
28355 | 28555 | } |
28356 | 28556 | bool _18; memset(&_18, 0, sizeof(bool)); |
28357 | 28557 | { |
28358 | - const struct string *_19 = &(*id).rest; | |
28359 | - idpart(&_18, &*_19); | |
28558 | + idpart(&_18, &*id); | |
28360 | 28559 | } |
28361 | 28560 | struct fnstat _19; memset(&_19, 0, sizeof(struct fnstat)); |
28362 | 28561 | { |
@@ -28395,7 +28594,7 @@ | ||
28395 | 28594 | const struct nonempty_string *_6 = &(*c).id; |
28396 | 28595 | typepureid(&_4, &*_5, &*_6); |
28397 | 28596 | } |
28398 | - push(0 /* _3 */, &*extracted, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5641); | |
28597 | + push(0 /* _3 */, &*extracted, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5667); | |
28399 | 28598 | typepureid$dest(&_4); |
28400 | 28599 | } |
28401 | 28600 | } |
@@ -29045,8 +29244,7 @@ | ||
29045 | 29244 | struct stack/*structdef*/ *_39 = &(*state).structs; |
29046 | 29245 | bool _40; memset(&_40, 0, sizeof(bool)); |
29047 | 29246 | { |
29048 | - const struct string *_41 = &(*id).rest; | |
29049 | - idpart(&_40, &*_41); | |
29247 | + idpart(&_40, &*id); | |
29050 | 29248 | } |
29051 | 29249 | DataCompareElems(0 /* _38 */, &*out, &*err, &*_39, &*id, &*elems, &_40); |
29052 | 29250 | _IGNORE_(_40); |
@@ -29097,7 +29295,7 @@ | ||
29097 | 29295 | } |
29098 | 29296 | } |
29099 | 29297 | |
29100 | -void DataPrints(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, struct state *const state, const struct string *const id, const struct stack/*constr*/ *const constrs, const bool *const partial) | |
29298 | +void DataPrints(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, const struct linecol *const txtpos, struct state *const state, const struct stack/*constr*/ *const constrs, const bool *const partial) | |
29101 | 29299 | { |
29102 | 29300 | { |
29103 | 29301 | if(constrs->fill > 0) |
@@ -29109,7 +29307,7 @@ | ||
29109 | 29307 | const struct constr *constr = ((const struct constr *)(_rest.data)) + _rest.fill; // REFERENCE - memory must NOT be de-allocated when leaving scope!!! |
29110 | 29308 | { |
29111 | 29309 | { |
29112 | - DataPrints(0 /* _2 */, &*out, &*err, &*txtpos, &*state, &*id, &_rest, &*partial); | |
29310 | + DataPrints(0 /* _2 */, &*out, &*err, &*txtpos, &*state, &_rest, &*partial); | |
29113 | 29311 | } |
29114 | 29312 | bool _4; |
29115 | 29313 | { |
@@ -29257,7 +29455,7 @@ | ||
29257 | 29455 | } |
29258 | 29456 | } |
29259 | 29457 | |
29260 | -void DataPrintElems(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, struct stack/*structdef*/ *const structs, const struct string *const id, const struct stack/*typepureid*/ *const elems, const bool *const partial) | |
29458 | +void DataPrintElems(void *const _0, const struct StreamOut *const out, const struct StreamOut *const err, struct stack/*structdef*/ *const structs, const struct nonempty_string *const id, const struct stack/*typepureid*/ *const elems, const bool *const partial) | |
29261 | 29459 | { |
29262 | 29460 | { |
29263 | 29461 | if(elems->fill > 0) |
@@ -29340,7 +29538,12 @@ | ||
29340 | 29538 | string$dest(&_14); |
29341 | 29539 | } |
29342 | 29540 | { |
29343 | - PutStr(0 /* _14 */, &*out, &*id); | |
29541 | + struct string _15; memset(&_15, 0, sizeof(struct string)); | |
29542 | + { | |
29543 | + nonempty_to_string(&_15, &*id); | |
29544 | + } | |
29545 | + PutStr(0 /* _14 */, &*out, &_15); | |
29546 | + string$dest(&_15); | |
29344 | 29547 | } |
29345 | 29548 | { |
29346 | 29549 | struct string _16; memset(&_16, 0, sizeof(struct string)); |
@@ -29614,18 +29817,12 @@ | ||
29614 | 29817 | } |
29615 | 29818 | { |
29616 | 29819 | struct stack/*structdef*/ *_16 = &(*state).structs; |
29617 | - struct string _17; memset(&_17, 0, sizeof(struct string)); | |
29820 | + bool _17; memset(&_17, 0, sizeof(bool)); | |
29618 | 29821 | { |
29619 | - nonempty_to_string(&_17, &*id); | |
29822 | + idpart(&_17, &*id); | |
29620 | 29823 | } |
29621 | - bool _18; memset(&_18, 0, sizeof(bool)); | |
29622 | - { | |
29623 | - const struct string *_19 = &(*id).rest; | |
29624 | - idpart(&_18, &*_19); | |
29625 | - } | |
29626 | - DataPrintElems(0 /* _15 */, &*out, &*err, &*_16, &_17, &*elems, &_18); | |
29627 | - _IGNORE_(_18); | |
29628 | - string$dest(&_17); | |
29824 | + DataPrintElems(0 /* _15 */, &*out, &*err, &*_16, &*id, &*elems, &_17); | |
29825 | + _IGNORE_(_17); | |
29629 | 29826 | } |
29630 | 29827 | { |
29631 | 29828 | uint64_t _17; memset(&_17, 0, sizeof(uint64_t)); |
@@ -29974,8 +30171,7 @@ | ||
29974 | 30171 | { |
29975 | 30172 | bool _38; memset(&_38, 0, sizeof(bool)); |
29976 | 30173 | { |
29977 | - const struct string *_39 = &(*id).rest; | |
29978 | - idpart(&_38, &*_39); | |
30174 | + idpart(&_38, &*id); | |
29979 | 30175 | } |
29980 | 30176 | DataCopyElems(0 /* _37 */, &*out, &*err, &*txtpos, &*structs, &*elems, &_38); |
29981 | 30177 | _IGNORE_(_38); |
@@ -30610,8 +30806,7 @@ | ||
30610 | 30806 | { |
30611 | 30807 | bool _2; memset(&_2, 0, sizeof(bool)); |
30612 | 30808 | { |
30613 | - const struct string *_3 = &(*id).rest; | |
30614 | - idpart(&_2, &*_3); | |
30809 | + idpart(&_2, &*id); | |
30615 | 30810 | } |
30616 | 30811 | UnionConstrs$(0 /* _1 */, &*out, &*err, &*txtpos, &*state, &*id, &*elems, &_2); |
30617 | 30812 | _IGNORE_(_2); |
@@ -30650,11 +30845,11 @@ | ||
30650 | 30845 | { |
30651 | 30846 | struct qtype _decl_; memset(&_decl_, 0, sizeof(struct qtype)); |
30652 | 30847 | { |
30653 | - at_get$(&_decl_, &*decl, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5946); | |
30848 | + at_get$(&_decl_, &*decl, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5972); | |
30654 | 30849 | } |
30655 | 30850 | struct qtype _def_; memset(&_def_, 0, sizeof(struct qtype)); |
30656 | 30851 | { |
30657 | - at_get$(&_def_, &*def, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5947); | |
30852 | + at_get$(&_def_, &*def, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5973); | |
30658 | 30853 | } |
30659 | 30854 | bool _4; |
30660 | 30855 | { |
@@ -30839,7 +31034,7 @@ | ||
30839 | 31034 | } |
30840 | 31035 | } |
30841 | 31036 | |
30842 | -void EmitStructDecl(void *const _0, const struct StreamOut *const out, const struct string *const id) | |
31037 | +void EmitStructDecl(void *const _0, const struct StreamOut *const out, const struct nonempty_string *const id) | |
30843 | 31038 | { |
30844 | 31039 | { |
30845 | 31040 | { |
@@ -30849,7 +31044,12 @@ | ||
30849 | 31044 | string$dest(&_2); |
30850 | 31045 | } |
30851 | 31046 | { |
30852 | - PutStr(0 /* _2 */, &*out, &*id); | |
31047 | + struct string _3; memset(&_3, 0, sizeof(struct string)); | |
31048 | + { | |
31049 | + nonempty_to_string(&_3, &*id); | |
31050 | + } | |
31051 | + PutStr(0 /* _2 */, &*out, &_3); | |
31052 | + string$dest(&_3); | |
30853 | 31053 | } |
30854 | 31054 | { |
30855 | 31055 | struct string _4; memset(&_4, 0, sizeof(struct string)); |
@@ -30926,7 +31126,7 @@ | ||
30926 | 31126 | { |
30927 | 31127 | STRUCT(&_6, &*elems); |
30928 | 31128 | } |
30929 | - solid(&_5, &_6, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6012); | |
31129 | + solid(&_5, &_6, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6038); | |
30930 | 31130 | flavour$dest(&_6); |
30931 | 31131 | } |
30932 | 31132 | structdef(&_4, &_5, &*id, &*used); |
@@ -31579,7 +31779,7 @@ | ||
31579 | 31779 | { |
31580 | 31780 | struct typepureid _cur; memset(&_cur, 0, sizeof(struct typepureid)); |
31581 | 31781 | { |
31582 | - at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6131); | |
31782 | + at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6157); | |
31583 | 31783 | } |
31584 | 31784 | { |
31585 | 31785 | uint64_t _4; memset(&_4, 0, sizeof(uint64_t)); |
@@ -31680,7 +31880,7 @@ | ||
31680 | 31880 | { |
31681 | 31881 | struct typepureid _cur; memset(&_cur, 0, sizeof(struct typepureid)); |
31682 | 31882 | { |
31683 | - at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6147); | |
31883 | + at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6173); | |
31684 | 31884 | } |
31685 | 31885 | { |
31686 | 31886 | struct qtype _4; memset(&_4, 0, sizeof(struct qtype)); |
@@ -31753,7 +31953,7 @@ | ||
31753 | 31953 | { |
31754 | 31954 | struct constr _c; memset(&_c, 0, sizeof(struct constr)); |
31755 | 31955 | { |
31756 | - at_get$(&_c, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6161); | |
31956 | + at_get$(&_c, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6187); | |
31757 | 31957 | } |
31758 | 31958 | bool _4; |
31759 | 31959 | { |
@@ -31821,11 +32021,11 @@ | ||
31821 | 32021 | } |
31822 | 32022 | struct typepureid _elem; memset(&_elem, 0, sizeof(struct typepureid)); |
31823 | 32023 | { |
31824 | - at_get$(&_elem, &_elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6178); | |
32024 | + at_get$(&_elem, &_elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6204); | |
31825 | 32025 | } |
31826 | 32026 | struct constr _constr; memset(&_constr, 0, sizeof(struct constr)); |
31827 | 32027 | { |
31828 | - at_get$(&_constr, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6180); | |
32028 | + at_get$(&_constr, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6206); | |
31829 | 32029 | } |
31830 | 32030 | struct type_pure _type; memset(&_type, 0, sizeof(struct type_pure)); |
31831 | 32031 | { |
@@ -32290,7 +32490,7 @@ | ||
32290 | 32490 | { |
32291 | 32491 | DATA(&_8, &*constrs); |
32292 | 32492 | } |
32293 | - solid(&_7, &_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6224); | |
32493 | + solid(&_7, &_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6250); | |
32294 | 32494 | flavour$dest(&_8); |
32295 | 32495 | } |
32296 | 32496 | structdef(&_6, &_7, &*id, &*used); |
@@ -32312,8 +32512,7 @@ | ||
32312 | 32512 | _8 = 0; |
32313 | 32513 | bool _9; memset(&_9, 0, sizeof(bool)); |
32314 | 32514 | { |
32315 | - const struct string *_10 = &(*id).rest; | |
32316 | - idpart(&_9, &*_10); | |
32515 | + idpart(&_9, &*id); | |
32317 | 32516 | } |
32318 | 32517 | DataConstrs$(0 /* _7 */, &*out, &*err, &*txtpos, &*state, &*id, &*constrs, &_8, &_9); |
32319 | 32518 | _IGNORE_(_9); |
@@ -32329,18 +32528,12 @@ | ||
32329 | 32528 | string$dest(&_10); |
32330 | 32529 | } |
32331 | 32530 | { |
32332 | - struct string _11; memset(&_11, 0, sizeof(struct string)); | |
32531 | + bool _11; memset(&_11, 0, sizeof(bool)); | |
32333 | 32532 | { |
32334 | - nonempty_to_string(&_11, &*id); | |
32533 | + idpart(&_11, &*id); | |
32335 | 32534 | } |
32336 | - bool _12; memset(&_12, 0, sizeof(bool)); | |
32337 | - { | |
32338 | - const struct string *_13 = &(*id).rest; | |
32339 | - idpart(&_12, &*_13); | |
32340 | - } | |
32341 | - DataPrints(0 /* _10 */, &*out, &*err, &*txtpos, &*state, &_11, &*constrs, &_12); | |
32342 | - _IGNORE_(_12); | |
32343 | - string$dest(&_11); | |
32535 | + DataPrints(0 /* _10 */, &*out, &*err, &*txtpos, &*state, &*constrs, &_11); | |
32536 | + _IGNORE_(_11); | |
32344 | 32537 | } |
32345 | 32538 | { |
32346 | 32539 | struct string _12; memset(&_12, 0, sizeof(struct string)); |
@@ -32360,8 +32553,7 @@ | ||
32360 | 32553 | { |
32361 | 32554 | bool _15; memset(&_15, 0, sizeof(bool)); |
32362 | 32555 | { |
32363 | - const struct string *_16 = &(*id).rest; | |
32364 | - idpart(&_15, &*_16); | |
32556 | + idpart(&_15, &*id); | |
32365 | 32557 | } |
32366 | 32558 | DataCompares(0 /* _14 */, &*out, &*err, &*txtpos, &*state, &*id, &*constrs, &_15); |
32367 | 32559 | _IGNORE_(_15); |
@@ -32481,7 +32673,7 @@ | ||
32481 | 32673 | _IGNORE_(_3); |
32482 | 32674 | } |
32483 | 32675 | { |
32484 | - push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6266); | |
32676 | + push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6292); | |
32485 | 32677 | } |
32486 | 32678 | { |
32487 | 32679 | uint64_t _5; memset(&_5, 0, sizeof(uint64_t)); |
@@ -32620,12 +32812,7 @@ | ||
32620 | 32812 | } |
32621 | 32813 | { |
32622 | 32814 | const struct StreamOut *_11 = &(*streams).out; |
32623 | - struct string _12; memset(&_12, 0, sizeof(struct string)); | |
32624 | - { | |
32625 | - nonempty_to_string(&_12, &_id); | |
32626 | - } | |
32627 | - EmitStructDecl(0 /* _10 */, &*_11, &_12); | |
32628 | - string$dest(&_12); | |
32815 | + EmitStructDecl(0 /* _10 */, &*_11, &_id); | |
32629 | 32816 | } |
32630 | 32817 | { |
32631 | 32818 | const struct StreamOut *_12 = &(*streams).out; |
@@ -32713,7 +32900,7 @@ | ||
32713 | 32900 | } |
32714 | 32901 | } |
32715 | 32902 | { |
32716 | - push(0 /* _10 */, &*constrs, &_c, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6320); | |
32903 | + push(0 /* _10 */, &*constrs, &_c, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6346); | |
32717 | 32904 | } |
32718 | 32905 | bool _12; |
32719 | 32906 | { |
@@ -32929,7 +33116,7 @@ | ||
32929 | 33116 | } |
32930 | 33117 | } |
32931 | 33118 | |
32932 | -void EmitSwitchHead$(void *const _0, const struct Streams *const streams, const struct type_pure *const retype, const struct string *const name, const uint64_t *const casenr, const struct stack/*qtypepure*/ *const parids, struct scopepath *const sp) | |
33119 | +void EmitSwitchHead$(void *const _0, const struct Streams *const streams, const struct type_pure *const retype, const struct nonempty_string *const name, const uint64_t *const casenr, const struct stack/*qtypepure*/ *const parids, struct scopepath *const sp) | |
32933 | 33120 | { |
32934 | 33121 | { |
32935 | 33122 | { |
@@ -32941,7 +33128,12 @@ | ||
32941 | 33128 | } |
32942 | 33129 | { |
32943 | 33130 | const struct StreamOut *_3 = &(*streams).out; |
32944 | - PutStr(0 /* _2 */, &*_3, &*name); | |
33131 | + struct string _4; memset(&_4, 0, sizeof(struct string)); | |
33132 | + { | |
33133 | + nonempty_to_string(&_4, &*name); | |
33134 | + } | |
33135 | + PutStr(0 /* _2 */, &*_3, &_4); | |
33136 | + string$dest(&_4); | |
32945 | 33137 | } |
32946 | 33138 | { |
32947 | 33139 | const struct StreamOut *_4 = &(*streams).out; |
@@ -32960,12 +33152,17 @@ | ||
32960 | 33152 | } |
32961 | 33153 | } |
32962 | 33154 | |
32963 | -void EmitGenericCallId$(void *const _0, const struct Streams *const streams, const struct string *const name, const uint64_t *const casenr, const struct stack/*qtypepureid*/ *const parids) | |
33155 | +void EmitGenericCallId$(void *const _0, const struct Streams *const streams, const struct nonempty_string *const name, const uint64_t *const casenr, const struct stack/*qtypepureid*/ *const parids) | |
32964 | 33156 | { |
32965 | 33157 | { |
32966 | 33158 | { |
32967 | 33159 | const struct StreamOut *_2 = &(*streams).out; |
32968 | - PutStr(0 /* _1 */, &*_2, &*name); | |
33160 | + struct string _3; memset(&_3, 0, sizeof(struct string)); | |
33161 | + { | |
33162 | + nonempty_to_string(&_3, &*name); | |
33163 | + } | |
33164 | + PutStr(0 /* _1 */, &*_2, &_3); | |
33165 | + string$dest(&_3); | |
32969 | 33166 | } |
32970 | 33167 | { |
32971 | 33168 | const struct StreamOut *_3 = &(*streams).out; |
@@ -33011,7 +33208,7 @@ | ||
33011 | 33208 | qtypepureid(&_4, &*id, &_5); |
33012 | 33209 | nonempty_string$dest(&_5); |
33013 | 33210 | } |
33014 | - push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6421); | |
33211 | + push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6447); | |
33015 | 33212 | qtypepureid$dest(&_4); |
33016 | 33213 | } |
33017 | 33214 | } |
@@ -33041,7 +33238,7 @@ | ||
33041 | 33238 | qtypepureid(&_4, &_5, &*_6); |
33042 | 33239 | qtypepure$dest(&_5); |
33043 | 33240 | } |
33044 | - push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6432); | |
33241 | + push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6458); | |
33045 | 33242 | qtypepureid$dest(&_4); |
33046 | 33243 | } |
33047 | 33244 | } |
@@ -33249,8 +33446,8 @@ | ||
33249 | 33446 | free$(&_0->qts, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest); |
33250 | 33447 | } |
33251 | 33448 | |
33252 | -void ParseMatch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, const struct stack/*qtypepureid*/ *const parids, struct stack/*string*/ *const usedids, struct stack/*ReducedId*/ *const reduced_ids); | |
33253 | -void ParseMatchStruct$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, struct stack/*string*/ *const usedids, const struct stack/*typepureid*/ *const elems, struct stack/*ReducedId*/ *const reduced_ids) | |
33449 | +void ParseMatch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, const struct stack/*qtypepureid*/ *const parids, struct stack/*nonempty_string*/ *const usedids, struct stack/*ReducedId*/ *const reduced_ids); | |
33450 | +void ParseMatchStruct$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, struct stack/*nonempty_string*/ *const usedids, const struct stack/*typepureid*/ *const elems, struct stack/*ReducedId*/ *const reduced_ids) | |
33254 | 33451 | { |
33255 | 33452 | { |
33256 | 33453 | bool _first; memset(&_first, 0, sizeof(bool)); |
@@ -33443,7 +33640,7 @@ | ||
33443 | 33640 | ReducedId(&_19, &*_20, &_21); |
33444 | 33641 | string$dest(&_21); |
33445 | 33642 | } |
33446 | - push(0 /* _18 */, &*reduced_ids, &_19, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6474); | |
33643 | + push(0 /* _18 */, &*reduced_ids, &_19, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6500); | |
33447 | 33644 | ReducedId$dest(&_19); |
33448 | 33645 | } |
33449 | 33646 | } |
@@ -33461,7 +33658,7 @@ | ||
33461 | 33658 | } |
33462 | 33659 | } |
33463 | 33660 | |
33464 | -void ParseMatch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, const struct stack/*qtypepureid*/ *const parids, struct stack/*string*/ *const usedids, struct stack/*ReducedId*/ *const reduced_ids) | |
33661 | +void ParseMatch$(void *const _0, const struct Streams *const streams, struct linecol *const txtpos, const struct stack/*structdef*/ *const structs, const uint64_t *const level, struct scopepath *const sp, uint64_t *const tmpnr, const struct qtypepureid *const par, const uint64_t *const casenr, const struct typepureid *const ti, const struct stack/*qtypepureid*/ *const parids, struct stack/*nonempty_string*/ *const usedids, struct stack/*ReducedId*/ *const reduced_ids) | |
33465 | 33662 | { |
33466 | 33663 | { |
33467 | 33664 | bool _2; |
@@ -33481,17 +33678,22 @@ | ||
33481 | 33678 | } |
33482 | 33679 | bool _redef; memset(&_redef, 0, sizeof(bool)); |
33483 | 33680 | _redef = 0; |
33484 | - const struct stack/*string*/ *_3 = &(*usedids); | |
33681 | + const struct stack/*nonempty_string*/ *_3 = &(*usedids); | |
33485 | 33682 | for(uint64_t _4 = 0; _4 < (*_3).fill; ++_4) |
33486 | 33683 | { |
33487 | - struct string *usedid = &((struct string *)((*_3).data))[_4]; | |
33684 | + struct nonempty_string *usedid = &((struct nonempty_string *)((*_3).data))[_4]; | |
33488 | 33685 | bool _6; |
33489 | 33686 | { |
33490 | 33687 | struct string _7; memset(&_7, 0, sizeof(struct string)); |
33491 | 33688 | { |
33492 | - nonempty_to_string(&_7, &_parid); | |
33689 | + nonempty_to_string(&_7, &*usedid); | |
33493 | 33690 | } |
33494 | - strequ(&_6, &*usedid, &_7); | |
33691 | + struct string _8; memset(&_8, 0, sizeof(struct string)); | |
33692 | + { | |
33693 | + nonempty_to_string(&_8, &_parid); | |
33694 | + } | |
33695 | + strequ(&_6, &_7, &_8); | |
33696 | + string$dest(&_8); | |
33495 | 33697 | string$dest(&_7); |
33496 | 33698 | } |
33497 | 33699 | if(_6) |
@@ -33532,12 +33734,7 @@ | ||
33532 | 33734 | } |
33533 | 33735 | } |
33534 | 33736 | { |
33535 | - struct string _8; memset(&_8, 0, sizeof(struct string)); | |
33536 | - { | |
33537 | - nonempty_to_string(&_8, &_parid); | |
33538 | - } | |
33539 | - push(0 /* _7 */, &*usedids, &_8, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 6506); | |
33540 | - string$dest(&_8); | |
33737 | + push(0 /* _7 */, &*usedids, &_parid, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest, (void (*)(void *, const void *))nonempty_string$copy, 6532); | |
33541 | 33738 | } |
33542 | 33739 | struct qtypepureid _qti; memset(&_qti, 0, sizeof(struct qtypepureid)); |
33543 | 33740 | { |
@@ -33627,7 +33824,7 @@ | ||
33627 | 33824 | ReducedId(&_18, &*_19, &_20); |
33628 | 33825 | string$dest(&_20); |
33629 | 33826 | } |
33630 | - push(0 /* _17 */, &*reduced_ids, &_18, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6516); | |
33827 | + push(0 /* _17 */, &*reduced_ids, &_18, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6542); | |
33631 | 33828 | ReducedId$dest(&_18); |
33632 | 33829 | } |
33633 | 33830 | } |
@@ -33638,7 +33835,7 @@ | ||
33638 | 33835 | { |
33639 | 33836 | varinit(&_17, &_qti); |
33640 | 33837 | } |
33641 | - push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6520); | |
33838 | + push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6546); | |
33642 | 33839 | var$dest(&_17); |
33643 | 33840 | } |
33644 | 33841 | free$(&_redids, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); |
@@ -33935,13 +34132,8 @@ | ||
33935 | 34132 | _IGNORE_(_31); |
33936 | 34133 | } |
33937 | 34134 | { |
33938 | - struct string _31; memset(&_31, 0, sizeof(struct string)); | |
33939 | - { | |
33940 | - const struct nonempty_string *_32 = &(*ti).id; | |
33941 | - nonempty_to_string(&_31, &*_32); | |
33942 | - } | |
33943 | - EmitGenericCallId$(0 /* _30 */, &*streams, &_31, &_previous_case, &*parids); | |
33944 | - string$dest(&_31); | |
34135 | + const struct nonempty_string *_31 = &(*ti).id; | |
34136 | + EmitGenericCallId$(0 /* _30 */, &*streams, &*_31, &_previous_case, &*parids); | |
33945 | 34137 | } |
33946 | 34138 | { |
33947 | 34139 | const struct StreamOut *_32 = &(*streams).out; |
@@ -33984,7 +34176,7 @@ | ||
33984 | 34176 | struct typepureid _elem; memset(&_elem, 0, sizeof(struct typepureid)); |
33985 | 34177 | { |
33986 | 34178 | const struct stack/*typepureid*/ *_35 = &(*f).elems; |
33987 | - at_get$(&_elem, &*_35, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6582); | |
34179 | + at_get$(&_elem, &*_35, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6608); | |
33988 | 34180 | } |
33989 | 34181 | { |
33990 | 34182 | struct qtypepureid _35; memset(&_35, 0, sizeof(struct qtypepureid)); |
@@ -34064,7 +34256,7 @@ | ||
34064 | 34256 | struct stack/*qtypepureid*/ _43; memset(&_43, 0, sizeof(struct stack/*qtypepureid*/)); |
34065 | 34257 | struct stack/*qtypepureid*/ *parids = &_43; |
34066 | 34258 | { |
34067 | - push(0 /* _44 */, &*parids, &*elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6587); | |
34259 | + push(0 /* _44 */, &*parids, &*elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6613); | |
34068 | 34260 | } |
34069 | 34261 | { |
34070 | 34262 | ParseMatch$(0 /* _45 */, &*streams, &*txtpos, &*structs, &*level, &*sp, &*tmpnr, &*elem, &*casenr, &*ti, &*parids, &*usedids, &*reduced_ids); |
@@ -34223,13 +34415,8 @@ | ||
34223 | 34415 | _IGNORE_(_33); |
34224 | 34416 | } |
34225 | 34417 | { |
34226 | - struct string _33; memset(&_33, 0, sizeof(struct string)); | |
34227 | - { | |
34228 | - const struct nonempty_string *_34 = &(*ti).id; | |
34229 | - nonempty_to_string(&_33, &*_34); | |
34230 | - } | |
34231 | - EmitGenericCallId$(0 /* _32 */, &*streams, &_33, &_previous_case, &*parids); | |
34232 | - string$dest(&_33); | |
34418 | + const struct nonempty_string *_33 = &(*ti).id; | |
34419 | + EmitGenericCallId$(0 /* _32 */, &*streams, &*_33, &_previous_case, &*parids); | |
34233 | 34420 | } |
34234 | 34421 | { |
34235 | 34422 | const struct StreamOut *_34 = &(*streams).out; |
@@ -34272,7 +34459,7 @@ | ||
34272 | 34459 | struct constr _constr; memset(&_constr, 0, sizeof(struct constr)); |
34273 | 34460 | { |
34274 | 34461 | const struct stack/*constr*/ *_37 = &(*f).constrs; |
34275 | - at_get$(&_constr, &*_37, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6613); | |
34462 | + at_get$(&_constr, &*_37, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6639); | |
34276 | 34463 | } |
34277 | 34464 | struct qtypepureid _sub; memset(&_sub, 0, sizeof(struct qtypepureid)); |
34278 | 34465 | { |
@@ -34363,7 +34550,7 @@ | ||
34363 | 34550 | ReducedId(&_45, &*_46, &_47); |
34364 | 34551 | string$dest(&_47); |
34365 | 34552 | } |
34366 | - push(0 /* _44 */, &*reduced_ids, &_45, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6616); | |
34553 | + push(0 /* _44 */, &*reduced_ids, &_45, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6642); | |
34367 | 34554 | ReducedId$dest(&_45); |
34368 | 34555 | } |
34369 | 34556 | struct stack/*typepureid*/ _elems; memset(&_elems, 0, sizeof(struct stack/*typepureid*/)); |
@@ -34449,15 +34636,20 @@ | ||
34449 | 34636 | case 2: // void container_opt: |
34450 | 34637 | { |
34451 | 34638 | { |
34452 | - struct string _constrid; memset(&_constrid, 0, sizeof(struct string)); | |
34639 | + struct nonempty_string _constrid; memset(&_constrid, 0, sizeof(struct nonempty_string)); | |
34453 | 34640 | { |
34454 | - ParseId$(&_constrid, &*streams, &*txtpos, &*level); | |
34641 | + ParseIdNonEmpty$(&_constrid, &*streams, &*txtpos, &*level); | |
34455 | 34642 | } |
34456 | 34643 | bool _15; |
34457 | 34644 | { |
34458 | 34645 | struct string _16; memset(&_16, 0, sizeof(struct string)); |
34459 | - init$fromliteral(&_16, "empty", 5); | |
34460 | - strequ(&_15, &_constrid, &_16); | |
34646 | + { | |
34647 | + nonempty_to_string(&_16, &_constrid); | |
34648 | + } | |
34649 | + struct string _17; memset(&_17, 0, sizeof(struct string)); | |
34650 | + init$fromliteral(&_17, "empty", 5); | |
34651 | + strequ(&_15, &_16, &_17); | |
34652 | + string$dest(&_17); | |
34461 | 34653 | string$dest(&_16); |
34462 | 34654 | } |
34463 | 34655 | if(_15) |
@@ -34530,13 +34722,8 @@ | ||
34530 | 34722 | _IGNORE_(_24); |
34531 | 34723 | } |
34532 | 34724 | { |
34533 | - struct string _24; memset(&_24, 0, sizeof(struct string)); | |
34534 | - { | |
34535 | - const struct nonempty_string *_25 = &(*ti).id; | |
34536 | - nonempty_to_string(&_24, &*_25); | |
34537 | - } | |
34538 | - EmitGenericCallId$(0 /* _23 */, &*streams, &_24, &_previous_case, &*parids); | |
34539 | - string$dest(&_24); | |
34725 | + const struct nonempty_string *_24 = &(*ti).id; | |
34726 | + EmitGenericCallId$(0 /* _23 */, &*streams, &*_24, &_previous_case, &*parids); | |
34540 | 34727 | } |
34541 | 34728 | { |
34542 | 34729 | const struct StreamOut *_25 = &(*streams).out; |
@@ -34582,8 +34769,13 @@ | ||
34582 | 34769 | bool _16; |
34583 | 34770 | { |
34584 | 34771 | struct string _17; memset(&_17, 0, sizeof(struct string)); |
34585 | - init$fromliteral(&_17, "solid", 5); | |
34586 | - strequ(&_16, &_constrid, &_17); | |
34772 | + { | |
34773 | + nonempty_to_string(&_17, &_constrid); | |
34774 | + } | |
34775 | + struct string _18; memset(&_18, 0, sizeof(struct string)); | |
34776 | + init$fromliteral(&_18, "solid", 5); | |
34777 | + strequ(&_16, &_17, &_18); | |
34778 | + string$dest(&_18); | |
34587 | 34779 | string$dest(&_17); |
34588 | 34780 | } |
34589 | 34781 | if(_16) |
@@ -34656,13 +34848,8 @@ | ||
34656 | 34848 | _IGNORE_(_25); |
34657 | 34849 | } |
34658 | 34850 | { |
34659 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
34660 | - { | |
34661 | - const struct nonempty_string *_26 = &(*ti).id; | |
34662 | - nonempty_to_string(&_25, &*_26); | |
34663 | - } | |
34664 | - EmitGenericCallId$(0 /* _24 */, &*streams, &_25, &_previous_case, &*parids); | |
34665 | - string$dest(&_25); | |
34851 | + const struct nonempty_string *_25 = &(*ti).id; | |
34852 | + EmitGenericCallId$(0 /* _24 */, &*streams, &*_25, &_previous_case, &*parids); | |
34666 | 34853 | } |
34667 | 34854 | { |
34668 | 34855 | const struct StreamOut *_26 = &(*streams).out; |
@@ -34774,7 +34961,7 @@ | ||
34774 | 34961 | struct stack/*qtypepureid*/ _35; memset(&_35, 0, sizeof(struct stack/*qtypepureid*/)); |
34775 | 34962 | struct stack/*qtypepureid*/ *parids = &_35; |
34776 | 34963 | { |
34777 | - push(0 /* _36 */, &*parids, &_elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6662); | |
34964 | + push(0 /* _36 */, &*parids, &_elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6688); | |
34778 | 34965 | } |
34779 | 34966 | { |
34780 | 34967 | struct ReducedId _38; memset(&_38, 0, sizeof(struct ReducedId)); |
@@ -34788,7 +34975,7 @@ | ||
34788 | 34975 | ReducedId(&_38, &*_39, &_40); |
34789 | 34976 | string$dest(&_40); |
34790 | 34977 | } |
34791 | - push(0 /* _37 */, &*reduced_ids, &_38, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6663); | |
34978 | + push(0 /* _37 */, &*reduced_ids, &_38, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6689); | |
34792 | 34979 | ReducedId$dest(&_38); |
34793 | 34980 | } |
34794 | 34981 | { |
@@ -34809,7 +34996,12 @@ | ||
34809 | 34996 | } |
34810 | 34997 | { |
34811 | 34998 | const struct StreamOut *_19 = &(*streams).err; |
34812 | - PutStr(0 /* _18 */, &*_19, &_constrid); | |
34999 | + struct string _20; memset(&_20, 0, sizeof(struct string)); | |
35000 | + { | |
35001 | + nonempty_to_string(&_20, &_constrid); | |
35002 | + } | |
35003 | + PutStr(0 /* _18 */, &*_19, &_20); | |
35004 | + string$dest(&_20); | |
34813 | 35005 | } |
34814 | 35006 | { |
34815 | 35007 | const struct StreamOut *_20 = &(*streams).err; |
@@ -34817,7 +35009,7 @@ | ||
34817 | 35009 | } |
34818 | 35010 | } |
34819 | 35011 | } |
34820 | - string$dest(&_constrid); | |
35012 | + nonempty_string$dest(&_constrid); | |
34821 | 35013 | } |
34822 | 35014 | break; |
34823 | 35015 | } |
@@ -34970,13 +35162,8 @@ | ||
34970 | 35162 | _IGNORE_(_18); |
34971 | 35163 | } |
34972 | 35164 | { |
34973 | - struct string _18; memset(&_18, 0, sizeof(struct string)); | |
34974 | - { | |
34975 | - const struct nonempty_string *_19 = &(*ti).id; | |
34976 | - nonempty_to_string(&_18, &*_19); | |
34977 | - } | |
34978 | - EmitGenericCallId$(0 /* _17 */, &*streams, &_18, &_previous_case, &*parids); | |
34979 | - string$dest(&_18); | |
35165 | + const struct nonempty_string *_18 = &(*ti).id; | |
35166 | + EmitGenericCallId$(0 /* _17 */, &*streams, &*_18, &_previous_case, &*parids); | |
34980 | 35167 | } |
34981 | 35168 | { |
34982 | 35169 | const struct StreamOut *_19 = &(*streams).out; |
@@ -35067,7 +35254,7 @@ | ||
35067 | 35254 | { |
35068 | 35255 | struct stack/*par*/ _2; memset(&_2, 0, sizeof(struct stack/*par*/)); |
35069 | 35256 | { |
35070 | - stack(&_2, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 6714); | |
35257 | + stack(&_2, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 6740); | |
35071 | 35258 | } |
35072 | 35259 | pscope(&_1, &_2); |
35073 | 35260 | free$(&_2, sizeof(struct par), (void (*)(void *))par$dest); |
@@ -35074,13 +35261,13 @@ | ||
35074 | 35261 | } |
35075 | 35262 | struct stack/*vscope*/ _2; memset(&_2, 0, sizeof(struct stack/*vscope*/)); |
35076 | 35263 | { |
35077 | - stack(&_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 6714); | |
35264 | + stack(&_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 6740); | |
35078 | 35265 | } |
35079 | 35266 | struct vscope _3; memset(&_3, 0, sizeof(struct vscope)); |
35080 | 35267 | { |
35081 | 35268 | struct stack/*var*/ _4; memset(&_4, 0, sizeof(struct stack/*var*/)); |
35082 | 35269 | { |
35083 | - stack(&_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6714); | |
35270 | + stack(&_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6740); | |
35084 | 35271 | } |
35085 | 35272 | vscope(&_3, &_4); |
35086 | 35273 | free$(&_4, sizeof(struct var), (void (*)(void *))var$dest); |
@@ -35186,7 +35373,7 @@ | ||
35186 | 35373 | { |
35187 | 35374 | struct stack/*flavour*/ _8; memset(&_8, 0, sizeof(struct stack/*flavour*/)); |
35188 | 35375 | { |
35189 | - /*UNION*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6745); | |
35376 | + /*UNION*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6771); | |
35190 | 35377 | } |
35191 | 35378 | bool _9; memset(&_9, 0, sizeof(bool)); |
35192 | 35379 | _9 = 0; |
@@ -35196,7 +35383,7 @@ | ||
35196 | 35383 | } |
35197 | 35384 | { |
35198 | 35385 | struct stack/*structdef*/ *_9 = &(*state).structs; |
35199 | - push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6746); | |
35386 | + push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6772); | |
35200 | 35387 | } |
35201 | 35388 | { |
35202 | 35389 | const struct StreamOut *_10 = &(*streams).out; |
@@ -35374,7 +35561,7 @@ | ||
35374 | 35561 | { |
35375 | 35562 | struct stack/*flavour*/ _9; memset(&_9, 0, sizeof(struct stack/*flavour*/)); |
35376 | 35563 | { |
35377 | - /*STRUCT*/ empty(&_9, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6794); | |
35564 | + /*STRUCT*/ empty(&_9, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6820); | |
35378 | 35565 | } |
35379 | 35566 | bool _10; memset(&_10, 0, sizeof(bool)); |
35380 | 35567 | _10 = 0; |
@@ -35384,7 +35571,7 @@ | ||
35384 | 35571 | } |
35385 | 35572 | { |
35386 | 35573 | struct stack/*structdef*/ *_10 = &(*state).structs; |
35387 | - push(0 /* _9 */, &*_10, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6795); | |
35574 | + push(0 /* _9 */, &*_10, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6821); | |
35388 | 35575 | } |
35389 | 35576 | { |
35390 | 35577 | const struct StreamOut *_11 = &(*streams).err; |
@@ -35562,7 +35749,7 @@ | ||
35562 | 35749 | { |
35563 | 35750 | struct stack/*flavour*/ _8; memset(&_8, 0, sizeof(struct stack/*flavour*/)); |
35564 | 35751 | { |
35565 | - /*STRUCT*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6843); | |
35752 | + /*STRUCT*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6869); | |
35566 | 35753 | } |
35567 | 35754 | bool _9; memset(&_9, 0, sizeof(bool)); |
35568 | 35755 | _9 = 0; |
@@ -35572,7 +35759,7 @@ | ||
35572 | 35759 | } |
35573 | 35760 | { |
35574 | 35761 | struct stack/*structdef*/ *_9 = &(*state).structs; |
35575 | - push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6844); | |
35762 | + push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6870); | |
35576 | 35763 | } |
35577 | 35764 | { |
35578 | 35765 | const struct StreamOut *_10 = &(*streams).out; |
@@ -35732,27 +35919,26 @@ | ||
35732 | 35919 | nonempty_string$dest(&_11); |
35733 | 35920 | _IGNORE_(_9); |
35734 | 35921 | } |
35735 | - struct string _parid; memset(&_parid, 0, sizeof(struct string)); | |
35922 | + struct stack/*nonempty_string*/ _parid; memset(&_parid, 0, sizeof(struct stack/*nonempty_string*/)); | |
35736 | 35923 | { |
35737 | - uint64_t _9; memset(&_9, 0, sizeof(uint64_t)); | |
35738 | - _9 = 0; | |
35739 | - /*level*/ ParseId$(&_parid, &*streams, &*txtpos, &_9); | |
35740 | - _IGNORE_(_9); | |
35924 | + struct string _9; memset(&_9, 0, sizeof(struct string)); | |
35925 | + { | |
35926 | + uint64_t _10; memset(&_10, 0, sizeof(uint64_t)); | |
35927 | + _10 = 0; | |
35928 | + /*level*/ ParseId$(&_9, &*streams, &*txtpos, &_10); | |
35929 | + _IGNORE_(_10); | |
35930 | + } | |
35931 | + to_nonempty_string(&_parid, &_9); | |
35932 | + string$dest(&_9); | |
35741 | 35933 | } |
35742 | 35934 | struct fnpars _9; memset(&_9, 0, sizeof(struct fnpars)); |
35743 | - bool _10; | |
35935 | + const struct stack/*nonempty_string*/ *_10 = &(_parid); | |
35936 | + if(!(*_10).size) | |
35744 | 35937 | { |
35745 | - struct string _11; memset(&_11, 0, sizeof(struct string)); | |
35746 | - init$fromliteral(&_11, "", 0); | |
35747 | - strequ(&_10, &_parid, &_11); | |
35748 | - string$dest(&_11); | |
35749 | - } | |
35750 | - if(_10) | |
35751 | - { | |
35752 | 35938 | { |
35753 | 35939 | struct stack/*qtypepure*/ _parids; memset(&_parids, 0, sizeof(struct stack/*qtypepure*/)); |
35754 | 35940 | { |
35755 | - push(0 /* _11 */, &_parids, &_parqt, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6878); | |
35941 | + push(0 /* _11 */, &_parids, &_parqt, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6905); | |
35756 | 35942 | } |
35757 | 35943 | while(1) |
35758 | 35944 | { |
@@ -35799,7 +35985,7 @@ | ||
35799 | 35985 | _IGNORE_(_15); |
35800 | 35986 | } |
35801 | 35987 | { |
35802 | - push(0 /* _15 */, &_parids, &_par, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6884); | |
35988 | + push(0 /* _15 */, &_parids, &_par, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6911); | |
35803 | 35989 | } |
35804 | 35990 | qtypepure$dest(&_par); |
35805 | 35991 | } |
@@ -35830,161 +36016,142 @@ | ||
35830 | 36016 | } |
35831 | 36017 | else |
35832 | 36018 | { |
36019 | + const struct nonempty_string *parid = (*_10).data; | |
35833 | 36020 | { |
35834 | 36021 | { |
35835 | - struct string _11; memset(&_11, 0, sizeof(struct string)); | |
35836 | - string$copy(&_11, &(_parid)); | |
35837 | - struct string *parid = &_11; | |
36022 | + const struct StreamOut *_12 = &(*streams).out; | |
36023 | + struct string _13; memset(&_13, 0, sizeof(struct string)); | |
36024 | + init$fromliteral(&_13, "void ", 5); | |
36025 | + PutStr(0 /* _11 */, &*_12, &_13); | |
36026 | + string$dest(&_13); | |
36027 | + } | |
36028 | + { | |
36029 | + const struct StreamOut *_13 = &(*streams).out; | |
36030 | + struct string _14; memset(&_14, 0, sizeof(struct string)); | |
35838 | 36031 | { |
35839 | - struct nonempty_string _12; memset(&_12, 0, sizeof(struct nonempty_string)); | |
36032 | + nonempty_to_string(&_14, &_id); | |
36033 | + } | |
36034 | + PutStr(0 /* _12 */, &*_13, &_14); | |
36035 | + string$dest(&_14); | |
36036 | + } | |
36037 | + { | |
36038 | + const struct StreamOut *_14 = &(*streams).out; | |
36039 | + uint8_t _15; memset(&_15, 0, sizeof(uint8_t)); | |
36040 | + _15 = 40; | |
36041 | + Put(0 /* _13 */, &*_14, &_15); | |
36042 | + _IGNORE_(_15); | |
36043 | + } | |
36044 | + { | |
36045 | + const struct StreamOut *_15 = &(*streams).out; | |
36046 | + PrTypePure(0 /* _14 */, &*_15, &_retype); | |
36047 | + } | |
36048 | + { | |
36049 | + const struct StreamOut *_16 = &(*streams).out; | |
36050 | + struct string _17; memset(&_17, 0, sizeof(struct string)); | |
36051 | + init$fromliteral(&_17, " *const ", 8); | |
36052 | + PutStr(0 /* _15 */, &*_16, &_17); | |
36053 | + string$dest(&_17); | |
36054 | + } | |
36055 | + { | |
36056 | + const struct StreamOut *_17 = &(*streams).out; | |
36057 | + struct string _18; memset(&_18, 0, sizeof(struct string)); | |
36058 | + { | |
36059 | + struct nonempty_string _19; memset(&_19, 0, sizeof(struct nonempty_string)); | |
35840 | 36060 | { |
35841 | - uint8_t _13; memset(&_13, 0, sizeof(uint8_t)); | |
35842 | - { | |
35843 | - struct stack/*u8*/ *_14 = &(*parid).data; | |
35844 | - pop$(&_13, &*_14, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 6898); | |
35845 | - } | |
35846 | - nonempty_string(&_12, &_13, &*parid); | |
35847 | - _IGNORE_(_13); | |
36061 | + resid(&_19); | |
35848 | 36062 | } |
35849 | - const struct nonempty_string *parid = &_12; | |
36063 | + nonempty_to_string(&_18, &_19); | |
36064 | + nonempty_string$dest(&_19); | |
36065 | + } | |
36066 | + PutStr(0 /* _16 */, &*_17, &_18); | |
36067 | + string$dest(&_18); | |
36068 | + } | |
36069 | + struct stack/*qtypepureid*/ _parids; memset(&_parids, 0, sizeof(struct stack/*qtypepureid*/)); | |
36070 | + { | |
36071 | + struct qtypepureid _18; memset(&_18, 0, sizeof(struct qtypepureid)); | |
36072 | + { | |
36073 | + qtypepureid(&_18, &_parqt, &*parid); | |
36074 | + } | |
36075 | + push(0 /* _17 */, &_parids, &_18, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6932); | |
36076 | + qtypepureid$dest(&_18); | |
36077 | + } | |
36078 | + while(1) | |
36079 | + { | |
36080 | + bool _18; | |
36081 | + { | |
36082 | + uint64_t _19; memset(&_19, 0, sizeof(uint64_t)); | |
36083 | + _19 = 0; | |
36084 | + /*level*/ uint8_t _20; memset(&_20, 0, sizeof(uint8_t)); | |
36085 | + _20 = 44; | |
36086 | + MatchOptional$(&_18, &*streams, &*txtpos, &_19, &_20); | |
36087 | + _IGNORE_(_20); | |
36088 | + _IGNORE_(_19); | |
36089 | + } | |
36090 | + if(!_18) break; | |
36091 | + { | |
36092 | + bool _20; | |
35850 | 36093 | { |
35851 | - const struct StreamOut *_14 = &(*streams).out; | |
35852 | - struct string _15; memset(&_15, 0, sizeof(struct string)); | |
35853 | - init$fromliteral(&_15, "void ", 5); | |
35854 | - PutStr(0 /* _13 */, &*_14, &_15); | |
35855 | - string$dest(&_15); | |
35856 | - } | |
35857 | - { | |
35858 | - const struct StreamOut *_15 = &(*streams).out; | |
35859 | - struct string _16; memset(&_16, 0, sizeof(struct string)); | |
36094 | + uint8_t _21; memset(&_21, 0, sizeof(uint8_t)); | |
35860 | 36095 | { |
35861 | - nonempty_to_string(&_16, &_id); | |
36096 | + uint64_t _22; memset(&_22, 0, sizeof(uint64_t)); | |
36097 | + _22 = 0; | |
36098 | + /*level*/ SkipCommentPeek$(&_21, &*streams, &*txtpos, &_22); | |
36099 | + _IGNORE_(_22); | |
35862 | 36100 | } |
35863 | - PutStr(0 /* _14 */, &*_15, &_16); | |
35864 | - string$dest(&_16); | |
36101 | + isalph(&_20, &_21); | |
36102 | + _IGNORE_(_21); | |
35865 | 36103 | } |
36104 | + if(_20) | |
35866 | 36105 | { |
35867 | - const struct StreamOut *_16 = &(*streams).out; | |
35868 | - uint8_t _17; memset(&_17, 0, sizeof(uint8_t)); | |
35869 | - _17 = 40; | |
35870 | - Put(0 /* _15 */, &*_16, &_17); | |
35871 | - _IGNORE_(_17); | |
35872 | - } | |
35873 | - { | |
35874 | - const struct StreamOut *_17 = &(*streams).out; | |
35875 | - PrTypePure(0 /* _16 */, &*_17, &_retype); | |
35876 | - } | |
35877 | - { | |
35878 | - const struct StreamOut *_18 = &(*streams).out; | |
35879 | - struct string _19; memset(&_19, 0, sizeof(struct string)); | |
35880 | - init$fromliteral(&_19, " *const ", 8); | |
35881 | - PutStr(0 /* _17 */, &*_18, &_19); | |
35882 | - string$dest(&_19); | |
35883 | - } | |
35884 | - { | |
35885 | - const struct StreamOut *_19 = &(*streams).out; | |
35886 | - struct string _20; memset(&_20, 0, sizeof(struct string)); | |
36106 | + struct qtypepureid _par; memset(&_par, 0, sizeof(struct qtypepureid)); | |
35887 | 36107 | { |
35888 | - struct nonempty_string _21; memset(&_21, 0, sizeof(struct nonempty_string)); | |
36108 | + uint64_t _21; memset(&_21, 0, sizeof(uint64_t)); | |
36109 | + _21 = 0; | |
36110 | + /*level*/ struct stack/*structdef*/ *_22 = &(*state).structs; | |
36111 | + struct nonempty_string _23; memset(&_23, 0, sizeof(struct nonempty_string)); | |
35889 | 36112 | { |
35890 | - resid(&_21); | |
36113 | + uint64_t _24; memset(&_24, 0, sizeof(uint64_t)); | |
36114 | + _24 = 0; | |
36115 | + /*level*/ ParseIdNonEmpty$(&_23, &*streams, &*txtpos, &_24); | |
36116 | + _IGNORE_(_24); | |
35891 | 36117 | } |
35892 | - nonempty_to_string(&_20, &_21); | |
35893 | - nonempty_string$dest(&_21); | |
36118 | + ParseQTPI$(&_par, &*streams, &*txtpos, &_21, &*_22, &_23); | |
36119 | + nonempty_string$dest(&_23); | |
36120 | + _IGNORE_(_21); | |
35894 | 36121 | } |
35895 | - PutStr(0 /* _18 */, &*_19, &_20); | |
35896 | - string$dest(&_20); | |
35897 | - } | |
35898 | - struct stack/*qtypepureid*/ _parids; memset(&_parids, 0, sizeof(struct stack/*qtypepureid*/)); | |
35899 | - { | |
35900 | - struct qtypepureid _20; memset(&_20, 0, sizeof(struct qtypepureid)); | |
35901 | 36122 | { |
35902 | - qtypepureid(&_20, &_parqt, &*parid); | |
36123 | + push(0 /* _21 */, &_parids, &_par, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6939); | |
35903 | 36124 | } |
35904 | - push(0 /* _19 */, &_parids, &_20, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6908); | |
35905 | - qtypepureid$dest(&_20); | |
36125 | + qtypepureid$dest(&_par); | |
35906 | 36126 | } |
35907 | - while(1) | |
36127 | + else | |
35908 | 36128 | { |
35909 | - bool _20; | |
35910 | 36129 | { |
35911 | - uint64_t _21; memset(&_21, 0, sizeof(uint64_t)); | |
35912 | - _21 = 0; | |
35913 | - /*level*/ uint8_t _22; memset(&_22, 0, sizeof(uint8_t)); | |
35914 | - _22 = 44; | |
35915 | - MatchOptional$(&_20, &*streams, &*txtpos, &_21, &_22); | |
35916 | - _IGNORE_(_22); | |
35917 | - _IGNORE_(_21); | |
36130 | + const struct StreamOut *_22 = &(*streams).err; | |
36131 | + struct string _23; memset(&_23, 0, sizeof(struct string)); | |
36132 | + init$fromliteral(&_23, "MISSING PARAMETER", 17); | |
36133 | + PutStr(0 /* _21 */, &*_22, &_23); | |
36134 | + string$dest(&_23); | |
35918 | 36135 | } |
35919 | - if(!_20) break; | |
35920 | 36136 | { |
35921 | - bool _22; | |
35922 | - { | |
35923 | - uint8_t _23; memset(&_23, 0, sizeof(uint8_t)); | |
35924 | - { | |
35925 | - uint64_t _24; memset(&_24, 0, sizeof(uint64_t)); | |
35926 | - _24 = 0; | |
35927 | - /*level*/ SkipCommentPeek$(&_23, &*streams, &*txtpos, &_24); | |
35928 | - _IGNORE_(_24); | |
35929 | - } | |
35930 | - isalph(&_22, &_23); | |
35931 | - _IGNORE_(_23); | |
35932 | - } | |
35933 | - if(_22) | |
35934 | - { | |
35935 | - struct qtypepureid _par; memset(&_par, 0, sizeof(struct qtypepureid)); | |
35936 | - { | |
35937 | - uint64_t _23; memset(&_23, 0, sizeof(uint64_t)); | |
35938 | - _23 = 0; | |
35939 | - /*level*/ struct stack/*structdef*/ *_24 = &(*state).structs; | |
35940 | - struct nonempty_string _25; memset(&_25, 0, sizeof(struct nonempty_string)); | |
35941 | - { | |
35942 | - uint64_t _26; memset(&_26, 0, sizeof(uint64_t)); | |
35943 | - _26 = 0; | |
35944 | - /*level*/ ParseIdNonEmpty$(&_25, &*streams, &*txtpos, &_26); | |
35945 | - _IGNORE_(_26); | |
35946 | - } | |
35947 | - ParseQTPI$(&_par, &*streams, &*txtpos, &_23, &*_24, &_25); | |
35948 | - nonempty_string$dest(&_25); | |
35949 | - _IGNORE_(_23); | |
35950 | - } | |
35951 | - { | |
35952 | - push(0 /* _23 */, &_parids, &_par, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6915); | |
35953 | - } | |
35954 | - qtypepureid$dest(&_par); | |
35955 | - } | |
35956 | - else | |
35957 | - { | |
35958 | - { | |
35959 | - const struct StreamOut *_24 = &(*streams).err; | |
35960 | - struct string _25; memset(&_25, 0, sizeof(struct string)); | |
35961 | - init$fromliteral(&_25, "MISSING PARAMETER", 17); | |
35962 | - PutStr(0 /* _23 */, &*_24, &_25); | |
35963 | - string$dest(&_25); | |
35964 | - } | |
35965 | - { | |
35966 | - const struct StreamOut *_25 = &(*streams).err; | |
35967 | - Fail$(0 /* _24 */, &*_25, &*txtpos); | |
35968 | - } | |
35969 | - } | |
36137 | + const struct StreamOut *_23 = &(*streams).err; | |
36138 | + Fail$(0 /* _22 */, &*_23, &*txtpos); | |
35970 | 36139 | } |
35971 | 36140 | } |
35972 | - struct fnpars _21; memset(&_21, 0, sizeof(struct fnpars)); | |
35973 | - { | |
35974 | - fnpartypeids(&_21, &_parids); | |
35975 | - } | |
35976 | - fnpars$copy(&_9, &_21); | |
35977 | - fnpars$dest(&_21); | |
35978 | - free$(&_parids, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
35979 | - nonempty_string$dest(&_12); | |
35980 | - } | |
35981 | - string$dest(&_11); | |
35982 | 36141 | } |
36142 | + } | |
36143 | + struct fnpars _19; memset(&_19, 0, sizeof(struct fnpars)); | |
36144 | + { | |
36145 | + fnpartypeids(&_19, &_parids); | |
36146 | + } | |
36147 | + fnpars$copy(&_9, &_19); | |
36148 | + fnpars$dest(&_19); | |
36149 | + free$(&_parids, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); | |
35983 | 36150 | } |
35984 | 36151 | } |
35985 | 36152 | fnpars$copy(&_7, &_9); |
35986 | 36153 | fnpars$dest(&_9); |
35987 | - string$dest(&_parid); | |
36154 | + free$(&_parid, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
35988 | 36155 | qtypepure$dest(&_parqt); |
35989 | 36156 | } |
35990 | 36157 | } |
@@ -36043,7 +36210,7 @@ | ||
36043 | 36210 | { |
36044 | 36211 | struct stack/*qtypepureid*/ _16; memset(&_16, 0, sizeof(struct stack/*qtypepureid*/)); |
36045 | 36212 | { |
36046 | - stack(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6937); | |
36213 | + stack(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6961); | |
36047 | 36214 | } |
36048 | 36215 | fnpartypeids(&_15, &_16); |
36049 | 36216 | free$(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -36154,7 +36321,7 @@ | ||
36154 | 36321 | { |
36155 | 36322 | struct stack/*qtypepureid*/ _14; memset(&_14, 0, sizeof(struct stack/*qtypepureid*/)); |
36156 | 36323 | { |
36157 | - stack(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6953); | |
36324 | + stack(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6977); | |
36158 | 36325 | } |
36159 | 36326 | fnpartypeids(&_13, &_14); |
36160 | 36327 | free$(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
@@ -36198,7 +36365,7 @@ | ||
36198 | 36365 | qtype(&_14, &*_15, &_16); |
36199 | 36366 | type$dest(&_16); |
36200 | 36367 | } |
36201 | - push(0 /* _13 */, &_pars, &_14, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 6965); | |
36368 | + push(0 /* _13 */, &_pars, &_14, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 6989); | |
36202 | 36369 | qtype$dest(&_14); |
36203 | 36370 | } |
36204 | 36371 | } |
@@ -36205,12 +36372,7 @@ | ||
36205 | 36372 | struct stack/*def*/ _cur; memset(&_cur, 0, sizeof(struct stack/*def*/)); |
36206 | 36373 | { |
36207 | 36374 | struct stack/*def*/ *_13 = &(*state).defs; |
36208 | - struct string _14; memset(&_14, 0, sizeof(struct string)); | |
36209 | - { | |
36210 | - nonempty_to_string(&_14, &_id); | |
36211 | - } | |
36212 | - findFnDef(&_cur, &*_13, &_14); | |
36213 | - string$dest(&_14); | |
36375 | + findFnDef(&_cur, &*_13, &_id); | |
36214 | 36376 | } |
36215 | 36377 | const struct stack/*def*/ *_13 = &(_cur); |
36216 | 36378 | if(!(*_13).size) |
@@ -36502,7 +36664,7 @@ | ||
36502 | 36664 | { |
36503 | 36665 | struct stack/*par*/ _15; memset(&_15, 0, sizeof(struct stack/*par*/)); |
36504 | 36666 | { |
36505 | - stack(&_15, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 7026); | |
36667 | + stack(&_15, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 7050); | |
36506 | 36668 | } |
36507 | 36669 | pscope(&_14, &_15); |
36508 | 36670 | free$(&_15, sizeof(struct par), (void (*)(void *))par$dest); |
@@ -36509,13 +36671,13 @@ | ||
36509 | 36671 | } |
36510 | 36672 | struct stack/*vscope*/ _15; memset(&_15, 0, sizeof(struct stack/*vscope*/)); |
36511 | 36673 | { |
36512 | - stack(&_15, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 7026); | |
36674 | + stack(&_15, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 7050); | |
36513 | 36675 | } |
36514 | 36676 | struct vscope _16; memset(&_16, 0, sizeof(struct vscope)); |
36515 | 36677 | { |
36516 | 36678 | struct stack/*var*/ _17; memset(&_17, 0, sizeof(struct stack/*var*/)); |
36517 | 36679 | { |
36518 | - stack(&_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7026); | |
36680 | + stack(&_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7050); | |
36519 | 36681 | } |
36520 | 36682 | vscope(&_16, &_17); |
36521 | 36683 | free$(&_17, sizeof(struct var), (void (*)(void *))var$dest); |
@@ -36527,13 +36689,8 @@ | ||
36527 | 36689 | } |
36528 | 36690 | struct scopepath *sp = &_13; |
36529 | 36691 | { |
36530 | - struct string _15; memset(&_15, 0, sizeof(struct string)); | |
36531 | - { | |
36532 | - nonempty_to_string(&_15, &_id); | |
36533 | - } | |
36534 | - const struct stack/*qtypepure*/ *_16 = &(*ps).qts; | |
36535 | - EmitSwitchHead$(0 /* _14 */, &*streams, &_retype, &_15, &_casenr, &*_16, &*sp); | |
36536 | - string$dest(&_15); | |
36692 | + const struct stack/*qtypepure*/ *_15 = &(*ps).qts; | |
36693 | + EmitSwitchHead$(0 /* _14 */, &*streams, &_retype, &_id, &_casenr, &*_15, &*sp); | |
36537 | 36694 | } |
36538 | 36695 | { |
36539 | 36696 | const struct StreamOut *_16 = &(*streams).out; |
@@ -36552,7 +36709,7 @@ | ||
36552 | 36709 | bool _first; memset(&_first, 0, sizeof(bool)); |
36553 | 36710 | _first = 1; |
36554 | 36711 | struct stack/*ReducedId*/ _reduced_ids; memset(&_reduced_ids, 0, sizeof(struct stack/*ReducedId*/)); |
36555 | - struct stack/*string*/ _usedids; memset(&_usedids, 0, sizeof(struct stack/*string*/)); | |
36712 | + struct stack/*nonempty_string*/ _usedids; memset(&_usedids, 0, sizeof(struct stack/*nonempty_string*/)); | |
36556 | 36713 | uint64_t _tmpnr; memset(&_tmpnr, 0, sizeof(uint64_t)); |
36557 | 36714 | { |
36558 | 36715 | size(&_tmpnr, &_parids); |
@@ -36632,8 +36789,7 @@ | ||
36632 | 36789 | struct requires_totality _totality; memset(&_totality, 0, sizeof(struct requires_totality)); |
36633 | 36790 | bool _24; |
36634 | 36791 | { |
36635 | - struct string *_25 = &(_id).rest; | |
36636 | - idpart(&_24, &*_25); | |
36792 | + idpart(&_24, &_id); | |
36637 | 36793 | } |
36638 | 36794 | if(_24) |
36639 | 36795 | { |
@@ -36667,12 +36823,7 @@ | ||
36667 | 36823 | qtypepure$dest(&_26); |
36668 | 36824 | } |
36669 | 36825 | { |
36670 | - struct string _27; memset(&_27, 0, sizeof(struct string)); | |
36671 | - { | |
36672 | - nonempty_to_string(&_27, &_id); | |
36673 | - } | |
36674 | - ParseExpr2$(0 /* _26 */, &*streams, &*txtpos, &*state, &_level, &*sp, &*tmpnr, &_store, &_totality, &_action, &_27, &_reduced_ids); | |
36675 | - string$dest(&_27); | |
36826 | + ParseExpr2$(0 /* _26 */, &*streams, &*txtpos, &*state, &_level, &*sp, &*tmpnr, &_store, &_totality, &_action, &_id, &_reduced_ids); | |
36676 | 36827 | } |
36677 | 36828 | qtypepureid$dest(&_store); |
36678 | 36829 | } |
@@ -36725,7 +36876,7 @@ | ||
36725 | 36876 | _more = 0; |
36726 | 36877 | } |
36727 | 36878 | _IGNORE_(_tmpnr); |
36728 | - free$(&_usedids, sizeof(struct string), (void (*)(void *))string$dest); | |
36879 | + free$(&_usedids, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest); | |
36729 | 36880 | free$(&_reduced_ids, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); |
36730 | 36881 | _IGNORE_(_first); |
36731 | 36882 | scopepath$dest(&_13); |
@@ -36790,20 +36941,15 @@ | ||
36790 | 36941 | _IGNORE_(_20); |
36791 | 36942 | } |
36792 | 36943 | { |
36793 | - struct string _20; memset(&_20, 0, sizeof(struct string)); | |
36944 | + uint64_t _20; memset(&_20, 0, sizeof(uint64_t)); | |
36794 | 36945 | { |
36795 | - nonempty_to_string(&_20, &_id); | |
36946 | + uint64_t _21; memset(&_21, 0, sizeof(uint64_t)); | |
36947 | + _21 = 1; | |
36948 | + _20 = _casenr - _21; | |
36949 | + _IGNORE_(_21); | |
36796 | 36950 | } |
36797 | - uint64_t _21; memset(&_21, 0, sizeof(uint64_t)); | |
36798 | - { | |
36799 | - uint64_t _22; memset(&_22, 0, sizeof(uint64_t)); | |
36800 | - _22 = 1; | |
36801 | - _21 = _casenr - _22; | |
36802 | - _IGNORE_(_22); | |
36803 | - } | |
36804 | - EmitGenericCallId$(0 /* _19 */, &*streams, &_20, &_21, &_parids); | |
36805 | - _IGNORE_(_21); | |
36806 | - string$dest(&_20); | |
36951 | + EmitGenericCallId$(0 /* _19 */, &*streams, &_id, &_20, &_parids); | |
36952 | + _IGNORE_(_20); | |
36807 | 36953 | } |
36808 | 36954 | { |
36809 | 36955 | const struct StreamOut *_21 = &(*streams).out; |
@@ -36882,12 +37028,7 @@ | ||
36882 | 37028 | struct stack/*def*/ _cur; memset(&_cur, 0, sizeof(struct stack/*def*/)); |
36883 | 37029 | { |
36884 | 37030 | struct stack/*def*/ *_14 = &(*state).defs; |
36885 | - struct string _15; memset(&_15, 0, sizeof(struct string)); | |
36886 | - { | |
36887 | - nonempty_to_string(&_15, &_id); | |
36888 | - } | |
36889 | - findFnDef(&_cur, &*_14, &_15); | |
36890 | - string$dest(&_15); | |
37031 | + findFnDef(&_cur, &*_14, &_id); | |
36891 | 37032 | } |
36892 | 37033 | const struct stack/*def*/ *_14 = &(_cur); |
36893 | 37034 | if(!(*_14).size) |
@@ -37140,8 +37281,7 @@ | ||
37140 | 37281 | { |
37141 | 37282 | bool _21; memset(&_21, 0, sizeof(bool)); |
37142 | 37283 | { |
37143 | - struct string *_22 = &(_id).rest; | |
37144 | - idpart(&_21, &*_22); | |
37284 | + idpart(&_21, &_id); | |
37145 | 37285 | } |
37146 | 37286 | not(&_20, &_21); |
37147 | 37287 | _IGNORE_(_21); |
@@ -37237,8 +37377,7 @@ | ||
37237 | 37377 | { |
37238 | 37378 | bool _23; |
37239 | 37379 | { |
37240 | - struct string *_24 = &(_id).rest; | |
37241 | - idpart(&_23, &*_24); | |
37380 | + idpart(&_23, &_id); | |
37242 | 37381 | } |
37243 | 37382 | if(_23) |
37244 | 37383 | { |
@@ -37501,7 +37640,7 @@ | ||
37501 | 37640 | varinit(&_56, &_57); |
37502 | 37641 | qtypepureid$dest(&_57); |
37503 | 37642 | } |
37504 | - push(0 /* _54 */, &*_55, &_56, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7211); | |
37643 | + push(0 /* _54 */, &*_55, &_56, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7235); | |
37505 | 37644 | var$dest(&_56); |
37506 | 37645 | } |
37507 | 37646 | { |
@@ -37591,7 +37730,7 @@ | ||
37591 | 37730 | varinit(&_67, &_68); |
37592 | 37731 | qtypepureid$dest(&_68); |
37593 | 37732 | } |
37594 | - push(0 /* _65 */, &*_66, &_67, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7219); | |
37733 | + push(0 /* _65 */, &*_66, &_67, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7243); | |
37595 | 37734 | var$dest(&_67); |
37596 | 37735 | } |
37597 | 37736 | { |
@@ -37658,17 +37797,12 @@ | ||
37658 | 37797 | qtypepure$dest(&_28); |
37659 | 37798 | } |
37660 | 37799 | { |
37661 | - struct string _29; memset(&_29, 0, sizeof(struct string)); | |
37800 | + struct stack/*ReducedId*/ _29; memset(&_29, 0, sizeof(struct stack/*ReducedId*/)); | |
37662 | 37801 | { |
37663 | - nonempty_to_string(&_29, &_id); | |
37802 | + stack(&_29, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7251); | |
37664 | 37803 | } |
37665 | - struct stack/*ReducedId*/ _30; memset(&_30, 0, sizeof(struct stack/*ReducedId*/)); | |
37666 | - { | |
37667 | - stack(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7227); | |
37668 | - } | |
37669 | - ParseExpr2$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_store, &_totality, &_action, &_29, &_30); | |
37670 | - free$(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
37671 | - string$dest(&_29); | |
37804 | + ParseExpr2$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_store, &_totality, &_action, &_id, &_29); | |
37805 | + free$(&_29, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
37672 | 37806 | } |
37673 | 37807 | { |
37674 | 37808 | uint8_t _30; memset(&_30, 0, sizeof(uint8_t)); |
@@ -37707,20 +37841,15 @@ | ||
37707 | 37841 | qtypepureid(&_30, &_31, &*_32); |
37708 | 37842 | qtypepure$dest(&_31); |
37709 | 37843 | } |
37710 | - solid(&_29, &_30, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 7233); | |
37844 | + solid(&_29, &_30, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 7257); | |
37711 | 37845 | qtypepureid$dest(&_30); |
37712 | 37846 | } |
37713 | - struct string _30; memset(&_30, 0, sizeof(struct string)); | |
37847 | + struct stack/*ReducedId*/ _30; memset(&_30, 0, sizeof(struct stack/*ReducedId*/)); | |
37714 | 37848 | { |
37715 | - nonempty_to_string(&_30, &_id); | |
37849 | + stack(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7257); | |
37716 | 37850 | } |
37717 | - struct stack/*ReducedId*/ _31; memset(&_31, 0, sizeof(struct stack/*ReducedId*/)); | |
37718 | - { | |
37719 | - stack(&_31, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7233); | |
37720 | - } | |
37721 | - ParseBlock$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_29, &_totality, &_action, &_30, &_31); | |
37722 | - free$(&_31, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
37723 | - string$dest(&_30); | |
37851 | + ParseBlock$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_29, &_totality, &_action, &_id, &_30); | |
37852 | + free$(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest); | |
37724 | 37853 | free$(&_29, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest); |
37725 | 37854 | } |
37726 | 37855 | var$dest(&_zero); |
@@ -38069,11 +38198,11 @@ | ||
38069 | 38198 | { |
38070 | 38199 | struct stack/*def*/ _1; memset(&_1, 0, sizeof(struct stack/*def*/)); |
38071 | 38200 | { |
38072 | - stack(&_1, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 7324); | |
38201 | + stack(&_1, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 7348); | |
38073 | 38202 | } |
38074 | 38203 | struct stack/*structdef*/ _2; memset(&_2, 0, sizeof(struct stack/*structdef*/)); |
38075 | 38204 | { |
38076 | - stack(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 7324); | |
38205 | + stack(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 7348); | |
38077 | 38206 | } |
38078 | 38207 | state(&_state, &_1, &_2); |
38079 | 38208 | free$(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest); |
@@ -38578,7 +38707,7 @@ | ||
38578 | 38707 | nonempty_string$dest(&_5); |
38579 | 38708 | type_pure$dest(&_4); |
38580 | 38709 | } |
38581 | - push(0 /* _2 */, &_elems, &_3, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7792); | |
38710 | + push(0 /* _2 */, &_elems, &_3, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7816); | |
38582 | 38711 | typepureid$dest(&_3); |
38583 | 38712 | } |
38584 | 38713 | { |
@@ -38623,7 +38752,7 @@ | ||
38623 | 38752 | } |
38624 | 38753 | struct stack/*typepureid*/ _7; memset(&_7, 0, sizeof(struct stack/*typepureid*/)); |
38625 | 38754 | { |
38626 | - stack(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7797); | |
38755 | + stack(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7821); | |
38627 | 38756 | } |
38628 | 38757 | constr(&_4, &_5, &_6, &_7); |
38629 | 38758 | free$(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
@@ -38630,7 +38759,7 @@ | ||
38630 | 38759 | nonempty_string$dest(&_6); |
38631 | 38760 | type_pure$dest(&_5); |
38632 | 38761 | } |
38633 | - push(0 /* _3 */, &_constrs, &_4, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7797); | |
38762 | + push(0 /* _3 */, &_constrs, &_4, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7821); | |
38634 | 38763 | constr$dest(&_4); |
38635 | 38764 | } |
38636 | 38765 | { |
@@ -38652,7 +38781,7 @@ | ||
38652 | 38781 | } |
38653 | 38782 | struct stack/*typepureid*/ _8; memset(&_8, 0, sizeof(struct stack/*typepureid*/)); |
38654 | 38783 | { |
38655 | - stack(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7798); | |
38784 | + stack(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7822); | |
38656 | 38785 | } |
38657 | 38786 | constr(&_5, &_6, &_7, &_8); |
38658 | 38787 | free$(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
@@ -38659,7 +38788,7 @@ | ||
38659 | 38788 | nonempty_string$dest(&_7); |
38660 | 38789 | type_pure$dest(&_6); |
38661 | 38790 | } |
38662 | - push(0 /* _4 */, &_constrs, &_5, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7798); | |
38791 | + push(0 /* _4 */, &_constrs, &_5, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7822); | |
38663 | 38792 | constr$dest(&_5); |
38664 | 38793 | } |
38665 | 38794 | { |
@@ -38681,7 +38810,7 @@ | ||
38681 | 38810 | } |
38682 | 38811 | struct stack/*typepureid*/ _9; memset(&_9, 0, sizeof(struct stack/*typepureid*/)); |
38683 | 38812 | { |
38684 | - stack(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7799); | |
38813 | + stack(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7823); | |
38685 | 38814 | } |
38686 | 38815 | constr(&_6, &_7, &_8, &_9); |
38687 | 38816 | free$(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
@@ -38688,7 +38817,7 @@ | ||
38688 | 38817 | nonempty_string$dest(&_8); |
38689 | 38818 | type_pure$dest(&_7); |
38690 | 38819 | } |
38691 | - push(0 /* _5 */, &_constrs, &_6, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7799); | |
38820 | + push(0 /* _5 */, &_constrs, &_6, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7823); | |
38692 | 38821 | constr$dest(&_6); |
38693 | 38822 | } |
38694 | 38823 | { |
@@ -43708,7 +43837,7 @@ | ||
43708 | 43837 | nonempty_string$dest(&_66); |
43709 | 43838 | type_pure$dest(&_65); |
43710 | 43839 | } |
43711 | - push(0 /* _63 */, &_elems, &_64, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8589); | |
43840 | + push(0 /* _63 */, &_elems, &_64, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8613); | |
43712 | 43841 | typepureid$dest(&_64); |
43713 | 43842 | } |
43714 | 43843 | { |
@@ -43732,7 +43861,7 @@ | ||
43732 | 43861 | nonempty_string$dest(&_67); |
43733 | 43862 | type_pure$dest(&_66); |
43734 | 43863 | } |
43735 | - push(0 /* _64 */, &_elems, &_65, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8590); | |
43864 | + push(0 /* _64 */, &_elems, &_65, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8614); | |
43736 | 43865 | typepureid$dest(&_65); |
43737 | 43866 | } |
43738 | 43867 | { |
@@ -43756,7 +43885,7 @@ | ||
43756 | 43885 | nonempty_string$dest(&_68); |
43757 | 43886 | type_pure$dest(&_67); |
43758 | 43887 | } |
43759 | - push(0 /* _65 */, &_elems, &_66, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8591); | |
43888 | + push(0 /* _65 */, &_elems, &_66, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8615); | |
43760 | 43889 | typepureid$dest(&_66); |
43761 | 43890 | } |
43762 | 43891 | { |
@@ -43781,7 +43910,7 @@ | ||
43781 | 43910 | nonempty_string$dest(&_70); |
43782 | 43911 | flavour$dest(&_69); |
43783 | 43912 | } |
43784 | - push(0 /* _66 */, &*_67, &_68, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 8592); | |
43913 | + push(0 /* _66 */, &*_67, &_68, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 8616); | |
43785 | 43914 | structdef$dest(&_68); |
43786 | 43915 | } |
43787 | 43916 | free$(&_elems, sizeof(struct typepureid), (void (*)(void *))typepureid$dest); |
@@ -59,6 +59,16 @@ | ||
59 | 59 | string rest; |
60 | 60 | } |
61 | 61 | |
62 | +opt<nonempty_string> to_nonempty_string(string s) | |
63 | +{ | |
64 | + let mut string s = s; | |
65 | + let opt<u8> t = pop_opt<u8>(s.data); | |
66 | + result | |
67 | + switch t | |
68 | + case empty: empty<nonempty_string>() | |
69 | + case solid: solid<nonempty_string>(nonempty_string(t, s)) | |
70 | +} | |
71 | + | |
62 | 72 | string nonempty_to_string(nonempty_string name) |
63 | 73 | { |
64 | 74 | let mut string tmp = name.rest; |
@@ -318,12 +328,12 @@ | ||
318 | 328 | u8 strtop$(string s) = if gtr<u64>(size<u8>(s.data), 0) then top_get$<u8>(s.data) else '?'; |
319 | 329 | |
320 | 330 | // delete first char |
321 | -string predel$(string s) | |
322 | -{ | |
323 | - let mut string t = s; | |
324 | - let _ = pop$<u8>(t.data); | |
325 | - result t | |
326 | -} | |
331 | +//string predel$(string s) | |
332 | +//{ | |
333 | +// let mut string t = s; | |
334 | +// let _ = pop$<u8>(t.data); | |
335 | +// result t | |
336 | +//} | |
327 | 337 | |
328 | 338 | // look for trailing $ |
329 | 339 | bool idpartinternal(stack<u8> id, bool previous) = |
@@ -333,8 +343,8 @@ | ||
333 | 343 | previous; |
334 | 344 | |
335 | 345 | // look for trailing $ |
336 | -bool idpart(string id) = | |
337 | - idpartinternal(id.data, 0); | |
346 | +bool idpart(nonempty_string id) = | |
347 | + idpartinternal(id.rest.data, 0); | |
338 | 348 | |
339 | 349 | enum proof_of_totality { totality_unverified; totality_verified; } |
340 | 350 |
@@ -373,14 +383,14 @@ | ||
373 | 383 | ParseNrInternal$(in, err, txtpos, 0); |
374 | 384 | |
375 | 385 | // insert byte at beginning of id |
376 | -string preapp(u8 top, string id) | |
377 | -{ | |
378 | - let mut string new = id; | |
379 | - push<u8>(new.data, top); | |
386 | +//string preapp(u8 top, string id) | |
387 | +//{ | |
388 | +// let mut string new = id; | |
389 | +// push<u8>(new.data, top); | |
390 | +// | |
391 | +// result new | |
392 | +//} | |
380 | 393 | |
381 | - result new | |
382 | -} | |
383 | - | |
384 | 394 | // parse rest of id, allow digits$ |
385 | 395 | string ParseIE$(StreamIn in, mut linecol txtpos) = |
386 | 396 | if |
@@ -1027,41 +1037,41 @@ | ||
1027 | 1037 | DATA { stack<constr> constrs; }; |
1028 | 1038 | } |
1029 | 1039 | |
1030 | -opt<u64> getDataConstrIdx(stack<constr> constrs, string id) = | |
1031 | - reduce constrs to rest constr: | |
1032 | - ( | |
1033 | - if strequ(nonempty_to_string(constr.id), id) then | |
1034 | - solid<u64>(size<constr>(rest)) | |
1035 | - else | |
1036 | - getDataConstrIdx(rest, id) | |
1037 | - ) | |
1038 | - term : empty<u64>(); | |
1040 | +//opt<u64> getDataConstrIdx(stack<constr> constrs, string id) = | |
1041 | +// reduce constrs to rest constr: | |
1042 | +// ( | |
1043 | +// if strequ(nonempty_to_string(constr.id), id) then | |
1044 | +// solid<u64>(size<constr>(rest)) | |
1045 | +// else | |
1046 | +// getDataConstrIdx(rest, id) | |
1047 | +// ) | |
1048 | +// term : empty<u64>(); | |
1039 | 1049 | |
1040 | -opt<constr> getDataConstr(stack<constr> constrs, string id) = | |
1041 | - reduce constrs to rest constr: | |
1042 | - ( | |
1043 | - if strequ(nonempty_to_string(constr.id), id) then | |
1044 | - solid<constr>(constr) | |
1045 | - else | |
1046 | - getDataConstr(rest, id) | |
1047 | - ) | |
1048 | - term : empty<constr>(); | |
1050 | +//opt<constr> getDataConstr(stack<constr> constrs, string id) = | |
1051 | +// reduce constrs to rest constr: | |
1052 | +// ( | |
1053 | +// if strequ(nonempty_to_string(constr.id), id) then | |
1054 | +// solid<constr>(constr) | |
1055 | +// else | |
1056 | +// getDataConstr(rest, id) | |
1057 | +// ) | |
1058 | +// term : empty<constr>(); | |
1049 | 1059 | |
1050 | -struct constrwithidx | |
1051 | -{ | |
1052 | - constr constr; | |
1053 | - u64 idx; | |
1054 | -} | |
1060 | +//struct constrwithidx | |
1061 | +//{ | |
1062 | +// constr constr; | |
1063 | +// u64 idx; | |
1064 | +//} | |
1055 | 1065 | |
1056 | -opt<constrwithidx> getDataConstrWithIdx(stack<constr> constrs, string id) = | |
1057 | - reduce constrs to rest constr: | |
1058 | - ( | |
1059 | - if strequ(nonempty_to_string(constr.id), id) then | |
1060 | - solid<constrwithidx>(constrwithidx(constr, size<constr>(rest))) | |
1061 | - else | |
1062 | - getDataConstrWithIdx(rest, id) | |
1063 | - ) | |
1064 | - term : empty<constrwithidx>(); | |
1066 | +//opt<constrwithidx> getDataConstrWithIdx(stack<constr> constrs, string id) = | |
1067 | +// reduce constrs to rest constr: | |
1068 | +// ( | |
1069 | +// if strequ(nonempty_to_string(constr.id), id) then | |
1070 | +// solid<constrwithidx>(constrwithidx(constr, size<constr>(rest))) | |
1071 | +// else | |
1072 | +// getDataConstrWithIdx(rest, id) | |
1073 | +// ) | |
1074 | +// term : empty<constrwithidx>(); | |
1065 | 1075 | |
1066 | 1076 | struct structdef |
1067 | 1077 | { |
@@ -2107,10 +2117,10 @@ | ||
2107 | 2117 | |
2108 | 2118 | nonempty_string resid() = nonempty_string('_', "0"); |
2109 | 2119 | |
2110 | -bool istmp$(string id) = and(equ<u8>('_', strtop$(id)), isdigi(strtop$(predel$(id)))); | |
2120 | +bool istmp$(nonempty_string id) = and(equ<u8>('_', id.top), isdigi(strtop$(id.rest))); | |
2111 | 2121 | |
2112 | 2122 | // report error if types don't allow to = from |
2113 | -unit ChkPar$(StreamOut err, linecol txtpos, qtypepure par, nonempty_string id, qtypepureid arg) | |
2123 | +unit ChkPar$(StreamOut err, linecol txtpos, qtypepure par, nonempty_string ID, qtypepureid arg) | |
2114 | 2124 | { |
2115 | 2125 | // Ignore constness for assignment to temporary (e.g. _1, _2, ...) |
2116 | 2126 | // Ignore constness for assignment to result (empty string "") |
@@ -2119,13 +2129,13 @@ | ||
2119 | 2129 | // since we use REFERENCES that would cause loss of constness! |
2120 | 2130 | // (evaluate if it's OK for temporaries - otherwise generate all const?) |
2121 | 2131 | // Results on the other hand MUST be mutable always to be useful. |
2122 | - if not(if or(istmp$(nonempty_to_string(id)), strequ(preapp('*', nonempty_to_string(resid())), nonempty_to_string(id))) then typepureequ(par.type, arg.qt.type) else chkpar(par, arg.qt)) then | |
2132 | + if not(if or(istmp$(ID), strequ(nonempty_to_string(nonempty_string('*', nonempty_to_string(resid()))), nonempty_to_string(ID))) then typepureequ(par.type, arg.qt.type) else chkpar(par, arg.qt)) then | |
2123 | 2133 | { |
2124 | 2134 | PutStr(err, "cannot assign parameter "); |
2125 | 2135 | EPrQTP(err, par); |
2126 | 2136 | |
2127 | 2137 | PutStr(err, " "); |
2128 | - PutStr(err, nonempty_to_string(id)); | |
2138 | + PutStr(err, nonempty_to_string(ID)); | |
2129 | 2139 | |
2130 | 2140 | PutStr(err, " from argument "); |
2131 | 2141 | EPrQTPI(err, arg); |
@@ -2291,10 +2301,10 @@ | ||
2291 | 2301 | // mark variable hidden |
2292 | 2302 | var varhide(nonempty_string id, linecol txtpos) = var(id, xar_hidden(txtpos)); |
2293 | 2303 | |
2294 | -bool find_var_report_unused_and_mark_used(stack<mut var> vscope, string id) = | |
2304 | +bool find_var_report_unused_and_mark_used(stack<mut var> vscope, nonempty_string id) = | |
2295 | 2305 | reduce vscope to rest found: |
2296 | 2306 | //if is_equ(cmp<nonempty_string>(found.qti.id, id)) then |
2297 | - if strequ(nonempty_to_string(found.id), id) then | |
2307 | + if strequ(nonempty_to_string(found.id), nonempty_to_string(id)) then | |
2298 | 2308 | { |
2299 | 2309 | let mut xar vi = found.vi; |
2300 | 2310 | result |
@@ -2316,10 +2326,10 @@ | ||
2316 | 2326 | find_var_report_unused_and_mark_used(rest, id) |
2317 | 2327 | term: 0; // NOTE: if variable does not exist it can't be unused! |
2318 | 2328 | |
2319 | -opt<qtypepureid> FindParAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut par> pscope, string id) = | |
2329 | +opt<qtypepureid> FindParAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut par> pscope, nonempty_string id) = | |
2320 | 2330 | reduce pscope to rest found: |
2321 | 2331 | ( |
2322 | - if strequ(nonempty_to_string(found.id), preapp('*', id)) then | |
2332 | + if is_equ(cmp<nonempty_string>(found.id, nonempty_string('*', nonempty_to_string(id)))) then | |
2323 | 2333 | { |
2324 | 2334 | let mut xar pi = found.pi; |
2325 | 2335 |
@@ -2328,7 +2338,7 @@ | ||
2328 | 2338 | case xar_hidden: |
2329 | 2339 | { |
2330 | 2340 | PutStr(err, "Parameter "); |
2331 | - PutStr(err, id); | |
2341 | + PutStr(err, nonempty_to_string(id)); | |
2332 | 2342 | PutStr(err, " is inaccessible from "); |
2333 | 2343 | PrLoc(err, pi.txtpos); |
2334 | 2344 | PutStr(err, ", accessed here"); |
@@ -2347,10 +2357,10 @@ | ||
2347 | 2357 | ) |
2348 | 2358 | term: empty<qtypepureid>(); |
2349 | 2359 | |
2350 | -opt<qtypepureid> FindVarAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut var> vscope, string id) = | |
2360 | +opt<qtypepureid> FindVarAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut var> vscope, nonempty_string id) = | |
2351 | 2361 | reduce vscope to rest found: |
2352 | 2362 | ( |
2353 | - if strequ(nonempty_to_string(found.id), preapp('_', id)) then | |
2363 | + if is_equ(cmp<nonempty_string>(found.id, nonempty_string('_', nonempty_to_string(id)))) then | |
2354 | 2364 | { |
2355 | 2365 | let mut xar vi = found.vi; |
2356 | 2366 |
@@ -2359,7 +2369,7 @@ | ||
2359 | 2369 | case xar_hidden: |
2360 | 2370 | { |
2361 | 2371 | PutStr(err, "Variable "); |
2362 | - PutStr(err, id); | |
2372 | + PutStr(err, nonempty_to_string(id)); | |
2363 | 2373 | PutStr(err, " is inaccessible from "); |
2364 | 2374 | PrLoc(err, vi.txtpos); |
2365 | 2375 | PutStr(err, ", accessed here"); |
@@ -2373,7 +2383,7 @@ | ||
2373 | 2383 | result solid<qtypepureid>(qtypepureid(vi.qt, found.id)) |
2374 | 2384 | } |
2375 | 2385 | } |
2376 | - else if strequ(nonempty_to_string(found.id), preapp('*', id)) then | |
2386 | + else if is_equ(cmp<nonempty_string>(found.id, nonempty_string('*', nonempty_to_string(id)))) then | |
2377 | 2387 | { |
2378 | 2388 | let mut xar vi = found.vi; |
2379 | 2389 |
@@ -2382,7 +2392,7 @@ | ||
2382 | 2392 | case xar_hidden: |
2383 | 2393 | { |
2384 | 2394 | PutStr(err, "Variable "); |
2385 | - PutStr(err, id); | |
2395 | + PutStr(err, nonempty_to_string(id)); | |
2386 | 2396 | PutStr(err, " is inaccessible from "); |
2387 | 2397 | PrLoc(err, vi.txtpos); |
2388 | 2398 | PutStr(err, ", accessed here"); |
@@ -2401,12 +2411,12 @@ | ||
2401 | 2411 | ) |
2402 | 2412 | term: empty<qtypepureid>(); |
2403 | 2413 | |
2404 | -bool exists_var(stack<mut var> vscope, string id) = | |
2414 | +bool exists_var(stack<mut var> vscope, nonempty_string id) = | |
2405 | 2415 | reduce vscope to rest found: |
2406 | 2416 | ( |
2407 | - if strequ(nonempty_to_string(found.id), preapp('_', id)) then | |
2417 | + if is_equ(cmp<nonempty_string>(found.id, nonempty_string('_', nonempty_to_string(id)))) then | |
2408 | 2418 | 1 |
2409 | - else if strequ(nonempty_to_string(found.id), preapp('*', id)) then | |
2419 | + else if is_equ(cmp<nonempty_string>(found.id, nonempty_string('*', nonempty_to_string(id)))) then | |
2410 | 2420 | 1 |
2411 | 2421 | else |
2412 | 2422 | exists_var(rest, id) |
@@ -2453,7 +2463,7 @@ | ||
2453 | 2463 | }; |
2454 | 2464 | } |
2455 | 2465 | |
2456 | -opt<qtypepureid> ScopesFindVarAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut vscope> scopes, string id) = | |
2466 | +opt<qtypepureid> ScopesFindVarAndMarkUsed$(StreamOut err, linecol txtpos, stack<mut vscope> scopes, nonempty_string id) = | |
2457 | 2467 | reduce scopes to rest found: |
2458 | 2468 | { |
2459 | 2469 | let opt<qtypepureid> v = FindVarAndMarkUsed$(err, txtpos, found.elems, id); |
@@ -2492,10 +2502,10 @@ | ||
2492 | 2502 | sp.current = pop$<vscope>(sp.elems); |
2493 | 2503 | } |
2494 | 2504 | |
2495 | -opt<qtypepureid> ScopePathFindParAndMarkUsed$(StreamOut err, linecol txtpos, mut scopepath sp, string id) = | |
2505 | +opt<qtypepureid> ScopePathFindParAndMarkUsed$(StreamOut err, linecol txtpos, mut scopepath sp, nonempty_string id) = | |
2496 | 2506 | FindParAndMarkUsed$(err, txtpos, sp.base.elems, id); |
2497 | 2507 | |
2498 | -opt<qtypepureid> ScopePathFindVarAndMarkUsed$(StreamOut err, linecol txtpos, mut scopepath sp, string id) | |
2508 | +opt<qtypepureid> ScopePathFindVarAndMarkUsed$(StreamOut err, linecol txtpos, mut scopepath sp, nonempty_string id) | |
2499 | 2509 | { |
2500 | 2510 | let opt<qtypepureid> found = FindVarAndMarkUsed$(err, txtpos, sp.current.elems, id); |
2501 | 2511 | result |
@@ -2506,12 +2516,22 @@ | ||
2506 | 2516 | |
2507 | 2517 | opt<qtypepureid> ScopePathFindParOrVarAndMarkUsed$(StreamOut err, linecol txtpos, mut scopepath sp, string id) |
2508 | 2518 | { |
2509 | - // NOTE: mind order - variables could shadow parameters but never the other way round (so process variables first, then parameters) | |
2510 | - let opt<qtypepureid> found = ScopePathFindVarAndMarkUsed$(err, txtpos, sp, id); | |
2519 | + let opt<nonempty_string> id = to_nonempty_string(id); | |
2511 | 2520 | result |
2512 | - switch found | |
2513 | - case empty: ScopePathFindParAndMarkUsed$(err, txtpos, sp, id) | |
2514 | - case solid: solid<qtypepureid>(found) | |
2521 | + switch id | |
2522 | + case empty: | |
2523 | + ( | |
2524 | + empty<qtypepureid>() | |
2525 | + ) | |
2526 | + case solid: | |
2527 | + { | |
2528 | + // NOTE: mind order - variables could shadow parameters but never the other way round (so process variables first, then parameters) | |
2529 | + let opt<qtypepureid> found = ScopePathFindVarAndMarkUsed$(err, txtpos, sp, id); | |
2530 | + result | |
2531 | + switch found | |
2532 | + case empty: ScopePathFindParAndMarkUsed$(err, txtpos, sp, id) | |
2533 | + case solid: solid<qtypepureid>(found) | |
2534 | + } | |
2515 | 2535 | } |
2516 | 2536 | |
2517 | 2537 | //opt<par> check_par_used(stack<par> pars) = |
@@ -2617,18 +2637,18 @@ | ||
2617 | 2637 | } |
2618 | 2638 | |
2619 | 2639 | // output stack from base |
2620 | -unit Climb(StreamOut out, StreamOut err, linecol txtpos, stack<string> argids) | |
2640 | +unit Climb(StreamOut out, StreamOut err, linecol txtpos, stack<nonempty_string> argids) | |
2621 | 2641 | { |
2622 | 2642 | reduce argids to rest argid: |
2623 | 2643 | { |
2624 | 2644 | Climb(out, err, txtpos, rest); |
2625 | 2645 | |
2626 | - PutStr(out, ", &"); PutStr(out, argid); | |
2646 | + PutStr(out, ", &"); PutStr(out, nonempty_to_string(argid)); | |
2627 | 2647 | }; |
2628 | 2648 | } |
2629 | 2649 | |
2630 | 2650 | // Emit call |
2631 | -unit DoCall(StreamOut out, StreamOut err, linecol txtpos, stack<string> argids, qtypepureid store) | |
2651 | +unit DoCall(StreamOut out, StreamOut err, linecol txtpos, stack<nonempty_string> argids, qtypepureid store) | |
2632 | 2652 | { |
2633 | 2653 | if ispureunit(store.qt.type) then |
2634 | 2654 | { |
@@ -2656,8 +2676,8 @@ | ||
2656 | 2676 | bool used; |
2657 | 2677 | } |
2658 | 2678 | |
2659 | -def definit(focus focus, type re, nonempty_string id, fnstat fnstat, stack<qtype> pars) = def(focus, re, idpart(id.rest), id, fnstat, pars, 0); | |
2660 | -def defused(focus focus, type re, nonempty_string id, fnstat fnstat, stack<qtype> pars) = def(focus, re, idpart(id.rest), id, fnstat, pars, 1); | |
2679 | +def definit(focus focus, type re, nonempty_string id, fnstat fnstat, stack<qtype> pars) = def(focus, re, idpart(id), id, fnstat, pars, 0); | |
2680 | +def defused(focus focus, type re, nonempty_string id, fnstat fnstat, stack<qtype> pars) = def(focus, re, idpart(id), id, fnstat, pars, 1); | |
2661 | 2681 | |
2662 | 2682 | bool any_par_contains_type_var(stack<qtype> pars) = |
2663 | 2683 | reduce pars to rest par: |
@@ -2672,10 +2692,10 @@ | ||
2672 | 2692 | bool def_contains_var(def d) = |
2673 | 2693 | or(type_contains_type_var(d.re), any_par_contains_type_var(d.pars)); |
2674 | 2694 | |
2675 | -opt<def> findFnDefAndMarkUsed(stack<mut def> defs, string id) = | |
2695 | +opt<def> findFnDefAndMarkUsed(stack<mut def> defs, nonempty_string id) = | |
2676 | 2696 | reduce defs to rest cur: |
2677 | 2697 | ( |
2678 | - if strequ(id, nonempty_to_string(cur.id)) then | |
2698 | + if is_equ(cmp<nonempty_string>(id, cur.id)) then | |
2679 | 2699 | { |
2680 | 2700 | cur.used = 1; |
2681 | 2701 | result solid<def>(cur) |
@@ -2685,10 +2705,10 @@ | ||
2685 | 2705 | ) |
2686 | 2706 | term: empty<def>(); |
2687 | 2707 | |
2688 | -opt<def> findFnDef(stack<def> defs, string id) = | |
2708 | +opt<def> findFnDef(stack<def> defs, nonempty_string id) = | |
2689 | 2709 | reduce defs to rest cur: |
2690 | 2710 | ( |
2691 | - if strequ(id, nonempty_to_string(cur.id)) then | |
2711 | + if is_equ(cmp<nonempty_string>(id, cur.id)) then | |
2692 | 2712 | solid<def>(cur) |
2693 | 2713 | else |
2694 | 2714 | findFnDef(rest, id) |
@@ -2929,7 +2949,7 @@ | ||
2929 | 2949 | Indent(out, level); PrTypePure(out, store.qt.type); PutStr(out, " "); PutStr(out, nonempty_to_string(store.id)); PutStr(out, "; memset(&"); PutStr(out, nonempty_to_string(store.id)); PutStr(out, ", 0, "); EmitSizeOfPure(out, structs, store.qt.type); PutStr(out, ");\n"); |
2930 | 2950 | } |
2931 | 2951 | |
2932 | -unit AssertResultTypePure$(StreamOut err, linecol txtpos, string fn, qtypepure want, type_pure have) | |
2952 | +unit AssertResultTypePure$(StreamOut err, linecol txtpos, nonempty_string fn, qtypepure want, type_pure have) | |
2933 | 2953 | { |
2934 | 2954 | if not(typepureequ(want.type, have)) then |
2935 | 2955 | { |
@@ -2936,7 +2956,7 @@ | ||
2936 | 2956 | PutStr(err, "need "); |
2937 | 2957 | EPrQTP(err, want); |
2938 | 2958 | PutStr(err, " but function "); |
2939 | - PutStr(err, fn); | |
2959 | + PutStr(err, nonempty_to_string(fn)); | |
2940 | 2960 | PutStr(err, " returns "); |
2941 | 2961 | EPrTypePure(err, have); |
2942 | 2962 | Fail$(err, txtpos); |
@@ -2953,7 +2973,7 @@ | ||
2953 | 2973 | // PutStr(err, "need "); |
2954 | 2974 | // EPrQTP(err, want); |
2955 | 2975 | // PutStr(err, " but function "); |
2956 | -// PutStr(err, fn); | |
2976 | +// PutStr(err, nonempty_to_string(fn)); | |
2957 | 2977 | // PutStr(err, " returns CONST "); |
2958 | 2978 | // EPrTypePure(err, have); |
2959 | 2979 | // Fail$(err, txtpos); |
@@ -3041,7 +3061,7 @@ | ||
3041 | 3061 | result type_pure_void() // DUMMY |
3042 | 3062 | } |
3043 | 3063 | ) |
3044 | - } | |
3064 | + } | |
3045 | 3065 | } |
3046 | 3066 | else |
3047 | 3067 | ( |
@@ -3075,28 +3095,28 @@ | ||
3075 | 3095 | } |
3076 | 3096 | |
3077 | 3097 | // forward-decl |
3078 | -unit ParseExpr$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, mut u64 tmpnr, opt<qtypepureid> store, string id, requires_totality totality, bool action, string self, stack<ReducedId> reduced_ids); | |
3098 | +unit ParseExpr$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, mut u64 tmpnr, opt<qtypepureid> store, string id, requires_totality totality, bool action, nonempty_string self, stack<ReducedId> reduced_ids); | |
3079 | 3099 | |
3080 | 3100 | // forward-decl |
3081 | -unit ParseBlock$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, u64 tmpnr, opt<qtypepureid> store, requires_totality totality, bool action, string self, stack<ReducedId> reduced_ids); | |
3101 | +unit ParseBlock$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, u64 tmpnr, opt<qtypepureid> store, requires_totality totality, bool action, nonempty_string self, stack<ReducedId> reduced_ids); | |
3082 | 3102 | |
3083 | 3103 | // forward-decl |
3084 | -unit ParseBlockRaw$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, u64 tmpnr, opt<qtypepureid> store, requires_totality totality, bool action, string self, stack<ReducedId> reduced_ids); | |
3104 | +unit ParseBlockRaw$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, u64 tmpnr, opt<qtypepureid> store, requires_totality totality, bool action, nonempty_string self, stack<ReducedId> reduced_ids); | |
3085 | 3105 | |
3086 | 3106 | // forward-decl |
3087 | -unit ParseArg$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, mut u64 tmpnr, qtypepureid store, qtypepureid par, requires_totality totality, bool action, string self, stack<ReducedId> reduced_ids, u64 parnr, def def, mut stack<string> argids, string callee, opt<type_pure> st, mut stack<idpath> ips); | |
3107 | +unit ParseArg$(Streams streams, mut linecol txtpos, mut state state, u64 level, mut scopepath sp, mut u64 tmpnr, qtypepureid store, qtypepureid par, requires_totality totality, bool action, nonempty_string self, stack<ReducedId> reduced_ids, u64 parnr, def def, mut stack<nonempty_string> argids, nonempty_string callee, opt<type_pure> st, mut stack<idpath> ips); | |
3088 | 3108 | |
3089 | 3109 | // NOTE: assuming function return-type has already been verified! |
3090 | -unit ParseCallComplete$(Streams streams, mut linecol txtpos, mut state state, u64 level/*, mut scopepath sp, mut u64 tmpnr*/, def def, qtypepureid store/**//**/, requires_totality totality/*, bool action*/, string self, stack<ReducedId> reduced_ids, mut stack<string> argids, string callee, opt<type_pure> st_) | |
3110 | +unit ParseCallComplete$(Streams streams, mut linecol txtpos, mut state state, u64 level/*, mut scopepath sp, mut u64 tmpnr*/, def def, qtypepureid store/**//**/, requires_totality totality/*, bool action*/, nonempty_string self, stack<ReducedId> reduced_ids, mut stack<nonempty_string> argids, nonempty_string callee, opt<type_pure> st_) | |
3091 | 3111 | { |
3092 | - if lss<u64>(size<string>(argids), size<qtype>(def.pars)) then | |
3112 | + if lss<u64>(size<nonempty_string>(argids), size<qtype>(def.pars)) then | |
3093 | 3113 | { |
3094 | 3114 | PutStr(streams.err, "too few arguments to function "); |
3095 | - PutStr(streams.err, callee); | |
3115 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3096 | 3116 | Fail$(streams.err, txtpos); |
3097 | 3117 | }; |
3098 | 3118 | |
3099 | - if strequ(callee, self) then | |
3119 | + if is_equ(cmp<nonempty_string>(callee, self)) then | |
3100 | 3120 | { |
3101 | 3121 | switch totality |
3102 | 3122 | case totality_unrequired: |
@@ -3109,7 +3129,7 @@ | ||
3109 | 3129 | case totality_unverified: |
3110 | 3130 | { |
3111 | 3131 | PutStr(streams.err, "total function "); |
3112 | - PutStr(streams.err, callee); | |
3132 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3113 | 3133 | PutStr(streams.err, " calls itself recursivly (hint: reduce parameter or declare partial), "); |
3114 | 3134 | PutStr(streams.err, "reduced parameters: "); |
3115 | 3135 | Print<stack<ReducedId>>(streams.err, reduced_ids); |
@@ -3124,68 +3144,68 @@ | ||
3124 | 3144 | }; |
3125 | 3145 | }; |
3126 | 3146 | |
3127 | - if isop1(callee) then | |
3147 | + if isop1(nonempty_to_string(callee)) then | |
3128 | 3148 | { |
3129 | 3149 | switch st_ |
3130 | 3150 | case empty: |
3131 | 3151 | { |
3132 | 3152 | PutStr(streams.err, "missing subtype for "); |
3133 | - PutStr(streams.err, callee); | |
3153 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3134 | 3154 | Fail$(streams.err, txtpos); |
3135 | 3155 | } |
3136 | 3156 | case solid: |
3137 | 3157 | { |
3138 | - if neq<u64>(size<string>(argids), 1) then | |
3158 | + if neq<u64>(size<nonempty_string>(argids), 1) then | |
3139 | 3159 | { |
3140 | - PutStr(streams.err, callee); | |
3160 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3141 | 3161 | PutStr(streams.err, " needs one argument but got "); |
3142 | - Print<u64>(streams.err, size<string>(argids)); | |
3162 | + Print<u64>(streams.err, size<nonempty_string>(argids)); | |
3143 | 3163 | Fail$(streams.err, txtpos); |
3144 | 3164 | }; |
3145 | 3165 | |
3146 | - let string arg0 = at_get$<string>(argids, 0); | |
3166 | + let nonempty_string arg0 = at_get$<nonempty_string>(argids, 0); | |
3147 | 3167 | |
3148 | 3168 | if ispureprim(st_) then |
3149 | 3169 | { |
3150 | - Indent(streams.out, level); PutStr(streams.out, nonempty_to_string(store.id)); PutStr(streams.out, " = "); PutStr(streams.out, to_op1(callee)); PutStr(streams.out, "("); PutStr(streams.out, arg0); PutStr(streams.out, ");\n"); | |
3170 | + Indent(streams.out, level); PutStr(streams.out, nonempty_to_string(store.id)); PutStr(streams.out, " = "); PutStr(streams.out, to_op1(nonempty_to_string(callee))); PutStr(streams.out, "("); PutStr(streams.out, nonempty_to_string(arg0)); PutStr(streams.out, ");\n"); | |
3151 | 3171 | } |
3152 | 3172 | else |
3153 | 3173 | { |
3154 | - PutStr(streams.err, callee); | |
3174 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3155 | 3175 | PutStr(streams.err, " only implemented for primitive types"); |
3156 | 3176 | Fail$(streams.err, txtpos); |
3157 | 3177 | }; |
3158 | 3178 | }; |
3159 | 3179 | } |
3160 | - else if isop2(callee) then | |
3180 | + else if isop2(nonempty_to_string(callee)) then | |
3161 | 3181 | { |
3162 | 3182 | switch st_ |
3163 | 3183 | case empty: |
3164 | 3184 | { |
3165 | 3185 | PutStr(streams.err, "missing subtype for "); |
3166 | - PutStr(streams.err, callee); | |
3186 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3167 | 3187 | Fail$(streams.err, txtpos); |
3168 | 3188 | } |
3169 | 3189 | case solid: |
3170 | 3190 | { |
3171 | - if neq<u64>(size<string>(argids), 2) then | |
3191 | + if neq<u64>(size<nonempty_string>(argids), 2) then | |
3172 | 3192 | { |
3173 | - PutStr(streams.err, callee); | |
3193 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3174 | 3194 | PutStr(streams.err, " needs two arguments but got "); |
3175 | - Print<u64>(streams.err, size<string>(argids)); | |
3195 | + Print<u64>(streams.err, size<nonempty_string>(argids)); | |
3176 | 3196 | Fail$(streams.err, txtpos); |
3177 | 3197 | }; |
3178 | 3198 | |
3179 | - let string arg0 = at_get$<string>(argids, 0); | |
3180 | - let string arg1 = at_get$<string>(argids, 1); | |
3199 | + let nonempty_string arg0 = at_get$<nonempty_string>(argids, 0); | |
3200 | + let nonempty_string arg1 = at_get$<nonempty_string>(argids, 1); | |
3181 | 3201 | |
3182 | 3202 | if ispureprim(st_) then |
3183 | 3203 | { |
3184 | - Indent(streams.out, level); PutStr(streams.out, nonempty_to_string(store.id)); PutStr(streams.out, " = "); PutStr(streams.out, arg0); PutStr(streams.out, " "); PutStr(streams.out, to_op2(callee)); PutStr(streams.out, " "); PutStr(streams.out, arg1); PutStr(streams.out, ";\n"); | |
3204 | + Indent(streams.out, level); PutStr(streams.out, nonempty_to_string(store.id)); PutStr(streams.out, " = "); PutStr(streams.out, nonempty_to_string(arg0)); PutStr(streams.out, " "); PutStr(streams.out, to_op2(nonempty_to_string(callee))); PutStr(streams.out, " "); PutStr(streams.out, nonempty_to_string(arg1)); PutStr(streams.out, ";\n"); | |
3185 | 3205 | } |
3186 | 3206 | else |
3187 | 3207 | { |
3188 | - PutStr(streams.err, callee); | |
3208 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3189 | 3209 | PutStr(streams.err, " only implemented for primitive types"); |
3190 | 3210 | Fail$(streams.err, txtpos); |
3191 | 3211 | }; |
@@ -3199,7 +3219,7 @@ | ||
3199 | 3219 | if def_contains_var(def) then |
3200 | 3220 | { |
3201 | 3221 | PutStr(streams.err, "missing type-argument for "); |
3202 | - PutStr(streams.err, callee); | |
3222 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3203 | 3223 | Fail$(streams.err, txtpos); |
3204 | 3224 | }; |
3205 | 3225 | } |
@@ -3210,13 +3230,13 @@ | ||
3210 | 3230 | PutStr(streams.err, "superfluous type-argument "); |
3211 | 3231 | EPrTypePure(streams.err, st_); |
3212 | 3232 | PutStr(streams.err, " for "); |
3213 | - PutStr(streams.err, callee); | |
3233 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3214 | 3234 | Fail$(streams.err, txtpos); |
3215 | 3235 | }; |
3216 | 3236 | }; |
3217 | 3237 | |
3218 | 3238 | // use all results as arguments for function-call |
3219 | - Indent(streams.out, level); PutStr(streams.out, callee); PutStr(streams.out, "("); DoCall(streams.out, streams.err, txtpos, argids, store); | |
3239 | + Indent(streams.out, level); PutStr(streams.out, nonempty_to_string(callee)); PutStr(streams.out, "("); DoCall(streams.out, streams.err, txtpos, argids, store); | |
3220 | 3240 | if |
3221 | 3241 | or |
3222 | 3242 | ( |
@@ -3224,11 +3244,11 @@ | ||
3224 | 3244 | ( |
3225 | 3245 | or |
3226 | 3246 | ( |
3227 | - strequ("stack", callee), | |
3247 | + strequ("stack", nonempty_to_string(callee)), | |
3228 | 3248 | or |
3229 | 3249 | ( |
3230 | - strequ("empty", callee), | |
3231 | - strequ("solid", callee) | |
3250 | + strequ("empty", nonempty_to_string(callee)), | |
3251 | + strequ("solid", nonempty_to_string(callee)) | |
3232 | 3252 | ) |
3233 | 3253 | ), |
3234 | 3254 | or |
@@ -3235,13 +3255,13 @@ | ||
3235 | 3255 | ( |
3236 | 3256 | or |
3237 | 3257 | ( |
3238 | - strequ("pop$", callee), | |
3239 | - strequ("pop_opt", callee) | |
3258 | + strequ("pop$", nonempty_to_string(callee)), | |
3259 | + strequ("pop_opt", nonempty_to_string(callee)) | |
3240 | 3260 | ), |
3241 | 3261 | or |
3242 | 3262 | ( |
3243 | - strequ("pop_opt_base$", callee), | |
3244 | - strequ("push", callee) | |
3263 | + strequ("pop_opt_base$", nonempty_to_string(callee)), | |
3264 | + strequ("push", nonempty_to_string(callee)) | |
3245 | 3265 | ) |
3246 | 3266 | ) |
3247 | 3267 | ), |
@@ -3249,13 +3269,13 @@ | ||
3249 | 3269 | ( |
3250 | 3270 | or |
3251 | 3271 | ( |
3252 | - strequ("at_get$", callee), | |
3253 | - strequ("at_set$", callee) | |
3272 | + strequ("at_get$", nonempty_to_string(callee)), | |
3273 | + strequ("at_set$", nonempty_to_string(callee)) | |
3254 | 3274 | ), |
3255 | 3275 | or |
3256 | 3276 | ( |
3257 | - strequ("top_get$", callee), | |
3258 | - strequ("top_set$", callee) | |
3277 | + strequ("top_get$", nonempty_to_string(callee)), | |
3278 | + strequ("top_set$", nonempty_to_string(callee)) | |
3259 | 3279 | ) |
3260 | 3280 | ) |
3261 | 3281 | ) |
@@ -3265,7 +3285,7 @@ | ||
3265 | 3285 | case empty: |
3266 | 3286 | { |
3267 | 3287 | PutStr(streams.err, "missing subtype for "); |
3268 | - PutStr(streams.err, callee); | |
3288 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3269 | 3289 | Fail$(streams.err, txtpos); |
3270 | 3290 | } |
3271 | 3291 | case solid: |
@@ -3292,13 +3312,13 @@ | ||
3292 | 3312 | } |
3293 | 3313 | else |
3294 | 3314 | { |
3295 | - if or(strequ("swap", callee), strequ("reverse", callee)) then | |
3315 | + if or(strequ("swap", nonempty_to_string(callee)), strequ("reverse", nonempty_to_string(callee))) then | |
3296 | 3316 | { |
3297 | 3317 | switch st_ |
3298 | 3318 | case empty: |
3299 | 3319 | { |
3300 | 3320 | PutStr(streams.err, "missing subtype for "); |
3301 | - PutStr(streams.err, callee); | |
3321 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3302 | 3322 | Fail$(streams.err, txtpos); |
3303 | 3323 | } |
3304 | 3324 | case solid: |
@@ -3308,11 +3328,11 @@ | ||
3308 | 3328 | }; |
3309 | 3329 | }; |
3310 | 3330 | |
3311 | - let u64 n = size<u8>(callee.data); | |
3331 | + let u64 n = size<u8>(callee.rest.data); | |
3312 | 3332 | |
3313 | - if geq<u64>(n, 3) then | |
3333 | + if geq<u64>(n, 2) then | |
3314 | 3334 | { |
3315 | - if geq<u64>(n, 6) then | |
3335 | + if geq<u64>(n, 5) then | |
3316 | 3336 | { |
3317 | 3337 | if |
3318 | 3338 | and |
@@ -3321,19 +3341,19 @@ | ||
3321 | 3341 | ( |
3322 | 3342 | and |
3323 | 3343 | ( |
3324 | - equ<u8>('P', at_get$<u8>(callee.data, sub<u64>(n, 1))), | |
3325 | - equ<u8>('r', at_get$<u8>(callee.data, sub<u64>(n, 2))) | |
3344 | + equ<u8>('P', callee.top), | |
3345 | + equ<u8>('r', at_get$<u8>(callee.rest.data, sub<u64>(n, 1))) | |
3326 | 3346 | ), |
3327 | 3347 | and |
3328 | 3348 | ( |
3329 | - equ<u8>('i', at_get$<u8>(callee.data, sub<u64>(n, 3))), | |
3330 | - equ<u8>('n', at_get$<u8>(callee.data, sub<u64>(n, 4))) | |
3349 | + equ<u8>('i', at_get$<u8>(callee.rest.data, sub<u64>(n, 2))), | |
3350 | + equ<u8>('n', at_get$<u8>(callee.rest.data, sub<u64>(n, 3))) | |
3331 | 3351 | ) |
3332 | 3352 | ), |
3333 | 3353 | and |
3334 | 3354 | ( |
3335 | - equ<u8>('t', at_get$<u8>(callee.data, sub<u64>(n, 5))), | |
3336 | - equ<u8>('$', at_get$<u8>(callee.data, sub<u64>(n, 6))) | |
3355 | + equ<u8>('t', at_get$<u8>(callee.rest.data, sub<u64>(n, 4))), | |
3356 | + equ<u8>('$', at_get$<u8>(callee.rest.data, sub<u64>(n, 5))) | |
3337 | 3357 | ) |
3338 | 3358 | ) |
3339 | 3359 | then |
@@ -3342,7 +3362,7 @@ | ||
3342 | 3362 | case empty: |
3343 | 3363 | { |
3344 | 3364 | PutStr(streams.err, "missing subtype for "); |
3345 | - PutStr(streams.err, callee); | |
3365 | + PutStr(streams.err, nonempty_to_string(callee)); | |
3346 | 3366 | Fail$(streams.err, txtpos); |
3347 | 3367 | } |
3348 | 3368 | case solid: |
@@ -3366,10 +3386,10 @@ | ||
3366 | 3386 | ( |
3367 | 3387 | and |
3368 | 3388 | ( |
3369 | - |
Part of diff was cut off due to size limit. Use your local client to view the full diff.