📄 para.cpp
字号:
#include"type.cpp"
#include"calc.cpp"
/*----------------CODE---------------*/
uchar huge*getaword(uchar huge*bp)
{
uchar huge*p;uchar c,cfi=0;
while(*bp==' ')bp++;
if((ulong)bp>=(ulong)BPZ){end=1;return bp;}
if(*bp=='\n'||*bp==':'){lineend=1;return bp+1;}
if(*bp==0){end=1;return bp+1;}
erp=bp;
if(*bp==0){aword[0]=0;return bp;}
p=aword;
if(*bp==','||*bp==';')
{while(*bp==','||*bp==';')
*(p++)=*(bp++);
*p=0;return bp;
}
while(*bp!=' '&&*bp!=':'&&*bp!='\n'&&*bp!=0&&*bp!=','&&*bp!=';')
{
c=*(bp++);
if(c=='"')
{*(p++)=c;
while(*bp!='"'&&*bp!=0&&*bp!='\n')
*(p++)=*(bp++);
if(*bp!='"'){erp=bp;ERR(12);}
*(p++)=*(bp++);
continue;
}
if(c=='(')
{cfi=1;
*(p++)=c;
for(;;)
{
switch(*bp)
{
case '(':cfi++;break;
case ')':cfi--;break;
case '\n':
case 0:erp=bp;ERR(12);break;
}
*(p++)=*(bp++);
if(cfi==0)break;
}
goto lop;
}
{*(p++)=c;continue;}
lop: }
*p=0;return bp;
}
/*void getaobj()
{register uchar i;
uchar huge*p,huge*bp,c,cf=0;
while(*LBP==' '||*LBP=='\n')LBP++;erp=BP-strlen(aline)+(LBP-aline);
if(*LBP==0){end=1;aword[0]=0;return;}
p=aword;
for(;;)
{
for(i=0;i<PUNCMAX;i++)
if(*LBP==PUNC[i]){
THISIS=i+5;
return;}
if(*LBP=='"')
{
do {
if(*LBP=='\n'){er=1;return;}
*(p++)=*(LBP++);
}
while(*LBP!='"');
*(p++)=*(LBP++);
}
if(*LBP=='(')
{
for(;;)
{
switch(*LBP)
{
case '(':cf++;break;
case ')':cf--;break;
case 0:;
case '\n':er=1;return;
}
*(p++)=*(LBP++);
if(cf==0)break;
}
}
if(*LBP==' '||*LBP=='\n'||*LBP==':'||*LBP==0)break;
*(p++)=*(LBP++);
}
*p=0;
SCANTHEWORD();
}
void getaline()
{uchar huge*bp,huge*p2;
bp=BP;
erp=bp;p2=aline;
while(*bp==' ')bp++;
if(*bp=='\n'||*bp==':'){THISIS=0;return;}
if(!isalpha(*bp)&&!isalnum(*bp)&&*bp!='"'&&*bp!='-'&&*bp!='+'){er=2;return;}
for(;;)
{
if(*bp=='"')
{
do {
if(*bp=='\n'){er=1;return;}
*(p2++)=*(bp++);
}
while(*bp!='"');
*(p2++)=*(bp++);
}
if(*bp=='\n'||*bp==':'||*bp==0)break;
*(p2++)=*(bp++);
}
*p2=0;
BP=bp;
bp=aline;
}
void SCANTHEWORD()
{uchar far*p;
p=aword;THISIS=255;
for(;;)
{
while(isalpha(*p)||isalnum(*p))p++;
switch(*p)
{
case '%':if(THISIS==255)THISIS=1;break;
case '$':
case '"':if(THISIS==255)THISIS=3;break;
}
}
switch(THISIS
*/
uchar huge*GETBPZ(uchar*s1,uchar*s2,uchar*s3,uchar*s4)
{uchar huge*bp,huge*t,i;
bp=BP;end=0;
for(;;)
{BP=getaword(BP);
if(aword[0]==0){BP=bp;BPZ=(uchar far*)0xF000FFFF;return BPZ;}
if(strcmpn(s1,aword)){t=BP;BP=bp;t-=strlen(s1);BPZ=t;return t;}
if(strcmpn(s2,aword)){t=BP;BP=bp;t-=strlen(s2);BPZ=t;return t;}
if(strcmpn(s3,aword)){t=BP;BP=bp;t-=strlen(s3);BPZ=t;return t;}
if(strcmpn(s4,aword)){t=BP;BP=bp;t-=strlen(s4);BPZ=t;return t;}
if(end){BP=bp;BPZ=(uchar far*)0xF000FFFF;return BPZ;}
lineend=end=0;
}
}
void getapara(uchar huge*bpz)
{uchar far*p,huge*tbp;
tbp=getaword(BP);
if(isakeywd(aword)){BP=NEXTLINE();THISIS=0;lineend=1;return;}
BP=tbp;
if(BP>bpz||lineend||end){THISIS=0;THISIS=0;lineend=1;return;}
p=aword;THISIS=255;
if(aword[0]==0){THISIS=0;return;}
while(isalpha(*p)||isalnum(*p))p++;
switch(*p)
{
case '%':if(THISIS==255)THISIS=1;break;
case '$':
case '"':if(THISIS==255)THISIS=3;break;
case ';':THISIS=6;break;
case ',':THISIS=7;break;
}
switch(THISIS)
{
case 255:THISIS=2;THISISAFLOAT=CALC(aword);break;
case 1:THISISAINT=CALC(aword);break;
case 2:break;
case 3:CALCSTR(aword);break;
}
}
uchar far*CALCSTR(uchar far*a)
{register uchar*p;
if(*a=='"')a++;
else{dellastchar(aword);strcpy(aword,var.GETSVAR(aword));}
strcpy(THISISASTR,a);
p=THISISASTR;
while(*p)p++;
if(*(p-1)=='"')*(p-1)=0;
return THISISASTR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -