📄 word.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 + -