drop extend-if-key-in-array-syntax.patch add yacc debug
[nedit-bw.git] / abstract-access-to-FrameP.patch
blobc654069ffcaff1848acedb863fb6129c899f293a
1 ---
3 source/interpret.c | 53 ++++++++++++++++++++++++++++++++---------------------
4 1 file changed, 32 insertions(+), 21 deletions(-)
6 diff --quilt old/source/interpret.c new/source/interpret.c
7 --- old/source/interpret.c
8 +++ new/source/interpret.c
9 @@ -1386,6 +1386,17 @@ static void addToGlobalSymTab(Symbol *sy
10 } \
11 } while (0)
13 +#define FRAME_GET_ITEM(xIndex) FP_GET_ITEM(FrameP,xIndex)
14 +#define FRAME_GET_ARG_ARRAY() FP_GET_ARG_ARRAY(FrameP)
15 +#define FRAME_GET_ARG_COUNT() FP_GET_ARG_COUNT(FrameP)
16 +#define FRAME_GET_OLD_FP() FP_GET_OLD_FP(FrameP)
17 +#define FRAME_GET_RET_PC() FP_GET_RET_PC(FrameP)
18 +#define FRAME_GET_PROG() FP_GET_PROG(FrameP)
19 +#define FRAME_ARG_START_INDEX() FP_ARG_START_INDEX(FrameP)
20 +#define FRAME_GET_ARG_N(xN) FP_GET_ARG_N(FrameP,xN)
21 +#define FRAME_GET_SYM_N(xN) FP_GET_SYM_N(FrameP,xN)
22 +#define FRAME_GET_SYM_VAL(xSym) FP_GET_SYM_VAL(FrameP,xSym)
24 /* true, if you can pop n values */
25 #define OK_TO_POP(n) \
26 ((StackP - (n)) >= TheStack)
27 @@ -1551,11 +1562,11 @@ static int pushSymVal(void)
28 GET_SYM(s);
30 if (s->type == LOCAL_SYM) {
31 - symVal = FP_GET_SYM_VAL(FrameP, s);
32 + symVal = FRAME_GET_SYM_VAL(s);
33 } else if (s->type == GLOBAL_SYM || s->type == CONST_SYM) {
34 symVal = s->value;
35 } else if (s->type == ARG_SYM) {
36 - nArgs = FP_GET_ARG_COUNT(FrameP);
37 + nArgs = FRAME_GET_ARG_COUNT();
38 argNum = s->value.val.n;
39 if (argNum >= nArgs) {
40 return execError("referenced undefined argument: %s", s->name);
41 @@ -1565,7 +1576,7 @@ static int pushSymVal(void)
42 symVal.val.n = nArgs;
44 else {
45 - symVal = FP_GET_ARG_N(FrameP, argNum);
46 + symVal = FRAME_GET_ARG_N(argNum);
48 } else if (s->type == PROC_VALUE_SYM) {
49 char *errMsg;
50 @@ -1619,12 +1630,12 @@ static int pushArgVal(void)
52 POP_INT(argNum);
53 --argNum;
54 - nArgs = FP_GET_ARG_COUNT(FrameP);
55 + nArgs = FRAME_GET_ARG_COUNT();
56 if (argNum >= nArgs || argNum < 0) {
57 return execError("referenced undefined argument: $args[%s]",
58 longAsStr(argNum + 1));
60 - PUSH(FP_GET_ARG_N(FrameP, argNum));
61 + PUSH(FRAME_GET_ARG_N(argNum));
62 return STAT_OK;
65 @@ -1633,7 +1644,7 @@ static int pushArgCount(void)
66 DISASM_RT(PC-1, 1);
67 STACKDUMP(0, 3);
69 - PUSH_INT(FP_GET_ARG_COUNT(FrameP));
70 + PUSH_INT(FRAME_GET_ARG_COUNT());
71 return STAT_OK;
74 @@ -1646,8 +1657,8 @@ static int pushArgArray(void)
75 DISASM_RT(PC-1, 1);
76 STACKDUMP(0, 3);
78 - nArgs = FP_GET_ARG_COUNT(FrameP);
79 - argArray = &FP_GET_ARG_ARRAY(FrameP);
80 + nArgs = FRAME_GET_ARG_COUNT();
81 + argArray = &FRAME_GET_ARG_ARRAY();
82 if (argArray->tag != ARRAY_TAG) {
83 /* we require a real array in the argArray position */
84 argArray->tag = ARRAY_TAG;
85 @@ -1658,7 +1669,7 @@ static int pushArgArray(void)
86 if (needArgCopy || (nArgs && !ArrayGet(argArray, (char *)"1", &argVal))) {
87 /* load arguments from positional arg list if not already done */
88 for (argNum = 0; argNum < nArgs; ++argNum) {
89 - argVal = FP_GET_ARG_N(FrameP, argNum);
90 + argVal = FRAME_GET_ARG_N(argNum);
91 if (!ArrayInsert(argArray, AllocStringOfNumber(argNum + 1),
92 &argVal)) {
93 return(execError("argument array insertion failure", NULL));
94 @@ -1691,7 +1702,7 @@ static int pushArraySymVal(void)
95 GET_IMMED(initEmpty);
97 if (sym->type == LOCAL_SYM) {
98 - dataPtr = &FP_GET_SYM_VAL(FrameP, sym);
99 + dataPtr = &FRAME_GET_SYM_VAL(sym);
101 else if (sym->type == GLOBAL_SYM) {
102 dataPtr = &sym->value;
103 @@ -2013,7 +2024,7 @@ static int assign(void)
106 if (sym->type == LOCAL_SYM) {
107 - dataPtr = &FP_GET_SYM_VAL(FrameP, sym);
108 + dataPtr = &FRAME_GET_SYM_VAL(sym);
110 else {
111 dataPtr = &sym->value;
112 @@ -2675,7 +2686,7 @@ static int callSubroutineFromSymbol(Symb
115 if (sym->type == LOCAL_SYM) {
116 - symValPtr = &FP_GET_SYM_VAL(FrameP, sym);
117 + symValPtr = &FRAME_GET_SYM_VAL(sym);
118 } else if (sym->type == GLOBAL_SYM) {
119 symValPtr = &sym->value;
121 @@ -3014,7 +3025,7 @@ static int returnValOrNone(int valOnStac
122 static DataValue noValue = {NO_TAG, {0}};
124 DISASM_RT(PC-1, 1);
125 - STACKDUMP(StackP - FrameP + FP_GET_ARG_COUNT(FrameP) + FP_TO_ARGS_DIST, 3);
126 + STACKDUMP(StackP - FrameP + FRAME_GET_ARG_COUNT() + FP_TO_ARGS_DIST, 3);
128 /* return value is on the stack */
129 if (valOnStack) {
130 @@ -3626,7 +3637,7 @@ static int beginArrayIter(void)
131 POP(arrayVal);
133 if (iterator->type == LOCAL_SYM) {
134 - iteratorValPtr = &FP_GET_SYM_VAL(FrameP, iterator);
135 + iteratorValPtr = &FRAME_GET_SYM_VAL(iterator);
137 else {
138 return(execError("bad temporary iterator: %s", iterator->name));
139 @@ -3689,7 +3700,7 @@ static int arrayIter(void)
140 GET_BRANCH(branchAddr);
142 if (keySym->type == LOCAL_SYM) {
143 - keyValPtr = &FP_GET_SYM_VAL(FrameP, keySym);
144 + keyValPtr = &FRAME_GET_SYM_VAL(keySym);
146 else if (keySym->type == GLOBAL_SYM) {
147 keyValPtr = &(keySym->value);
148 @@ -3701,7 +3712,7 @@ static int arrayIter(void)
150 if (withVal) {
151 if (valSym->type == LOCAL_SYM) {
152 - valPtr = &FP_GET_SYM_VAL(FrameP, valSym);
153 + valPtr = &FRAME_GET_SYM_VAL(valSym);
155 else if (valSym->type == GLOBAL_SYM) {
156 valPtr = &(valSym->value);
157 @@ -3713,7 +3724,7 @@ static int arrayIter(void)
160 if (iterator->type == LOCAL_SYM) {
161 - iteratorValPtr = &FP_GET_SYM_VAL(FrameP, iterator);
162 + iteratorValPtr = &FRAME_GET_SYM_VAL(iterator);
164 else {
165 return(execError("bad temporary iterator: %s", iterator->name));
166 @@ -3762,7 +3773,7 @@ static int beginArrayMultiIterArray(void
167 PEEK_INT(nDims, 0);
169 if (iterator->type == LOCAL_SYM) {
170 - iteratorValPtr = &FP_GET_SYM_VAL(FrameP, iterator);
171 + iteratorValPtr = &FRAME_GET_SYM_VAL(iterator);
173 else {
174 return(execError("bad temporary iterator: %s", iterator->name));
175 @@ -3869,7 +3880,7 @@ static int arrayMultiIterArray(void)
176 PEEK_INT(nDims, 0);
178 if (keyArraySym->type == LOCAL_SYM) {
179 - keyArrayPtr = &FP_GET_SYM_VAL(FrameP, keyArraySym);
180 + keyArrayPtr = &FRAME_GET_SYM_VAL(keyArraySym);
182 else if (keyArraySym->type == GLOBAL_SYM) {
183 keyArrayPtr = &(keyArraySym->value);
184 @@ -3882,7 +3893,7 @@ static int arrayMultiIterArray(void)
186 if (withVal) {
187 if (valSym->type == LOCAL_SYM) {
188 - valPtr = &FP_GET_SYM_VAL(FrameP, valSym);
189 + valPtr = &FRAME_GET_SYM_VAL(valSym);
191 else if (valSym->type == GLOBAL_SYM) {
192 valPtr = &valSym->value;
193 @@ -3894,7 +3905,7 @@ static int arrayMultiIterArray(void)
196 if (iterator->type == LOCAL_SYM) {
197 - iteratorValPtr = &FP_GET_SYM_VAL(FrameP, iterator);
198 + iteratorValPtr = &FRAME_GET_SYM_VAL(iterator);
200 else {
201 return(execError("bad temporary iterator: %s", iterator->name));