scanner.h
来自「用C++语言在VC6.0环境下编写的小型c语言编译器」· C头文件 代码 · 共 59 行
H
59 行
// scanner.h: interface for the scanner class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SCANNER_H__3D856F03_4F43_45C7_82F9_33237896C414__INCLUDED_)
#define AFX_SCANNER_H__3D856F03_4F43_45C7_82F9_33237896C414__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include"stdio.h"
#include"stdlib.h"
#include"iostream.h"
#include"string.h"
#include"token.h"
#include "fstream.h"
#include "ctype.h"
#define FILENAME "d:\\source.txt"
#define FILENAME1 "d:\\sourceout09.txt"
#define MAXTOKEN 50 //字符最大长度
#define BUFLENTH 100 //每次读入缓冲区BUFFER的最大长度
typedef enum
{ START,INCOMMENT,INNUM,INID,INLTEQ,INGTEQ,INEQ,INNEQ,DONE}Statetype;
struct reservedwords
{ char * str;
TokenType tok;
} ;
class scanner
{
public:
int bufpos; //缓冲区中当前读取字符的位置
int linenum; //行号
int trbufsize;
char tokenstr[MAXTOKEN]; // 保存欲比较字符的数组
char buffer[BUFLENTH] ; // 缓冲区
FILE *fp;
FILE *fo;
token flag;
reservedwords rs[18];
scan();
token getToken();
//TokenType getToken();
foutput(FILE *f,TokenType tokentype,char *tokenstring);
TokenType LookupReserved(char *string);
backachar();
char readachar();
scanner();
virtual ~scanner();
};
#endif // !defined(AFX_SCANNER_H__3D856F03_4F43_45C7_82F9_33237896C414__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?