⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constdef.h

📁 PL/0语言的词法分析
💻 H
字号:
//here define the const 
//for the word analyse

#if !defined(_CONSTDEF_H__60F3C9EA_875F_4CC2_82C6_4DB3EBAE2931__INCLUDED_)
#define _CONSTDEF_H__60F3C9EA_875F_4CC2_82C6_4DB3EBAE2931__INCLUDED_

#include "stdafx.h"

#define MAXIDLEN   10     // length of identifiers
#define MAXNUMLEN  14     // maximum number of digits in numbers

enum symtype
{
	SYM_NULL,            // 0

	//SYM TYPE
	SYM_IDENTIFIER,      // 1	
	SYM_NUMBER,          // 2

	//one char operator
	SYM_PLUS,            // 3	+
	SYM_MINUS,           // 4	-
	SYM_TIMES,           // 5	*
	SYM_SLASH,           //		/
	SYM_EQU,             //		=
	SYM_LPAREN,          // 8	(
	SYM_RPAREN,          //		)
	SYM_COMMA,           //	10	,
	SYM_SEMICOLON,       //		;
	SYM_PERIOD,          //	12	.

	SYM_LES,             //		< 
	SYM_NEQ,             //	14	<>
	SYM_LEQ,             //		<=

	SYM_GTR,             //	16	>
	SYM_GEQ,             //		>=

	SYM_BECOMES,         // 18	:=

	//keyword ,also order increasely, 
		//same as below array keyword[]

	SYM_BEGIN,           // 19	begin
	SYM_CALL,            // 20	call
	SYM_CONST,           //		const
	SYM_DO,              //		do
	SYM_END,             //		end
	SYM_IF,              //		if
	SYM_ODD,             //		odd
	SYM_PROCEDURE,       //	26	procedure
	SYM_READ,			 //		ead
	SYM_THEN,            //		then
	SYM_VAR,             //		var
	SYM_WHILE,           //		while
	SYM_WRITE			 // 31	write
};
const char* const keyword[]={	// increasely ordered
	"begin",	// 0
	"call",		// 1
	"const",	// 2
	"do",		// 3
	"end",		// 4
	"if",		// 5
	"odd",		// 6
	"procedure",// 7
	"read",		// 8
	"then",		// 9
	"var",		// 10
	"while",	// 11
	"write"		// 12
};
const int wsym[] =
{
	SYM_BEGIN,           //	19	begin
	SYM_CALL,            //		call
	SYM_CONST,           //		const
	SYM_DO,              //	22	do
	SYM_END,             //		end
	SYM_IF,              //		if
	SYM_ODD,             //	25	odd
	SYM_PROCEDURE,       //		procedure
	SYM_READ,			 //		read
	SYM_THEN,            //	28	then
	SYM_VAR,             //		var
	SYM_WHILE,           //		while
	SYM_WRITE			 // 31	write
};
const int keywordNum = sizeof(keyword)/sizeof(keyword[0]);

struct symblock{
	int type;
	char id[MAXNUMLEN + 1];
	int ln;
	int col;

	symblock();
};
extern symblock curSym;

extern char ch;					// last character read
//extern char[20] word;			// last character read


extern FILE *outfile;
extern ifstream infile;

#endif // !defined(_CONSTDEF_H__60F3C9EA_875F_4CC2_82C6_4DB3EBAE2931__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -