📄 scan.h
字号:
#ifndef SCAN_H_
#define SCAN_H_
#include <string>
#include <list>
using namespace std;
// Type of token
typedef enum {
ENDFILE,ERROR,
IF,ELSE,WHILE,RETURN,VOID,INT,
PLUS,MINUS,MUL,DIV,LT,LTEQ,GT,GTEQ,EQ,
NEQ,ASSIGN,SEMI,COMMA,LPAREN,RPAREN,
LSQUAR,RSQUAR,LBRACE,RBRACE,LCOMMENT,RCOMMENT,
ID,NUMBER
} TokenType;
//
// For token saving
typedef struct tokenunit{
TokenType token;
string tokenstring;
int lineno;
} TokenUnit;
// For reserve words saving
typedef struct{
char * word;
TokenType type;
} ReserveWordsUnit;
extern string TokenString;
extern TokenType token;
extern list<TokenUnit> tokenHist;
extern list<TokenUnit>::iterator tokenIt;
extern ReserveWordsUnit ReservedWords[10];
// DFA states
typedef enum{
INID,INNUM,INLTEQ,INGTEQ,INEQ,INNEQ,
INCOMMENT,START,DONE
} ScanState;
TokenType GetToken();
list<TokenUnit>::iterator Backup();
void Restore(list<TokenUnit>::iterator &it);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -