?? getsym.h
字號(hào):
/*
詞法分析內(nèi)核程序 0.28 (2003.10.19) [聲明文件]
作者:Dwing
Old version:
0.1:Buffer Engine(Get all symbol once).
0.2:Scan Engine(Get one symbol once).
0.25:Combine Sym & Err Struct.
0.26:Turn CPP to C.
0.27:Add some extend keywords.
0.28:Bugs fixed.
*/
#ifndef _GETSYM_H_
#define _GETSYM_H_
#include <stdlib.h> //For memset()
#include <string.h> //For strcpy()
#define ISLETTER(c) ((c)>='A'&&(c)<='Z'||(c)>='a'&&(c)<='z')
#define ISNUMBER(c) ((c)>='0'&&(c)<='9')
#define ISCHAR(c) ((c)>=33 &&(c)<=126)
#define MAX_SYM 32768 //最大符號(hào)量
#define MAX_SYMFORM 1024 //最大符號(hào)表長度
#define MAX_NUMFORM 4096 //最大常數(shù)表長度
#define MAX_SYMLEN 31 //最大符號(hào)長度
#define MAX_NUMLEN 10 //最大常數(shù)長度
#define MAX_BUFFER MAX_SYMLEN+1//最大緩沖長度
#define MAX_KEYWORD 27 //關(guān)鍵字?jǐn)?shù)量
#define MAX_OPWORDA 8 //單字運(yùn)算符數(shù)量
#define MAX_OPWORDB 4 //雙字運(yùn)算符數(shù)量
#define MAX_ENDWORD 8 //單字界符數(shù)量
#define MAX_ERROR 5 //錯(cuò)誤類型數(shù)量
#define TYPE_KEYWORD 1 //關(guān)鍵字類型號(hào)
#define TYPE_SYMBOL 2 //符號(hào)類型號(hào)
#define TYPE_NUMBER 3 //常量類型號(hào)
#define TYPE_OPWORD 4 //運(yùn)算符類型號(hào)
#define TYPE_ENDWORD 5 //界符類型號(hào)
#define TYPE_ERROR -1 //錯(cuò)誤類型號(hào)
#define ERR_OVERSYMLEN 1 //以下是一般錯(cuò)誤號(hào)
#define ERR_OVERNUMLEN 2
#define ERR_NUMBER 3
#define ERR_WRONGOP 4
#define ERR_OVERSYMFORM 10001 //以下是嚴(yán)重錯(cuò)誤號(hào)
#define ERR_OVERNUMFORM 10002
#define ERR_OVERSYMNUM 10003
#define ERR_OVERERRNUM 10004
#ifdef __cplusplus
extern "C" {
#endif
struct SYM //符號(hào)描述結(jié)構(gòu)體(含錯(cuò)誤描述結(jié)構(gòu))
{
int type; //類型號(hào)(0:錯(cuò)誤)
int id; //ID號(hào)(錯(cuò)誤值)
int line; //所在行數(shù)
// int no; //SYM編號(hào)/列號(hào)
char name[MAX_SYMLEN+1]; //所取的詞
};
struct FORM //表格結(jié)構(gòu)體
{
int symnum;
int numnum;
struct SYMF //符號(hào)表項(xiàng)結(jié)構(gòu)體
{
int id;
char name[MAX_SYMLEN+1];
}symf[MAX_SYMFORM];
struct NUMF //常量表項(xiàng)結(jié)構(gòu)體
{
int id;
char name[MAX_NUMLEN+1];
}numf[MAX_NUMFORM];
};
struct SYMINFO //詞法分析信息結(jié)構(gòu)體
{
int num;
struct SYM sym[MAX_SYM];
struct FORM form;
};
//取詞函數(shù)(返回讀字符數(shù)量,如果是0則表示結(jié)束,lin表示當(dāng)前行數(shù))
int __stdcall getsym(const char *in,struct SYM *out,int *ln,struct FORM *form);
//取所有詞函數(shù)(正常返回0,否則返回嚴(yán)重錯(cuò)誤號(hào))
int __stdcall getsyminfo(const char *in,struct SYMINFO *out);
#ifdef __cplusplus
}
#endif
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -