524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
|
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
|
-
-
+
|
break;
case '$':
if(fl) ParseError("Invalid use of , and = in token\n");
tokent=TF_NAME;
tokenv=look_class_name()+0x4000;
break;
case '!':
// Just ignore sounds for now
if(fl) ParseError("Invalid use of , and = in token\n");
tokent=TF_NAME;
tokenv=0x0400;
tokenv=find_user_sound(tokenstr);
break;
case '%':
if(fl&TF_COMMA) ParseError("Invalid use of , in token\n");
tokent=TF_NAME|TF_ABNORMAL|fl;
tokenv=OP_LOCAL;
break;
case '@':
|
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
|
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
|
-
-
+
+
|
if(tokent==TF_INT) {
return NVALUE(tokenv);
} else if(Tokenf(TF_NAME)) {
switch(tokenv) {
case 0x0000 ... 0x00FF: return NVALUE(tokenv);
case 0x0100 ... 0x01FF: return NVALUE(tokenv-0x0200);
case 0x0200 ... 0x02FF: return MVALUE(tokenv&255);
case 0x0300 ... 0x03FF: return UVALUE(0,TY_SOUND);
case 0x0400 ... 0x04FF: return UVALUE(0,TY_USOUND);
case 0x0300 ... 0x03FF: return UVALUE(tokenv&255,TY_SOUND);
case 0x0400 ... 0x04FF: return UVALUE(tokenv&255,TY_USOUND);
case 0x4000 ... 0x7FFF: return CVALUE(tokenv-0x4000);
case OP_STRING: return UVALUE(pool_string(tokenstr),TY_STRING);
case OP_BITCONSTANT ... OP_BITCONSTANT_LAST: return NVALUE(1<<(tokenv&31));
case 0xC000 ... 0xFFFF: return MVALUE(tokenv-0xBF00);
}
}
ParseError("Constant value expected\n");
|