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

📄 mycode.hpp

📁 C Preprocessor,antlr的grammar语言描述,用于学习词法分析,语法分析
💻 HPP
字号:
/* 1999-2007 Version 3.2 November 2007
 * Constructed by David Wigg at London South Bank University for CPP_parser.g
 *
 * The MyCode files just demonstrate how your application code can
 *	 be included as a subclass of the CPPParser class
 *
 * See MyReadMe.txt for further information
 *
 * This file is best viewed in courier font with tabs set to 4 spaces
*/

#ifndef INC_MyCode_hpp_
#define INC_MyCode_hpp_

#include <iostream>
#include <time.h>

#include "CPPParser.hpp"

ANTLR_USING_NAMESPACE(std)

CPPParser parser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);

#define SYS_FUNS_LIMIT 100
#define MAX_VAR_LENGTH 50
#define MAX_FUN_NAME_LEN 15

class MyCode : public CPPParser
	{
public:
//  Constructor
	MyCode(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);

//	Destructor
	~MyCode();
	
// Mycode functions in main.cpp
	void myCode_pre_processing(int argc, char *argv[]);
	void myCode_post_processing(void);

// MyCode functions in CPP_parser.g
// The end of the name is the name of the production where it is called from
protected:
	void myCode_end_of_stmt();
	void myCode_function_direct_declarator(const char *);
	void myCode_declaration();
	void myCode_init_declarator();
	void myCode_direct_declarator(char *id);
	void myCode_labelled_statement();
	void myCode_case_statement();
	void myCode_selection_statement(int x);
	void myCode_iteration_statement(int x);
	void myCode_unary_operator();
	void myCode_id_expression();

private:
	int myLog;	// Can be used to produce selective MyCode output in
				//  filename.log for testing or verification
				// 1 = standard log data designed to detect any significant change
				//		between one version and the next when run on the same data
				// Use higher numbers for any occasional special testing or verification

	CPPSymbol *cs;	// Local variable for MyCode

	bool process_all_files;

	int function_number;

	char current_function[MAX_VAR_LENGTH]; /* current function name */
	int current_fun_scope;
	
	// For name of input file
	char my_input_file[127];	// Name of input file
	
	// A file to contain application summary output
	FILE *myDatFilePtr;
	char my_dat_file[127];	// Name of summary file

	// A file to contain application code output
	FILE *myLisFilePtr;
	char my_lis_file[127];	// Name of application data file

	// Optional file to contain application log data controlled by myLog
	//  switch in MyCode constructor
	FILE *myLogFilePtr;
	char my_log_file[127];	// Name of version log file

	char var[MAX_VAR_LENGTH];	// Current variable name

	time_t now; // = time(NULL);  // See Joy of C p.618
	};

#endif INC_MyCode_hpp_

⌨️ 快捷键说明

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