From 6f2d046c8d532db94f6af5003e341104d5bf4aff Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Sat, 6 Nov 2010 23:13:39 +0100
Subject: Renamed com.sun.gluegen -> com.jogamp.gluegen

---
 src/java/com/jogamp/gluegen/jgram/Test.java | 132 ++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100644 src/java/com/jogamp/gluegen/jgram/Test.java

(limited to 'src/java/com/jogamp/gluegen/jgram/Test.java')

diff --git a/src/java/com/jogamp/gluegen/jgram/Test.java b/src/java/com/jogamp/gluegen/jgram/Test.java
new file mode 100644
index 0000000..c890f67
--- /dev/null
+++ b/src/java/com/jogamp/gluegen/jgram/Test.java
@@ -0,0 +1,132 @@
+package com.jogamp.gluegen.jgram;
+
+import java.util.*;
+
+import java.io.*;
+// import antlr.collections.AST;
+import antlr.collections.impl.*;
+import antlr.debug.misc.*;
+import antlr.*;
+// import java.awt.event.*;
+
+class Test {
+
+	static boolean showTree = false;
+    public static void main(String[] args) {
+		// Use a try/catch block for parser exceptions
+		try {
+			// if we have at least one command-line argument
+			if (args.length > 0 ) {
+				System.err.println("Parsing...");
+
+				// for each directory/file specified on the command line
+				for(int i=0; i< args.length;i++) {
+					if ( args[i].equals("-showtree") ) {
+						showTree = true;
+					}
+					else {
+						doFile(new File(args[i])); // parse it
+					}
+				} }
+			else
+				System.err.println("Usage: java com.jogamp.gluegen.jgram.Test [-showtree] "+
+                                   "<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.getName(), new BufferedReader(new FileReader(f)));
+		}
+	}
+
+	// Here's where we do the real work...
+	public static void parseFile(String f, Reader r)
+								 throws Exception {
+		try {
+			// Create a scanner that reads from the input stream passed to us
+			JavaLexer lexer = new JavaLexer(r);
+			lexer.setFilename(f);
+
+			// Create a parser that reads from the scanner
+			JavaParser parser = new JavaParser(lexer);
+			parser.setFilename(f);
+
+			// start parsing at the compilationUnit rule
+			parser.compilationUnit();
+
+            Set set = parser.getParsedEnumNames();
+            System.out.println("Enums");
+            for(Iterator iter = set.iterator(); iter.hasNext(); ) {
+                String s = (String) iter.next();
+                System.out.println(s);
+            }
+            System.out.println("Functions");
+            set = parser.getParsedFunctionNames();
+            for(Iterator iter = set.iterator(); iter.hasNext(); ) {
+                String s = (String) iter.next();
+                System.out.println(s);
+            }
+			
+			// do something with the tree
+			//doTreeAction(f, parser.getAST(), parser.getTokenNames());
+		}
+		catch (Exception e) {
+			System.err.println("parser exception: "+e);
+			e.printStackTrace();   // so we can get stack trace		
+		}
+	}
+	
+    /*
+	public static void doTreeAction(String f, AST t, String[] tokenNames) {
+		if ( t==null ) return;
+		if ( showTree ) {
+			((CommonAST)t).setVerboseStringConversion(true, tokenNames);
+			ASTFactory factory = new ASTFactory();
+			AST r = factory.create(0,"AST ROOT");
+			r.setFirstChild(t);
+			final ASTFrame frame = new ASTFrame("Java AST", r);
+			frame.setVisible(true);
+			frame.addWindowListener(
+				new WindowAdapter() {
+                   public void windowClosing (WindowEvent e) {
+                       frame.setVisible(false); // hide the Frame
+                       frame.dispose();
+                       System.exit(0);
+                   }
+		        }
+			);
+			// System.out.println(t.toStringList());
+		}
+		JavaTreeParser tparse = new JavaTreeParser();
+		try {
+			tparse.compilationUnit(t);
+			// System.out.println("successful walk of result AST for "+f);
+		}
+		catch (RecognitionException e) {
+			System.err.println(e.getMessage());
+			e.printStackTrace();
+		}
+
+	} */
+}
+
-- 
cgit v1.2.3