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

📄 main.cpp

📁 Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。并可产生语法分析树和对该树进行遍历
💻 CPP
字号:
#include <iostream>#include "antlr/CommonASTWithHiddenTokens.hpp"#include "antlr/CommonHiddenStreamToken.hpp"#include "InstrLexer.hpp"#include "InstrParser.hpp"#include "InstrTreeWalker.hpp"ANTLR_USING_NAMESPACE(std)ANTLR_USING_NAMESPACE(antlr)int main(int argc,char* argv[]){	InstrLexer lexer(cin);	lexer.setTokenObjectFactory(&CommonHiddenStreamToken::factory);	TokenStreamHiddenTokenFilter filter(lexer);	filter.hide(InstrParser::WS_);	filter.hide(InstrParser::SL_COMMENT);	InstrParser parser(filter);	parser.setASTNodeFactory(&CommonASTWithHiddenTokens::factory);	try {		// Parse the input statements		parser.slist();	}	catch(RecognitionException& e) {		cerr << "exception: " << e.what() << endl;	}	RefAST t = parser.getAST();	InstrTreeWalker walker;	walker.setFilter(filter);	try {		walker.slist(t);	}	catch(RecognitionException& e) {		cerr << "exception: " << e.what() << endl;	}}void InstrTreeWalker::setFilter(TokenStreamHiddenTokenFilter& filter_){	filter = &filter_;}/** walk list of hidden tokens in order, printing them out */void InstrTreeWalker::dumpHidden(RefToken t){	for ( ; t ; t=filter->getHiddenAfter(t) ) {		cout << t->getText();	}}void InstrTreeWalker::pr(RefAST p){	cout << p->getText();	dumpHidden(		(RefCommonASTWithHiddenTokens(p))->getHiddenAfter()	);}

⌨️ 快捷键说明

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