?? getsym.h
字號:
/*
詞法分析內核程序 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 //最大符號量
#define MAX_SYMFORM 1024 //最大符號表長度
#define MAX_NUMFORM 4096 //最大常數表長度
#define MAX_SYMLEN 31 //最大符號長度
#define MAX_NUMLEN 10 //最大常數長度
#define MAX_BUFFER MAX_SYMLEN+1//最大緩沖長度
#define MAX_KEYWORD 27 //關鍵字數量
#define MAX_OPWORDA 8 //單字運算符數量
#define MAX_OPWORDB 4 //雙字運算符數量
#define MAX_ENDWORD 8 //單字界符數量
#define MAX_ERROR 5 //錯誤類型數量
#define TYPE_KEYWORD 1 //關鍵字類型號
#define TYPE_SYMBOL 2 //符號類型號
#define TYPE_NUMBER 3 //常量類型號
#define TYPE_OPWORD 4 //運算符類型號
#define TYPE_ENDWORD 5 //界符類型號
#define TYPE_ERROR -1 //錯誤類型號
#define ERR_OVERSYMLEN 1 //以下是一般錯誤號
#define ERR_OVERNUMLEN 2
#define ERR_NUMBER 3
#define ERR_WRONGOP 4
#define ERR_OVERSYMFORM 10001 //以下是嚴重錯誤號
#define ERR_OVERNUMFORM 10002
#define ERR_OVERSYMNUM 10003
#define ERR_OVERERRNUM 10004
#ifdef __cplusplus
extern "C" {
#endif
struct SYM //符號描述結構體(含錯誤描述結構)
{
int type; //類型號(0:錯誤)
int id; //ID號(錯誤值)
int line; //所在行數
// int no; //SYM編號/列號
char name[MAX_SYMLEN+1]; //所取的詞
};
struct FORM //表格結構體
{
int symnum;
int numnum;
struct SYMF //符號表項結構體
{
int id;
char name[MAX_SYMLEN+1];
}symf[MAX_SYMFORM];
struct NUMF //常量表項結構體
{
int id;
char name[MAX_NUMLEN+1];
}numf[MAX_NUMFORM];
};
struct SYMINFO //詞法分析信息結構體
{
int num;
struct SYM sym[MAX_SYM];
struct FORM form;
};
//取詞函數(返回讀字符數量,如果是0則表示結束,lin表示當前行數)
int __stdcall getsym(const char *in,struct SYM *out,int *ln,struct FORM *form);
//取所有詞函數(正常返回0,否則返回嚴重錯誤號)
int __stdcall getsyminfo(const char *in,struct SYMINFO *out);
#ifdef __cplusplus
}
#endif
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -