[antlr-interest] Re: Java Cross Referencing Tool (Alpha Release)

salgavkar salgavkar at yahoo.com
Tue Mar 2 07:58:50 PST 2004


Hi Jim,

It worked automagically. Thanks a lot. I need it for this 
refactoring plug-in that i want to develop, though i havent decided 
the IDE yet. Do let me know if you happen to know of any usefull 
links.

Thanks again.

Salgavkar


--- In antlr-interest at yahoogroups.com, "Jim O'Connor" 
<Jim.OConnor at m...> wrote:
> To download the zip file, go to
>  
> http://www.antlr.org/share/list <http://www.antlr.org/share/list> 
>  
> Introduction
> This is the alpha release of the Java Cross Reference Tool (uses 
ANTLR
> 2.7.2).  It is based on Terence's tool in the file sharing 
section.  To
> review its roots you can take a look at www.antlr.org/share/list
> <http://www.antlr.org/share/list> .  There have been many 
improvements and
> additions.  The goal is to have another release in the future that 
improves
> the code and streamlines the "get up and running" process.  There 
might be a
> few bug fixes, as well. :0) 
>  
> Overview
> Input: *.java files, jar files, or a directory structure
>  
> Output:  An XML document with a hierarchical representation of 
packages,
> classes and references.  The MyOutput class regulates the output 
location of
> the XML file.  The name is controlled in the CodeProject class 
(currently
> "null").  MyOutput has methods to control output when references 
are
> resolved.
>  
> Installation and execution
>  
>  The process will be streamlined.  The manual installation forces 
the user
> to become familiar necessary configuration steps that could be 
overlooked.  
> Assumptions: Java JDK and Antlr 2.7.2 is installed.  An older 
java.g 1.3 is
> used.  Recent patches have not been integrated.
>  
> 1.	Download JavaCrossRef.zip 
>  
> 2.	Unzip to c:\  (this will create the c:\antlr.xref directory
> structure) 
>  
> 3.	cd to the c:\antlr.xref\src\org\antlr\java\crossref 
subdirectory 
>  
> 4.	To generate the necessary files run the following commands 
(My path
> includes "c:\j2sdk1.4.2_01\bin"; and my full classpath is
> ".;c:\antlr-2.7.2\antlr.jar") 
> A.  java antlr.Tool java.g
> a.   Creates JavaRecognizer.java, JavaLexer.java, 
JavaTokenTypes.java and
> JavaTokenTypes.txt
> B.  java antlr.Tool javatree.g
> a.   Creates JavaTreeParser.java, JavaTreeParserTokenTypes.java and
> JavaTreeParserTokenTypes.txt
> C.  java antlr.Tool -glib javaTree.g defs.g 
> a.   Creates JavaDefsTreeParser.java, 
JavaTreeDefsParserTokenTypes.java and
> JavaTreeDefsParserTokenTypes.txt
> b.   Warnings will result for rule 
JavaDefsTreeParser.packageDefinition and
> Rule 'identifier' returning a value
> D.  java antlr.Tool -glib javaTree.g prerefs.g
> a.   Creates JavaPreRefsTreeParser.java,
> JavaTreePreRefsParserTokenTypes.java and 
JavaTreePreRefsParserTokenTypes.txt
> b.   Warnings result for packageDefinition, typeSpec, 
typeSpecArray, type,
> extendsClasue, implementsClause, parameterDef, variableDeclarator,
> methodHead, identifier, newExpression and
> 'identifier'-'parameterDef'-'typeSpecArray'-'typeSpec'-
newExpression'
> returns a value
> E.  java antlr.Tool -glib javaTree.g refs.g
> a.   Creates JavaRefsTreeParser.java, 
JavaTreeRefsParserTokenTypes.java and
> JavaTreeRefsParserTokenTypes.txt
> b.   Lots more warning messages
>  
> 5.	Before compiling the files you should edit a few of the 
files to
> control the output 
> A.  In CodeProject.java, a few fields are "user configurable" and 
can be
> modified
> a.   protected String name = null; null can be changed to name the 
current
> project.  Otherwise the xml file will get the name "null.xml".
> b.   static final boolean saveReferences = true;  when set 
to "true" all
> references are saved to the CodeProject hierarchical information 
model by
> methods in the refElement(), refMethod(), and refClass() methods. 
If you
> only want your project structure in the XML file, set to "false".
> c.   static final boolean printDebug = false;  There is a large 
amount of
> debug "System.out.println()" calls in the Scope classes.  The 
printDebug
> flag in CodeProject is a global flag to enable or disable the 
possibility
> for all of these messages.  When printDebug is set to true in the
> CodeProject class, you must go to the individual class files to 
turn on
> messages. Other classes with the printDebug flag are ClassScope,
> CodeBlockScope, DebugStack (commented out in defs.g, prerefs.g, 
and refs.g),
> FileScope, and ParameterScope.
> B.  In MyOutput.java, final static String OUTPUTDIR = "./"; set 
the output
> directory (OUTPUTDIR), or leave as the current directory (".\")
>  
> 6.	Compile the *.java files with the following commands 
> 7.	A. javac *.java (or whatever compiler you use) 
> 8.	test run 
> A.  cd c:\antlr.xref\src
> B.  "java org.antlr.java.crossref.Main" should produce usage 
message "Usage:
> Main (directory or filename)"
> C.   
> 9.	Another test with real data 
> A.  "java org.antlr.java.crossref.Main
> org\antlr\java\crossref\location.java"
> B.  This will produce many messages to the console in addition to 
a 70k xml
> file to the current directory named "null.xml"
> C.  I'll go back and set saveReference = false and recompile and 
re-run.
> D.  I still get all the messages but the xml file is now 9k, but 
it contains
> no reference information.  It just contains the 
package/class/field/method
> structure.  This is good for structure analysis but not for seeing 
which
> classes reference others.
>  
>  
> Credits
>  
> All "borrowed" classes are from the open source community.  I have 
no
> obligation to give credit to these sources.  However, their 
mention will
> give credit where I think it is due.  
>  
> K files
>  
> The "K" files are used to read the input stream from a "*.class" 
file,
> extracting the relevant information.  They are used with minor 
modification,
> mostly to the javadoc section.  These files are the work of 
Kimberley
> Burchett. "Class loading" the files was a short bad idea.  Thanks 
for saving
> me some time, Kimberly!  I kept the class file writer with the 
code for
> those of you who want to do some obfuscation work.
>  
> http://www.kimbly.com/code/classfile/
> <http://www.kimbly.com/code/classfile/> 
>  
> Location AST help
>  
> I read the antlraux site to help with the LocationAST work.
>  
> http://antlraux.sourceforge.net/ 
<http://antlraux.sourceforge.net/> 
>  
> Java Cross Reference Tool
>  
> Antlr and the structure for the tool are based on the work of 
Terence Parr.
> You should be versed in Antlr basics to use this tool. 
(www.antlr.org
> <http://www.antlr.org/> )
>  
> To Do List
> 1. Reduce size of XML document
> 2. Revisit order of imports and "Classpath order".
> 3. Upgrade java.g
> 4. Streamline installation
> 5. Reorganize the user options
> 6. Redo Location information.  Problem finding files based on XML
> information.
> 7. Bugs
>  
> Jim OConnor
> Jim.OConnor at m...
>  
>  
>   _____  
> 
> Yahoo! Groups Links
> *	To visit your group on the web, go to:
> http://groups.yahoo.com/group/antlr-interest/
> <http://groups.yahoo.com/group/antlr-interest/> 
>   
> *	To unsubscribe from this group, send an email to:
> antlr-interest-unsubscribe at yahoogroups.com
> <mailto:antlr-interest-unsubscribe at yahoogroups.com?
subject=Unsubscribe> 
>   
> *	Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service
> <http://docs.yahoo.com/info/terms/> . 
> 
> 
_____________________________________________________________________
___
> This e-mail has been scanned for viruses by MCI's Internet Managed 
Scanning
> Services - powered by MessageLabs. For further information visit
> http://www.mci.com
> 
_____________________________________________________________________
___
> 
> 
_____________________________________________________________________
___
> This e-mail has been scanned for viruses by MCI's Internet Managed 
Scanning
> Services - powered by MessageLabs. For further information visit
> http://www.mci.com
> 
_____________________________________________________________________
___



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
     http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
     antlr-interest-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
     http://docs.yahoo.com/info/terms/
 



More information about the antlr-interest mailing list