⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 word.lst

📁 UCOS在C51上实现的两个例子
💻 LST
字号:
C51 COMPILER V7.50   WORD                                                                  04/11/2006 17:11:49 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE WORD
OBJECT MODULE PLACED IN word.OBJ
COMPILER INVOKED BY: D:\Keil C\C51\BIN\C51.EXE word.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //**********************************************************************************
   2          //杨屹    2002/08/20    第一版
   3          //词法分析程序(取词)
   4          //联系方法:gdtyy@ri.gdt.com.cn(2003/07/31以前有效)
   5          //**********************************************************************************
   6          #include <includes.h>
   7          
   8          bit GetWord(unsigned char *ComBuf,WORDTABLE *WordTable)
   9          {
  10   1              int i=0;        /*ComBuf String pointer*/
  11   1              int j=0;        /*Length of Word */
  12   1              int k=-1;       /*The number of WordTable*/
  13   1              int StrFlag=0;  /*There is "0-9/a-z/A-Z" before " ,()"*/
  14   1              int SentenceEndFlag=0;  /*Sentence end*/
  15   1              char ch;
  16   1      
  17   1              WordTable->Num=0;
  18   1              WordTable->LeftCurveNum=0;
  19   1              WordTable->RightCurveNum=0;
  20   1      
  21   1              ch=ComBuf[0];
  22   1              while(!SentenceEndFlag&&i<MaxLenComBuf){
  23   2                      if((ch>='0'&&ch<='9')||(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch=='.')){
  24   3                              if(StrFlag==0){
  25   4                                      StrFlag=1;k=k+1;j=0;
  26   4                                      if(k>=MaxLenWordTable) return 0;
  27   4                                      WordTable->wt[k].Str[j]=ch;
  28   4                                      WordTable->Num=k+1;
  29   4                              }
  30   3                              else{
  31   4                                      j=j+1;
  32   4                                      if(j>=MaxLenWord) return 0;
  33   4                      WordTable->wt[k].Str[j]=ch;
  34   4                              }
  35   3                      }
  36   2                      else if(ch==' '||ch==','||ch=='('||ch==')'||ch=='\0'){
  37   3                              if(ch=='(') WordTable->LeftCurveNum++;
  38   3                              if(ch==')') WordTable->RightCurveNum++;
  39   3                              if(StrFlag==1){
  40   4                                      StrFlag=0;j=j+1;
  41   4                                      WordTable->wt[k].Str[j]='\0';
  42   4                                      WordTable->wt[k].Length=j;
  43   4                              }
  44   3                              if(ch=='\0') SentenceEndFlag=1;
  45   3                      }
  46   2                      else{
  47   3                              return 0;
  48   3                      }
  49   2                      i=i+1;
  50   2                      ch=ComBuf[i];
  51   2              }
  52   1              if(i<MaxLenComBuf||ComBuf[MaxLenComBuf]=='\0'){
  53   2                      if(WordTable->LeftCurveNum==WordTable->RightCurveNum) return 1;
  54   2                      else return 0;
  55   2              }
C51 COMPILER V7.50   WORD                                                                  04/11/2006 17:11:49 PAGE 2   

  56   1              else{
  57   2                      return 0;
  58   2              }
  59   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    764    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      17
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -