2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
|
for(;;) {
if(ptr>=0xFFFA) ParseError("Out of memory\n");
nxttok();
if(Tokenf(TF_MACRO)) ParseError("Unexpected macro\n");
if(tokent==TF_CLOSE) {
ll_code[ptr++]=OP_RET;
return ptr;
} else if(Tokenf(TF_NAME)) {
switch(tokenv) {
case OP_IF:
if(flowdepth==64) ParseError("Too much flow control nesting\n");
ll_code[ptr++]=OP_IF;
flowptr[flowdepth++]=ptr++;
break;
|
>
>
>
>
|
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
|
for(;;) {
if(ptr>=0xFFFA) ParseError("Out of memory\n");
nxttok();
if(Tokenf(TF_MACRO)) ParseError("Unexpected macro\n");
if(tokent==TF_CLOSE) {
ll_code[ptr++]=OP_RET;
return ptr;
} else if(Tokenf(TF_INT)) {
if(!(tokenv&~0xFFL)) ll_code[ptr++]=tokenv;
else if(!(tokenv&~0xFFFFL)) ll_code[ptr++]=OP_INT16,ll_code[ptr++]=tokenv;
else ll_code[ptr++]=OP_INT32,ll_code[ptr++]=OP_INT32,ll_code[ptr++]=tokenv>>16,ll_code[ptr++]=tokenv;
} else if(Tokenf(TF_NAME)) {
switch(tokenv) {
case OP_IF:
if(flowdepth==64) ParseError("Too much flow control nesting\n");
ll_code[ptr++]=OP_IF;
flowptr[flowdepth++]=ptr++;
break;
|
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
|
if(!Tokenf(TF_NAME)) ParseError("Unexpected token in (LevelTable) block\n");
switch(tokenv) {
case OP_LABEL:
i=look_hash(hash,LOCAL_HASH_SIZE,0x100,0x13F,ll_ndata+0x100,"data columns")?:(ll_ndata++)+0x100;
i-=0x100;
if(datac[i].name) ParseError("Duplicate definition\n");
datac[i].name=strdup(tokenstr);
if(datac[i].name) fatal("Allocation failed\n");
datac[i].ptr=ptr;
ptr=level_table_code(ptr,hash);
break;
case OP_STRING:
if(last) ParseError("Extra columns after fill column\n");
for(i=0;tokenstr[i];i++) if(!(tokenstr[i]&~31)) ParseError("Improper column heading\n");
strcpy(buf,tokenstr);
|
|
|
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
|
if(!Tokenf(TF_NAME)) ParseError("Unexpected token in (LevelTable) block\n");
switch(tokenv) {
case OP_LABEL:
i=look_hash(hash,LOCAL_HASH_SIZE,0x100,0x13F,ll_ndata+0x100,"data columns")?:(ll_ndata++)+0x100;
i-=0x100;
if(datac[i].name) ParseError("Duplicate definition\n");
datac[i].name=strdup(tokenstr);
if(!datac[i].name) fatal("Allocation failed\n");
datac[i].ptr=ptr;
ptr=level_table_code(ptr,hash);
break;
case OP_STRING:
if(last) ParseError("Extra columns after fill column\n");
for(i=0;tokenstr[i];i++) if(!(tokenstr[i]&~31)) ParseError("Improper column heading\n");
strcpy(buf,tokenstr);
|