📄 parse.h
字号:
// Parse.h: interface for the CParse class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PARSE_H__5CAF52E3_CE9F_4B69_B246_269E6528B583__INCLUDED_)
#define AFX_PARSE_H__5CAF52E3_CE9F_4B69_B246_269E6528B583__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include "Error.h"
//定义语法分析类
class CParse
{
public:
CParse();
virtual ~CParse();
int match(int temp);
void advance();
CString returnError();
void PASCALparse();
//<program> → <declaration_list>BEGIN<statement_list>END.
void program();
//<declaration_list> → VAR<variable_list>:INTEGER; |ε
void declaration_list();
//<varible_list> →ID A
void varible_list();
//A → ,ID A |ε
void A();
//<statement_list> → <statement>B
void statement_list();
//B →;<statement_list> |ε
void B();
//<statement> → <assignment_stat> | <conditional_stat> | <while_stat> | <compound_stat>
void statement();
//<assignment_stat> → ID:=<arithmetic_expr>
void assignment_stat();
//<conditional_stat> → IF<relational_expr>THEN<statement>ELSE<statement>
void conditional_stat();
//<while_stat> → WHILE<relational_expr>DO<statement>
void while_stat();
//<compound_stat> → BEGIN<statement_list>END
void compound_stat();
//<arithmetic_expr> → <item>C
void arithmetic_expr();
//C → +<item> | -<item> |ε
void C();
//<item> → <factor>D
void item();
//D → *<factor> | /<factor> |ε
void D();
//<factor> → ID | NUM | (<arithmetic_expr>)
void factor();
//<relational_expr> → <arithmetic_expr><<arithmetic_expr>
//<relational_expr> → <arithmetic_expr><=<arithmetic_expr>
//<relational_expr> → <arithmetic_expr>==<arithmetic_expr>
//<relational_expr> → <arithmetic_expr>><arithmetic_expr>
//<relational_expr> → <arithmetic_expr>>=<arithmetic_expr>
//<relational_expr> → <arithmetic_expr><><arithmetic_expr>
void relational_expr();
private:
char tokenSign[40]; //保存单词符号
char tokenValue[40]; //保存单词的值
CError mErr;
CString mStr[20];
int flag;
};
#endif // !defined(AFX_PARSE_H__5CAF52E3_CE9F_4B69_B246_269E6528B583__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -