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

📄 main.cpp

📁 Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。并可产生语法分析树和对该树进行遍历
💻 CPP
字号:
#include "DemoJavaLexer.hpp"#include "DemoJavaDocLexer.hpp"#include "DemoJavaParser.hpp"#include "antlr/TokenStreamSelector.hpp"#include <iostream>int main(){	ANTLR_USING_NAMESPACE(std)	ANTLR_USING_NAMESPACE(antlr)	// Define a selector that can switch from java to javadoc	TokenStreamSelector selector;	try {		// attach java lexer to the input stream, which also creates a shared input state object		DemoJavaLexer main(cin);		main.setSelector(&selector);		// create javadoc lexer; attach to same shared input state as java lexer		DemoJavaDocLexer doclexer(main.getInputState());		doclexer.setSelector(&selector);		// notify selector about various lexers; name them for convenient reference later		selector.addInputStream(&main, "main");		selector.addInputStream(&doclexer, "doclexer");		selector.select("main"); // start with main java lexer		// Create parser attached to selector		DemoJavaParser parser(selector);		// Pull in one or more int decls with optional javadoc		parser.input();		// spin thru all tokens generated via the SELECTOR.		RefToken t;		while ( (t=selector.nextToken())->getType()!=Token::EOF_TYPE ) {			cout << t->toString() << endl;		}	}	catch(exception& e) {		cerr << "exception: " << e.what() << endl;	}}

⌨️ 快捷键说明

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