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

📄 cstylecommentstrip.java

📁 java 词法分析器,用于一般的C,C++,VB,PS/SQL 语句的翻译
💻 JAVA
字号:
package fri.patterns.interpreter.parsergenerator.lexer.examples;import java.io.*;import fri.patterns.interpreter.parsergenerator.Token;import fri.patterns.interpreter.parsergenerator.Lexer;import fri.patterns.interpreter.parsergenerator.syntax.*;import fri.patterns.interpreter.parsergenerator.lexer.*;import fri.patterns.interpreter.parsergenerator.syntax.builder.SyntaxSeparation;/**	Sample for a Lexer built from blocks of StandardLexerRules.	Removes comments from Java/C source.	@author (c) 2002, Fritz Ritzberger*/public class CStyleCommentStrip{	private static Lexer lexer;		static	{		try	{			String [][] rules = {				{ Token.TOKEN, "others" },	// define what we want to receive				{ Token.TOKEN, "`stringdef`" },	// need this rule, as string definitions could contain comments				{ Token.IGNORED, "`cstylecomment`" },				{ "others", "others", "other" },				{ "others", "other" },				{ "other", "`char`", Token.BUTNOT, "`cstylecomment`", Token.BUTNOT, "`stringdef`" },			};				Syntax syntax = new Syntax(rules);	// LexerBuilder makes unique			SyntaxSeparation separation = new SyntaxSeparation(syntax);			LexerBuilder builder = new LexerBuilder(separation.getLexerSyntax(), separation.getIgnoredSymbols());			lexer = builder.getLexer();			//lexer.setDebug(true);	// dumps scanner consumer lists			lexer.setTerminals(separation.getTokenSymbols());		}		catch (Exception e)	{			e.printStackTrace();		}	}			/**		Stripping C-style comments from an input reader and writing to output writer.		Both in and out get closed when finished.	*/	public CStyleCommentStrip(Reader in, Writer out)		throws LexerException, IOException	{		try	{			lexer.setInput(in);			Token t;			do	{				t = lexer.getNextToken(null);								if (t.symbol == null)					lexer.dump(System.err);				else				if (t.text != null)					out.write(t.text.toString());			}			while (t.symbol != null && Token.isEpsilon(t) == false);		}		finally	{			try	{ in.close(); } catch (Exception e)	{ e.printStackTrace(); }			try	{ out.close(); } catch (Exception e)	{ e.printStackTrace(); }		}	}	/** Example implementation: Stripping C-style comments from Java files, passed as arguments. */	public static void main(String [] args)	{		if (args.length <= 0)	{			System.err.println("SYNTAX: java "+CStyleCommentStrip.class.getName()+" file.java [file.java ...]");			System.err.println("	Strips // C-style /* comments */ from C/Java sources.");		}		else	{			try	{				for (int i = 0; i < args.length; i++)	{					PrintWriter out = new PrintWriter(System.out);					Reader in = new BufferedReader(new FileReader(args[i]));					new CStyleCommentStrip(in, out);				}			}			catch (Exception e)	{				e.printStackTrace();			}		}	}}

⌨️ 快捷键说明

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