📄 lex.h
字号:
#if !defined(AFX_LEX_H__2DA56795_0D75_4081_837C_233894591973__INCLUDED_)
#define AFX_LEX_H__2DA56795_0D75_4081_837C_233894591973__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif
enum keyword{
identity=0,
//关键字
k_if=100,
k_of,
k_do,
k_to,
k_or,
k_var,
k_for,
k_end,
k_not,
k_and,
k_div,
k_mod,
k_type,
k_then,
k_else,
k_const,
k_begin,
k_while,
k_array,
k_downto,
k_record,
k_program,
k_function,
k_procedure,
//常量
c_true=200,
c_false,
c_integer,
c_real,
c_string,
c_char,
c_maxint,
//系统类型
t_integer=300,
t_char,
t_boolean,
t_real,
t_string,
//系统函数
f_abs=400,
f_sqr,
f_ord,
f_chr,
f_succ,
f_pred,
f_odd,
f_read,
f_readln,
f_write,
f_writeln,
//操作符和分隔符
o_plus=500,//+
o_minus,//-
o_ls,//<
o_le,//<=
o_gt,//>
o_ge,//>=
o_ne,//<>
o_eq,//=
o_lparent,//[
o_rparent,//]
o_lbracket,//(
o_rbracket,//)
o_comma,//,
o_semicolon,//;
o_period,//.
o_colon,//:
o_becomes,//:=
o_range,//..
o_time,//*
o_div///
};
typedef struct tuple{
keyword flag;
union DATA{
char c_val;
struct int_val{
int int_val1;
int int_val2;
}i_val;
double d_val;
}data;
}TUPLE;
extern TUPLE result_tuple;
extern int yy_linenum;
int lex();
#ifdef _DEBUG
void print_result(FILE*o=stdout);
#endif
#define LEX_NOTUPLE -1
#define LEX_END 0
#define LEX_SUCCESS 1
#define LEX_WITH_ERROR 2
#ifdef _DEBUG
#define LEX_MAX_IDENTITY 512
#else
#define LEX_MAX_IDENTITY 2048
#endif
//所有的字符串常量都保存在文件*.str中
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -