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

📄 dtdlexer.java

📁 java 词法分析器,用于一般的C,C++,VB,PS/SQL 语句的翻译
💻 JAVA
字号:
package fri.patterns.interpreter.parsergenerator.examples;import java.io.*;import fri.util.TimeStopper;import fri.patterns.interpreter.parsergenerator.builder.SerializedLexer;import fri.patterns.interpreter.parsergenerator.lexer.*;import fri.patterns.interpreter.parsergenerator.syntax.*;import fri.patterns.interpreter.parsergenerator.syntax.builder.*;/**	Example DTD parser. Shows how to import unresolved nonterminals from another syntax (XML).		@author Fritz Ritzberger, 2003*/public class DtdLexer{	public static void main(String [] args)		throws Exception	{		if (args.length <= 0)	{			System.err.println("SYNTAX: java "+DtdLexer.class.getName()+" file.dtd [file.dtd ...]");			System.err.println("	Example DTD Parser");			System.exit(1);		}		TimeStopper timer = new TimeStopper();		SerializedLexer builder = new SerializedLexer();		LexerImpl lexer;				if ((lexer = (LexerImpl) builder.readLexer(null, "Dtd")) == null)	{	// try to get serialized lexer			// read the DTD syntax (fragment) from EBNF file			Syntax dtdSyntax = new SyntaxBuilder(new InputStreamReader(DtdLexer.class.getResourceAsStream("Dtd.syntax"))).getSyntax();			// read the XML syntax from EBNF file			Syntax xmlSyntax = new SyntaxBuilder(new InputStreamReader(DtdLexer.class.getResourceAsStream("Xml.syntax"))).getSyntax();						// resolve DTD syntax from XML syntax (which contains most of DTD rules for processing embedded DTDs)			dtdSyntax.resolveFrom(xmlSyntax);			//System.err.println("DTD Syntax is:\n"+dtdSyntax);						// put the lexer to file cache for next call			SyntaxSeparation separation = new SyntaxSeparation(dtdSyntax);			lexer = (LexerImpl) builder.buildAndStoreLexer(	// store the lexer for next call					separation.getLexerSyntax(),					"Dtd",					separation.getTokenSymbols(),					separation.getIgnoredSymbols());		}		System.err.println("time to build DTD file parser was "+timer.getInterval());		for (int i = 0; i < args.length; i++)	{			String parseFile = args[i];			FileReader parseInput = new FileReader(parseFile);			lexer.setInput(parseInput);						System.err.println("======================== Parsing: "+parseFile+" ========================");			boolean ok = lexer.lex(new XmlLexer.PrintXmlLexerSemantic());			System.err.println("========================================================");						System.err.println("Lexing took "+timer.getInterval()+" millis.");			System.err.println("Result was: "+ok);		}	}}

⌨️ 快捷键说明

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