sidekick.enhanced
Class SourceParser

java.lang.Object
  extended by sidekick.SideKickParser
      extended by sidekick.enhanced.SourceParser
All Implemented Interfaces:
PartialParser

public class SourceParser
extends SideKickParser
implements PartialParser

SourceParser: parses source and builds a sidekick structure tree Parsers are based on regular expressions and will therefore not able to correctly parse irregular source

Version:
$Revision: 13298 $
Author:
Martin Raspe

Nested Class Summary
protected  class SourceParser.AssetComparator
           
 class SourceParser.PackageComparator
           
 class SourceParser.PackageMap
           
 
Field Summary
protected  SourceAsset _asset
           
protected  javax.swing.text.Position _end
           
protected  int _lastLineNumber
           
protected  SourceAsset _pkgAsset
           
protected  javax.swing.text.Position _start
           
 java.lang.String COMMENT
           
 javax.swing.ImageIcon COMMENT_ICON
           
protected  java.util.ArrayList commentList
           
protected  SideKickParsedData data
           
 java.lang.String LINE_COMMENT
           
 java.lang.String MAIN
           
 javax.swing.ImageIcon PACKAGE_ICON
           
 javax.swing.ImageIcon PACKAGE_INVALID_ICON
           
protected  SourceParser.PackageMap packages
           
 java.lang.String PKG_KEY
           
protected  int startLine
           
 javax.swing.ImageIcon SUB_ICON
           
 javax.swing.ImageIcon SUB_INVALID_ICON
           
 java.lang.String SUB_KEY
           
 java.lang.String USE
           
 javax.swing.ImageIcon USE_ICON
           
 javax.swing.ImageIcon USE_INVALID_ICON
           
 java.lang.String USE_KEY
           
 
Fields inherited from class sidekick.SideKickParser
name, SERVICE
 
Constructor Summary
SourceParser(java.lang.String name)
          Constructs a new SourceParser object
SourceParser(java.lang.String name, java.lang.Class cls)
           
 
Method Summary
protected  void addAsset(java.lang.String typ, java.lang.String p, java.lang.String name, int lineNo, javax.swing.text.Position start)
           
protected  void addCommentAsset(java.lang.String name, int lineNo, javax.swing.text.Position start)
           
protected  void addLineAsset(java.lang.String typ, java.lang.String p, java.lang.String name, int lineNo, javax.swing.text.Position start, javax.swing.text.Position end)
           
protected  void addList(javax.swing.tree.DefaultMutableTreeNode t, java.util.ArrayList list, javax.swing.ImageIcon icon)
           
protected  void addPackageAsset(java.lang.String name, int lineNo, javax.swing.text.Position start)
           
protected  void buildTrees()
           
protected  void completeAsset(javax.swing.text.Position end)
           
protected  void completeAsset(javax.swing.text.Position end, int lineNo)
           
protected  void completeAsset(javax.swing.text.Position end, java.lang.String desc)
           
protected  void completePackageAsset(javax.swing.text.Position end, int lineNo)
           
protected  java.lang.String find(java.lang.String line, java.util.regex.Pattern p, int g)
           
protected  java.lang.String[] find2(java.lang.String line, java.util.regex.Pattern p)
           
protected  javax.swing.ImageIcon loadIcon(java.lang.String name, java.lang.Class cls, java.lang.String icon)
           
protected  void loadIcons(java.lang.String name, java.lang.Class cls)
           
protected  void newTree(javax.swing.tree.DefaultMutableTreeNode n, java.lang.String name, java.util.ArrayList list, javax.swing.ImageIcon icon)
           
 SideKickParsedData parse(org.gjt.sp.jedit.Buffer buffer, errorlist.DefaultErrorSource errorSource)
          Parses the given text and returns a tree model.
 SideKickParsedData parse(org.gjt.sp.jedit.Buffer buffer, java.lang.String text, errorlist.DefaultErrorSource errorSource)
          Parse the contents of the given text.
protected  void parseBuffer(org.gjt.sp.jedit.Buffer buffer, errorlist.DefaultErrorSource errorSource)
           
 void setStartLine(int startLine)
          If called by another parser to parse part of a file (for example, to parse a script tag in an html document), this can be set to the offset of the text to be parsed so that the node locations can be set correctly.
 
Methods inherited from class sidekick.SideKickParser
activate, activate, canCompleteAnywhere, canHandleBackspace, complete, deactivate, deactivate, getCompletionPopup, getInstantCompletionTriggers, getName, getPanel, getParseTriggers, stop, supportsCompletion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PACKAGE_ICON

public javax.swing.ImageIcon PACKAGE_ICON

USE_ICON

public javax.swing.ImageIcon USE_ICON

SUB_ICON

public javax.swing.ImageIcon SUB_ICON

PACKAGE_INVALID_ICON

public javax.swing.ImageIcon PACKAGE_INVALID_ICON

USE_INVALID_ICON

public javax.swing.ImageIcon USE_INVALID_ICON

SUB_INVALID_ICON

public javax.swing.ImageIcon SUB_INVALID_ICON

COMMENT_ICON

public javax.swing.ImageIcon COMMENT_ICON

LINE_COMMENT

public java.lang.String LINE_COMMENT

COMMENT

public java.lang.String COMMENT

MAIN

public java.lang.String MAIN

USE

public java.lang.String USE

USE_KEY

public java.lang.String USE_KEY

SUB_KEY

public java.lang.String SUB_KEY

PKG_KEY

public java.lang.String PKG_KEY

data

protected SideKickParsedData data

packages

protected SourceParser.PackageMap packages

commentList

protected java.util.ArrayList commentList

_asset

protected SourceAsset _asset

_pkgAsset

protected SourceAsset _pkgAsset

_start

protected javax.swing.text.Position _start

_end

protected javax.swing.text.Position _end

_lastLineNumber

protected int _lastLineNumber

startLine

protected int startLine
Constructor Detail

SourceParser

public SourceParser(java.lang.String name)
Constructs a new SourceParser object

Parameters:
name - See sidekick.SidekickParser.

SourceParser

public SourceParser(java.lang.String name,
                    java.lang.Class cls)
Method Detail

parse

public SideKickParsedData parse(org.gjt.sp.jedit.Buffer buffer,
                                errorlist.DefaultErrorSource errorSource)
Parses the given text and returns a tree model.

Specified by:
parse in class SideKickParser
Parameters:
buffer - The buffer to parse.
errorSource - An error source to add errors to.
Returns:
A new instance of the SourceParsedData class.

parse

public SideKickParsedData parse(org.gjt.sp.jedit.Buffer buffer,
                                java.lang.String text,
                                errorlist.DefaultErrorSource errorSource)
Parse the contents of the given text. This is the entry point to use when only a portion of the buffer text is to be parsed. Note that setLineOffset should be called prior to calling this method, otherwise, tree node positions may be off.

This default implementation simply delegates to parse(Buffer, DefaultErrorSource). Subclasses should override to actually parse appropriately.

Specified by:
parse in interface PartialParser
Parameters:
buffer - the buffer containing the text to parse
text - the text to parse
errorSource - where to send errors
Returns:
the parsed buffer as a tree

setStartLine

public void setStartLine(int startLine)
If called by another parser to parse part of a file (for example, to parse a script tag in an html document), this can be set to the offset of the text to be parsed so that the node locations can be set correctly.

Specified by:
setStartLine in interface PartialParser
Parameters:
startLine - the starting line in the buffer of the text that is to be parsed.

parseBuffer

protected void parseBuffer(org.gjt.sp.jedit.Buffer buffer,
                           errorlist.DefaultErrorSource errorSource)

loadIcons

protected void loadIcons(java.lang.String name,
                         java.lang.Class cls)

loadIcon

protected javax.swing.ImageIcon loadIcon(java.lang.String name,
                                         java.lang.Class cls,
                                         java.lang.String icon)

completeAsset

protected void completeAsset(javax.swing.text.Position end)

completeAsset

protected void completeAsset(javax.swing.text.Position end,
                             java.lang.String desc)

completeAsset

protected void completeAsset(javax.swing.text.Position end,
                             int lineNo)

completePackageAsset

protected void completePackageAsset(javax.swing.text.Position end,
                                    int lineNo)

addAsset

protected void addAsset(java.lang.String typ,
                        java.lang.String p,
                        java.lang.String name,
                        int lineNo,
                        javax.swing.text.Position start)

addLineAsset

protected void addLineAsset(java.lang.String typ,
                            java.lang.String p,
                            java.lang.String name,
                            int lineNo,
                            javax.swing.text.Position start,
                            javax.swing.text.Position end)

addCommentAsset

protected void addCommentAsset(java.lang.String name,
                               int lineNo,
                               javax.swing.text.Position start)

addPackageAsset

protected void addPackageAsset(java.lang.String name,
                               int lineNo,
                               javax.swing.text.Position start)

buildTrees

protected void buildTrees()

newTree

protected void newTree(javax.swing.tree.DefaultMutableTreeNode n,
                       java.lang.String name,
                       java.util.ArrayList list,
                       javax.swing.ImageIcon icon)

addList

protected void addList(javax.swing.tree.DefaultMutableTreeNode t,
                       java.util.ArrayList list,
                       javax.swing.ImageIcon icon)

find

protected java.lang.String find(java.lang.String line,
                                java.util.regex.Pattern p,
                                int g)

find2

protected java.lang.String[] find2(java.lang.String line,
                                   java.util.regex.Pattern p)