Index: class.c ================================================================== --- class.c +++ class.c @@ -2214,10 +2214,14 @@ 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; @@ -2284,11 +2288,11 @@ 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"); + 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"); Index: class.doc ================================================================== --- class.doc +++ class.doc @@ -2589,20 +2589,22 @@ the label name, preceded by a underscore, and some characters will be stripped out. (