亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bool完美版.c

?? 布爾語義分析
?? C
字號:
struct key                                 /*關鍵字,運算符,界限符*/
{char str[8];
 int i;
 int j;
};
struct key a[36]={{{'i','n','t','\0'},0,1},
	  {{'c','h','a','r','\0'},1,1},
	  {{'f','l','o','a','t','\0'},2,1},
	  {{'b','r','e','a','k','\0'},3,1},
	  {{'c','a','s','e','\0'},4,1},
	  {{'d','o','\0'},5,1},
	  {{'e','l','s','e','\0'},6,1},
	  {{'f','o','r','\0'},7,1},
	  {{'i','f','\0'},8,1},
	  {{'s','w','i','t','c','h','\0'},9,1},
	  {{'r','e','t','u','r','n','\0'},10,1},
	  {{'s','t','r','u','c','t','\0'},11,1},
	  {{'m','a','i','n','\0'},12,1},
	  {{'w','h','i','l','e','\0'},13,1},
	  {{'d','o','u','b','l','e','\0'},14,1},
	  {{'v','o','i','d','\0'},15,1},
          {{'-','\0'},16,2},
	  {{'*','\0'},17,2},
	  {{'+','\0'},18,2},
	  {{'/','\0'},19,2},	  
	  {{'&','\0'},20,2},
	  {{'|','\0'},21,2},
          {{'!','\0'},22,2},        
          {{'<','\0'},23,2},
	  {{'>','\0'},24,2},	  
	  {{'<','=','\0'},25,2},
	  {{'>','=','\0'},26,2},
	  {{'=','=','\0'},27,2},
	  {{'!','=','\0'},28,2},          
	  {{'=','\0'},29,2},
	  {{',','\0'},30,2},	
	  {{';','\0'},31,3},
	  {{'(','\0'},32,3},
	  {{')','\0'},33,3},
	  {{'{','\0'},34,3},
	  {{'}','\0'},35,3}
       };
struct ID
{char str[10];                              /*標識符長度不能超過10*/
 int i;
};                                          /*用來存儲標識符*/
struct data                                 /*無符號數*/
{char str[10];
 int i;
};
struct result
{int i;                                     /*1-關鍵字,2-運算符,3-界線符,4-標識符,5-常數*/
 int j;                                     /*在相應的數組中的下標*/
};
struct ID b[50];
struct data c[50];
struct result d[100];
int m,n;
char word[10];
int lengthb=0;
int lengthc=0;
int lengthd=0;
int IsIna()
{int i,j;
 for(i=0;i<36;i++)
    {j=strcmp(a[i].str,word);               /*word 是讀取的單詞,在main中定義*/
     if(j==0) return i;
    }
 return -1;
}
int IsInb()
{int i,j;
 for(i=0;i<lengthb;i++)
    {j=strcmp(b[i].str,word);               /*lengthb 是b[i]的長度*/
     if(j==0) return i;
    }
 return -1;
}
int IsInc()
{int i,j;
 for(i=0;i<lengthc;i++)
    {j=strcmp(c[i].str,word);
     if(j==0) return i;
    }
 return -1;
}
void InsertID()
{strcpy(b[lengthb].str,word);
 b[lengthb].i=lengthb;
 lengthb++;
}
void InsertData()
{strcpy(c[lengthc].str,word);
 c[lengthc].i=lengthc;
 lengthc++;
}
void InsertResult()
{d[lengthd].i=m;
 d[lengthd].j=n;
 lengthd++;
}
void Initword()
{int i;
 for(i=0;i<10;i++)
    word[i]='\0';
}
struct tempcode
   {int opplace;
    int class1;int place1;
    int class2;int place2;
    int class3;int place3;};
struct tempcode tempcode[20];
int ptempcode=0;
struct LR
{int action;
 int jump;
};
 struct LR lr[14][9]={{{0,0},{0,0},{1,2},{1,3},{0,0},{1,4},{0,0},{0,0},{4,1}},
                      {{1,5},{1,6},{0,0},{0,0},{0,0},{0,0},{0,0},{3,0},{0,0}},
                      {{0,0},{0,0},{1,2},{1,3},{0,0},{1,4},{0,0},{0,0},{4,7}},
                      {{0,0},{0,0},{1,2},{1,3},{0,0},{1,4},{0,0},{0,0},{4,8}},
                      {{2,6},{2,6},{0,0},{0,0},{2,6},{0,0},{1,9},{2,6},{0,0}},
                      {{0,0},{0,0},{1,2},{1,3},{0,0},{1,4},{0,0},{0,0},{4,10}},
                      {{0,0},{0,0},{1,2},{1,3},{0,0},{1,4},{0,0},{0,0},{4,11}},
                      {{2,3},{2,3},{0,0},{0,0},{2,3},{0,0},{0,0},{2,3},{0,0}},
                      {{1,5},{1,6},{0,0},{0,0},{1,12},{0,0},{0,0},{0,0},{0,0}},
                      {{0,0},{0,0},{0,0},{0,0},{0,0},{1,13},{0,0},{0,0},{0,0}},
                      {{2,1},{1,6},{0,0},{0,0},{2,1},{0,0},{0,0},{2,1},{0,0}},
                      {{2,2},{2,2},{0,0},{0,0},{2,2},{0,0},{0,0},{2,2},{0,0}},
                      {{2,4},{2,4},{0,0},{0,0},{2,4},{0,0},{0,0},{2,4},{0,0}},
                      {{2,5},{2,5},{0,0},{0,0},{2,5},{0,0},{0,0},{2,5},{0,0}}};
int stack1[20];
int pstack1;
struct stack2
{int class;      /*6-存儲于數組T中,0-空,100-goto,-1 = 0,-2 = 1*/
 int place;
};
struct stack2 stack2[20];
int pstack2;
struct expression
   {int col;
    int class;
    int place;};
struct expression expression[50];
int pexpression,lengthe;
int lengthT=1;
int getrightlength(int x)
{if(x==3) return 2;
 else if(x==6) return 1;
 else return 3;
}
void regress(int x)
{switch(x)
   {case 1:
           tempcode[ptempcode].opplace=21;
           tempcode[ptempcode].class1=stack2[pstack2-3].class;
           tempcode[ptempcode].place1=stack2[pstack2-3].place;
           tempcode[ptempcode].class2=stack2[pstack2-1].class; 
           tempcode[ptempcode].place2=stack2[pstack2-1].place; 
           tempcode[ptempcode].class3=6;
           tempcode[ptempcode].place3=lengthT;           
           ptempcode++;
           pstack2=pstack2-2;
           stack2[pstack2-1].class=6;
           stack2[pstack2-1].place=lengthT;
           lengthT++;
           break;
    case 2:
           tempcode[ptempcode].opplace=20;
           tempcode[ptempcode].class1=stack2[pstack2-3].class;
           tempcode[ptempcode].place1=stack2[pstack2-3].place;
           tempcode[ptempcode].class2=stack2[pstack2-1].class; 
           tempcode[ptempcode].place2=stack2[pstack2-1].place; 
           tempcode[ptempcode].class3=6;
           tempcode[ptempcode].place3=lengthT;           
           ptempcode++;
           pstack2=pstack2-2;
           stack2[pstack2-1].class=6;
           stack2[pstack2-1].place=lengthT;
           lengthT++;
           break;
    case 3:
           tempcode[ptempcode].opplace=22;
           tempcode[ptempcode].class1=stack2[pstack2-1].class;
           tempcode[ptempcode].place1=stack2[pstack2-1].place;
           tempcode[ptempcode].class2=0;
           tempcode[ptempcode].place2=0;
           tempcode[ptempcode].class3=6;
           tempcode[ptempcode].place3=lengthT;
           ptempcode++;
           pstack2--;
           stack2[pstack2-1].class=6;
           stack2[pstack2-1].place=lengthT;
           lengthT++;
           break;
    case 4:
           stack2[pstack2-3]=stack2[pstack2-2];
           pstack2=pstack2-2;
           break;
    case 5:
           tempcode[ptempcode].opplace=stack2[pstack2-2].place;
           tempcode[ptempcode].class1=stack2[pstack2-3].class;
           tempcode[ptempcode].place1=stack2[pstack2-3].place;
           tempcode[ptempcode].class2=stack2[pstack2-1].class;
           tempcode[ptempcode].place2=stack2[pstack2-1].place;
           tempcode[ptempcode].class3=100;
           tempcode[ptempcode].place3=ptempcode+3;
           ptempcode++;
           tempcode[ptempcode].opplace=29;
           tempcode[ptempcode].class1=-1;
           tempcode[ptempcode].place1=0;
           tempcode[ptempcode].class2=0;
           tempcode[ptempcode].place2=0;
           tempcode[ptempcode].class3=6;
	   tempcode[ptempcode].place3=lengthT;
           ptempcode++;
           tempcode[ptempcode].opplace=100;        /*100-goto*/
           tempcode[ptempcode].class1=0;
           tempcode[ptempcode].place1=0;
           tempcode[ptempcode].class2=0;
           tempcode[ptempcode].place2=0;
           tempcode[ptempcode].class3=100;
           tempcode[ptempcode].place3=ptempcode+2;
           ptempcode++;
           tempcode[ptempcode].opplace=29;
           tempcode[ptempcode].class1=-2;
           tempcode[ptempcode].place1=0;
           tempcode[ptempcode].class2=0;
           tempcode[ptempcode].place2=0;
           tempcode[ptempcode].class3=6;
	   tempcode[ptempcode].place3=lengthT;
           ptempcode++;
           pstack2=pstack2-2;
           
           stack2[pstack2-1].class=6;
           stack2[pstack2-1].place=lengthT;
           lengthT++;
           break;             
   }
}
#include <stdio.h>
#include <ctype.h>
main()
{int wordlength=0;
 int i,ch;
 char cc;
 char text[1000];
 int textlength=1;
int action,jump,rightlength;
 printf("please enter your codes here:\n");
 cc=getchar();
 text[0]=cc;
 while(textlength!=0 && (cc=getchar())!='#')
      {ch=cc;
       if(text[textlength-1]==' ' && cc==' ')
         continue;
       else if(text[textlength-1]==' ' && ch==10)
         continue;
       else if(text[textlength-1]!=' ' && ch==10)
         {text[textlength]=' ';textlength++;}
       else {text[textlength]=cc;textlength++;}
      }
 if(text[textlength-1]==' ') textlength--;
printf("\n");
for(i=0;i<textlength;i++)
printf("%c",text[i]);
printf("\n");
for(i=0;i<textlength;)
{Initword();
 wordlength=0;
 word[0]=text[i];
 wordlength++;
 if(isdigit(word[0]))                                         /*識別常數*/
   {while(isdigit(text[i+1]))
         {word[wordlength]=text[i+1];wordlength++;i++;}
    {if(IsInc()!=-1) {m=5;n=IsInc();}
     else
        {InsertData();
         m=5;n=lengthc-1;}}
    InsertResult();
    if(text[i+1]==' ')
         {i=i+2;continue;}
    else {i++;continue;}
   }
 else if(isalpha(word[0]))                                     /*識別關鍵字和標識符*/
   {while(isalnum(text[i+1]))
         {word[wordlength]=text[i+1];
          wordlength++;i++;
         }
         {if(IsIna()!=-1) {m=1;n=IsIna();InsertResult();}
          else if(IsInb()!=-1) {m=4;n=IsInb();InsertResult();}
          else {InsertID();m=4;n=lengthb-1;InsertResult();}
         }
    {if(text[i+1]==' ') {i=i+2;}
    else {i++;}}
    continue;
   }
 else if(IsIna()>=31 && IsIna()<=35)                           /*識別界線符*/
   {m=3;n=IsIna();
    InsertResult();
    if(text[i+1]==' ') {i=i+2;continue;}
    else {i++;continue;}
   }
 else if(IsIna()<31 && IsIna()>15)
        {if(text[i+1]==' ')                                      /*識別運算符*/
           {m=2;n=IsIna(); InsertResult();i=i+2;continue;}     
         else if(text[i+1]=='=')
              {word[1]=text[i+1];
               m=2;n=IsIna();InsertResult();
               if(text[i+2]==' ') {i=i+3;continue;}
               else {i=i+2;continue;}
              }
         else {m=2;n=IsIna();InsertResult();i++;continue;}
        }
 else printf("sth wrong in your codes!!!\n");
}
for(i=0;i<lengthd;i++)
{printf("< ");
 if(d[i].i==1) printf("guan jian zi,%d >\n",d[i].j);
 if(d[i].i==2) printf("yun suan fu,%d >\n",d[i].j);
 if(d[i].i==3) printf("jie xian fu,%d >\n",d[i].j);
 if(d[i].i==4) printf("biao shi fu,%d >\n",d[i].j);
 if(d[i].i==5) printf("chang shu,%d >\n",d[i].j);
}
for(i=0;i<lengthd;i++)
{if(d[i].i==4) 
    {expression[i].col=5;expression[i].class=4;expression[i].place=d[i].j;}
 else if(d[i].i==5)
    {expression[i].col=5;expression[i].class=5;expression[i].place=d[i].j;}
 else if(d[i].i==2)
    {if(d[i].j>=23 && d[i].j<=28)
        {expression[i].col=6;expression[i].class=2;expression[i].place=d[i].j;}
     else if(d[i].j==20)
        {expression[i].col=1;expression[i].class=2;expression[i].place=d[i].j;}
     else if(d[i].j==21)
        {expression[i].col=0;expression[i].class=2;expression[i].place=d[i].j;}
     else if(d[i].j==22)
        {expression[i].col=2;expression[i].class=2;expression[i].place=d[i].j;}
     else {printf("BOOL表達式中含非法運算符\n");return;}
    }
 else if(d[i].i==3)
    {if(d[i].j==32) {expression[i].col=3;expression[i].class=3;expression[i].place=d[i].j;}
     else if(d[i].j==33) {expression[i].col=4;expression[i].class=3;expression[i].place=d[i].j;}
     else {printf("BOOL表達式中含非法界限符\n");return;}
    }
 else {printf("BOOL表達式中含非法符號\n");return;}
}
lengthe=lengthd+1;
expression[lengthe-1].col=7;             /* # */
expression[lengthe-1].class=0;
expression[lengthe-1].place=0;
stack1[0]=0;
pstack1=0;
pstack2=0;
pexpression=0;
lengthT=1;
action=lr[stack1[pstack1]][expression[pexpression].col].action;
jump=lr[stack1[pstack1]][expression[pexpression].col].jump;
while(action!=3)
{if(action==0) {printf("error!\n");return;}
 if(action==1)
        {stack1[pstack1+1]=jump;
         pstack1++;
         stack2[pstack2].class=expression[pexpression].class;
         stack2[pstack2].place=expression[pexpression].place;
         pstack2++;
         pexpression++;         
        }
 if(action==2)
        {rightlength=getrightlength(jump);
         pstack1=pstack1-rightlength+1;
	 stack1[pstack1]=lr[stack1[pstack1-1]][8].jump;
         regress(jump);           
        } 
 action=lr[stack1[pstack1]][expression[pexpression].col].action;
 jump=lr[stack1[pstack1]][expression[pexpression].col].jump;
}
printf("\n");
for(i=0;i<ptempcode;i++)
{printf("  %d :  ",i);
 if(tempcode[i].opplace==100)
    {printf("[ goto , __ , __ , %d ]\n\n",tempcode[i].place3);
    }
 else
    {printf("[ %s ,",a[tempcode[i].opplace].str);
     {if(tempcode[i].class1==-1) printf(" 0 ,");
     else if(tempcode[i].class1==-2) printf(" 1 ,");
     else if(tempcode[i].class1==0) printf(" __ ,");
     else if(tempcode[i].class1==6) printf(" T%d ,",tempcode[i].place1);
     else if(tempcode[i].class1==4) printf(" %s ,",b[tempcode[i].place1].str);
     else printf(" %s ,",c[tempcode[i].place1].str);}     
     {if(tempcode[i].class2==0) printf(" __ ,");
     else if(tempcode[i].class2==6) printf(" T%d ,",tempcode[i].place2);
     else if(tempcode[i].class2==4) printf(" %s ,",b[tempcode[i].place2].str);
     else {printf(" %s ,",c[tempcode[i].place2].str);}}
     {if(tempcode[i].class3==100) printf(" %d ]\n\n",tempcode[i].place3);
     else {printf(" T%d ]\n\n",tempcode[i].place3);} }
    }
}
}




輸入
aa>=10 | b<c & (!a) #
回車 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费人成网站在线观看欧美高清| 337p亚洲精品色噜噜狠狠| 国产一区二区三区免费| 日日夜夜一区二区| 蜜桃精品视频在线| 国产美女娇喘av呻吟久久| 风间由美一区二区av101| 99精品国产视频| 欧美无砖专区一中文字| 日韩一区二区三区四区五区六区 | 久久综合色综合88| av午夜一区麻豆| 久久精品99国产精品日本| 国产精品资源网站| 成人av在线资源网| 色综合久久中文字幕综合网 | 亚洲欧洲综合另类| 午夜久久久影院| 国产福利精品一区| 91免费视频大全| 精品伦理精品一区| 亚洲日穴在线视频| 亚洲永久精品大片| 国产 日韩 欧美大片| 91福利资源站| 精品国产伦一区二区三区观看体验| 久久久精品黄色| 一区二区三区中文在线| 日本vs亚洲vs韩国一区三区二区 | 亚洲国产精品久久人人爱| 久久99久久久欧美国产| 成人一区二区视频| 欧美区视频在线观看| 国产日韩一级二级三级| 亚洲影视在线观看| 国产一区二区三区电影在线观看| 91视频www| 精品久久一区二区三区| 国产精品久久久久久久浪潮网站 | 国产一区二区在线电影| 成人高清视频免费观看| 色综合欧美在线| 精品国产网站在线观看| 亚洲人成伊人成综合网小说| 一区二区三区电影在线播| 首页国产欧美久久| av成人老司机| 久久久一区二区三区捆绑**| 午夜精品久久久久久久99水蜜桃| 国产xxx精品视频大全| 欧美丰满少妇xxxxx高潮对白| 日本一区二区三区国色天香| 亚洲成人黄色影院| 99re这里只有精品首页| 精品国产乱码久久久久久牛牛 | 亚洲成人福利片| 免费高清在线一区| 日韩综合在线视频| 一本久久精品一区二区| 亚洲精品一区二区在线观看| 亚洲午夜久久久久久久久久久| 国产成人精品综合在线观看 | 久久综合狠狠综合| 亚洲国产精品一区二区www在线| voyeur盗摄精品| 精品美女在线播放| 日韩和欧美一区二区| 91黄色免费网站| 国产精品网站在线观看| 玖玖九九国产精品| 在线免费观看一区| 国产精品妹子av| 国产精品一区二区在线播放| 日韩欧美一二三区| 天天综合网天天综合色| 91高清视频在线| 亚洲欧美日韩国产综合在线| 夫妻av一区二区| 精品久久久久99| 男人的天堂久久精品| 6080午夜不卡| 亚洲婷婷国产精品电影人久久| 国产毛片精品视频| 欧美性高清videossexo| 中文字幕在线播放不卡一区| 国产一区不卡在线| 国产亚洲欧美在线| 精品一区二区三区视频在线观看 | 日韩成人免费在线| 欧美私人免费视频| 亚洲成人先锋电影| 91黄色激情网站| 国产精品无人区| 国产呦精品一区二区三区网站| 日韩欧美一二三四区| 久久99精品久久久久久动态图| 在线综合视频播放| 日本欧美一区二区三区乱码| 777亚洲妇女| 美女国产一区二区三区| 久久综合九色综合欧美亚洲| 日韩不卡在线观看日韩不卡视频| 欧美一区二区精品| 国内精品写真在线观看| 久久久国产午夜精品| 高清视频一区二区| 综合色天天鬼久久鬼色| 欧美亚洲高清一区二区三区不卡| 亚洲精品乱码久久久久久| 欧美系列在线观看| 日韩在线a电影| 欧美tickling网站挠脚心| 天天综合色天天综合色h| 欧美色图天堂网| 日韩精品免费专区| 久久免费电影网| 99热精品国产| 视频在线观看一区| 亚洲成人黄色影院| 亚洲免费观看在线观看| 国产精品视频九色porn| 欧美久久一区二区| 欧洲一区二区三区在线| 精品视频在线免费看| 色综合天天综合狠狠| 色婷婷精品大在线视频| 99久久精品一区| av网站免费线看精品| 本田岬高潮一区二区三区| 国产精品一区二区三区四区 | 日韩欧美中文字幕制服| 欧美日韩久久一区| 日韩一区二区三区在线| 欧日韩精品视频| 欧美综合一区二区| 99久久精品一区| 色欧美日韩亚洲| 国产精品三级av在线播放| 日韩欧美高清一区| 欧美亚洲高清一区二区三区不卡| 91传媒视频在线播放| 8v天堂国产在线一区二区| 欧美三级在线看| 香蕉影视欧美成人| 日韩欧美区一区二| 5858s免费视频成人| 国产一区二区调教| 亚洲精品欧美综合四区| 91精品国产高清一区二区三区| 国产成人精品免费在线| 亚洲另类色综合网站| 亚洲精品在线观看视频| 色婷婷久久一区二区三区麻豆| 精品在线观看视频| 亚洲午夜视频在线| 欧美经典一区二区| 欧美军同video69gay| 成人v精品蜜桃久久一区| 日韩av一区二区三区| 国产精品系列在线| 精品国一区二区三区| 国产一区高清在线| 日韩成人午夜精品| 亚洲激情男女视频| 中文字幕一区av| 国产日韩精品一区| 久久久久久影视| 欧美va日韩va| 欧美大片拔萝卜| 日韩精品一区二区三区视频| 88在线观看91蜜桃国自产| 欧美少妇一区二区| 在线亚洲欧美专区二区| 色哟哟一区二区三区| 99国产精品视频免费观看| 不卡一卡二卡三乱码免费网站| 懂色av中文一区二区三区 | 欧美亚洲综合一区| 在线精品观看国产| 欧美在线三级电影| 欧美色图在线观看| 欧美日韩国产一区| 欧美日韩亚洲综合一区 | 欧美aa在线视频| 男男视频亚洲欧美| 久久se精品一区精品二区| 久久99国产精品尤物| 久久99国产精品成人| 国产中文字幕一区| 国产乱色国产精品免费视频| 国产精品1区2区3区在线观看| 国产91在线看| 99精品久久久久久| 在线观看亚洲一区| 欧美日韩电影在线| 日韩欧美视频在线| 久久久精品综合| 中文字幕亚洲综合久久菠萝蜜| 亚洲毛片av在线| 亚洲bt欧美bt精品777|