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

📄 input

📁 antlr最新版本V3源代码
💻
字号:
import java.io.*;import org.antlr.runtime.*;/** Parse a java file or directory of java files using the generated parser *  ANTLR builds from java.g */class Main {	static CommonTokenStream tokens = new CommonTokenStream();    public static void main(String[] args) {		try {			if (args.length > 0 ) {				// for each directory/file specified on the command line				for(int i=0; i< args.length;i++) {					doFile(new File(args[i])); // parse it				}			}			else {				System.err.println("Usage: java Main <directory or file name>");			}		}		catch(Exception e) {			System.err.println("exception: "+e);			e.printStackTrace(System.err);   // so we can get stack trace		}	}	// This method decides what action to take based on the type of	//   file we are looking at	public static void doFile(File f)							  throws Exception {		// If this is a directory, walk each file/dir in that directory		if (f.isDirectory()) {			String files[] = f.list();			for(int i=0; i < files.length; i++)				doFile(new File(f, files[i]));		}		// otherwise, if this is a java file, parse it!		else if ((f.getName().length()>5) &&				f.getName().substring(f.getName().length()-5).equals(".java")) {			System.err.println("   "+f.getAbsolutePath());			// parseFile(f.getName(), new FileInputStream(f));			parseFile(f.getAbsolutePath());		}	}	// Here's where we do the real work...	public static void parseFile(String f)								 throws Exception {		try {			// Create a scanner that reads from the input stream passed to us			JavaParserLexer lexer = new JavaParserLexer(new ANTLRFileStream(f));			//tokens.discardOffChannelTokens(true);			tokens.setTokenSource(lexer);			/*			long t1 = System.currentTimeMillis();			tokens.LT(1);			long t2 = System.currentTimeMillis();			System.out.println("lexing time: "+(t2-t1)+"ms");			*/			//System.out.println(tokens);			// Create a parser that reads from the scanner			JavaParser parser = new JavaParser(tokens);			// start parsing at the compilationUnit rule			parser.compilationUnit();					}		catch (Exception e) {			System.err.println("parser exception: "+e);			e.printStackTrace();   // so we can get stack trace				}	}	}

⌨️ 快捷键说明

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