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

📄 example.java

📁 java 词法分析器,用于一般的C,C++,VB,PS/SQL 语句的翻译
💻 JAVA
字号:
package fri.patterns.interpreter.parsergenerator.syntax.builder.examples;import java.io.*;import fri.patterns.interpreter.parsergenerator.*;import fri.patterns.interpreter.parsergenerator.syntax.Syntax;import fri.patterns.interpreter.parsergenerator.syntax.builder.SyntaxBuilder;import fri.patterns.interpreter.parsergenerator.parsertables.LALRParserTables;/**	This example reads the SyntaxBuilder EBNF specification, builds	a lexer and parser from it, and parses its own specification with	these rules.		@author (c) 2002, Fritz Ritzberger*/public class Example{	public static void main(String [] args)	{		try	{			System.out.println("Input is: "+(args.length > 0 ? args[0] : "SyntaxBuilder.syntax"));			InputStreamReader in = args.length <= 0					? new InputStreamReader(Example.class.getResourceAsStream("SyntaxBuilder.syntax"))					: new InputStreamReader(new FileInputStream(args[0]));			SyntaxBuilder builder = new SyntaxBuilder(in);			Syntax syntax = builder.getSyntax();			System.out.println("Resolved syntax rules are: ==============");			System.out.println(syntax.toString());			// now lets see if we can parse the syntax specification text with its own syntax			in = args.length <= 0					? new InputStreamReader(Example.class.getResourceAsStream("SyntaxBuilder.syntax"))					: new InputStreamReader(new FileInputStream(args[0]));			Lexer lexer = builder.getLexer();			lexer.setInput(in);			lexer.setDebug(true);			Syntax parserSyntax = builder.getParserSyntax();			ParserTables parserTables = new LALRParserTables(parserSyntax);			Parser parser = new Parser(parserTables);			boolean ok = parser.parse(lexer);			if (ok == false)				throw new Exception("Failed parsing syntax specification text!");			else				System.out.println("SyntaxBuilder succeeded parsing its own syntax specification text!");		}		catch (Exception e)	{			e.printStackTrace();		}	}	}

⌨️ 快捷键说明

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