org.codehaus.groovy.control
Class SourceUnit

java.lang.Object
  extended byorg.codehaus.groovy.control.ProcessingUnit
      extended byorg.codehaus.groovy.control.SourceUnit

public class SourceUnit
extends ProcessingUnit

Provides an anchor for a single source unit (usually a script file) as it passes through the compiler system.

Version:
$Id: SourceUnit.java,v 1.12 2005/06/10 09:55:30 cstein Exp $
Author:
Chris Poirier, Bing Ran

Field Summary
protected  ModuleNode ast
          The root of the Abstract Syntax Tree for the source
protected  Reduction cst
          A Concrete Syntax Tree of the source
protected  String name
          A descriptive name of the source unit
protected  ReaderSource source
          Where we can get Readers for our source unit
 
Fields inherited from class org.codehaus.groovy.control.ProcessingUnit
classLoader, configuration, errorCollector, phase, phaseComplete
 
Constructor Summary
SourceUnit(File source, CompilerConfiguration configuration, ClassLoader loader, ErrorCollector er)
          Initializes the SourceUnit from the specified file.
SourceUnit(String name, ReaderSource source, CompilerConfiguration flags, ClassLoader loader, ErrorCollector er)
          Initializes the SourceUnit from existing machinery.
SourceUnit(String name, String source, CompilerConfiguration configuration, ClassLoader loader, ErrorCollector er)
          Initializes the SourceUnit for a string of source.
SourceUnit(URL source, CompilerConfiguration configuration, ClassLoader loader, ErrorCollector er)
          Initializes the SourceUnit from the specified URL.
 
Method Summary
 void addError(SyntaxException se)
           
 void addException(Exception e)
           
 void convert()
          Generates an AST from the CST.
static SourceUnit create(String name, String source)
          A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.
static SourceUnit create(String name, String source, int tolerance)
          A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.
static ClassNode createClassNode(String code)
           
static FieldNode createFieldNode(String code)
          Takes a field definition statement and wrap it in class definition.
 MethodNode createMethodNode(String code)
           
static ModuleNode createModule(String code)
          to quickly create a ModuleNode from a piece of Groovy code
 Statement createStatement(String code)
           
 boolean failedWithUnexpectedEOF()
          Convenience routine, primarily for use by the InteractiveShell, that returns true if parse() failed with an unexpected EOF.
 ModuleNode getAST()
          Returns the Abstract Syntax Tree produced during parse()ing and expanded during later phases.
 Reduction getCST()
          Returns the Concrete Syntax Tree produced during parse()ing.
 String getName()
          Returns the name for the SourceUnit.
 String getSample(int line, int column, Janitor janitor)
          Returns a sampling of the source at the specified line and column, of null if it is unavailable.
protected  boolean isEofToken(antlr.Token token)
           
 void parse()
          Parses the source to a CST.
 
Methods inherited from class org.codehaus.groovy.control.ProcessingUnit
completePhase, configure, getClassLoader, getConfiguration, getErrorCollector, getPhase, getPhaseDescription, gotoPhase, nextPhase, setClassLoader, setConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

source

protected ReaderSource source
Where we can get Readers for our source unit


name

protected String name
A descriptive name of the source unit


cst

protected Reduction cst
A Concrete Syntax Tree of the source


ast

protected ModuleNode ast
The root of the Abstract Syntax Tree for the source

Constructor Detail

SourceUnit

public SourceUnit(String name,
                  ReaderSource source,
                  CompilerConfiguration flags,
                  ClassLoader loader,
                  ErrorCollector er)
Initializes the SourceUnit from existing machinery.


SourceUnit

public SourceUnit(File source,
                  CompilerConfiguration configuration,
                  ClassLoader loader,
                  ErrorCollector er)
Initializes the SourceUnit from the specified file.


SourceUnit

public SourceUnit(URL source,
                  CompilerConfiguration configuration,
                  ClassLoader loader,
                  ErrorCollector er)
Initializes the SourceUnit from the specified URL.


SourceUnit

public SourceUnit(String name,
                  String source,
                  CompilerConfiguration configuration,
                  ClassLoader loader,
                  ErrorCollector er)
Initializes the SourceUnit for a string of source.

Method Detail

getName

public String getName()
Returns the name for the SourceUnit.


getCST

public Reduction getCST()
Returns the Concrete Syntax Tree produced during parse()ing.


getAST

public ModuleNode getAST()
Returns the Abstract Syntax Tree produced during parse()ing and expanded during later phases.


failedWithUnexpectedEOF

public boolean failedWithUnexpectedEOF()
Convenience routine, primarily for use by the InteractiveShell, that returns true if parse() failed with an unexpected EOF.


isEofToken

protected boolean isEofToken(antlr.Token token)

create

public static SourceUnit create(String name,
                                String source)
A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.


create

public static SourceUnit create(String name,
                                String source,
                                int tolerance)
A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.


parse

public void parse()
           throws CompilationFailedException
Parses the source to a CST. You can retrieve it with getCST().

Throws:
CompilationFailedException

convert

public void convert()
             throws CompilationFailedException
Generates an AST from the CST. You can retrieve it with getAST().

Throws:
CompilationFailedException

getSample

public String getSample(int line,
                        int column,
                        Janitor janitor)
Returns a sampling of the source at the specified line and column, of null if it is unavailable.


createModule

public static ModuleNode createModule(String code)
                               throws CompilationFailedException
to quickly create a ModuleNode from a piece of Groovy code

Parameters:
code -
Returns:
Throws:
CompilationFailedException

createClassNode

public static ClassNode createClassNode(String code)
                                 throws CompilationFailedException
Throws:
CompilationFailedException

createFieldNode

public static FieldNode createFieldNode(String code)
                                 throws CompilationFailedException
Takes a field definition statement and wrap it in class definition. The FieldNode object representing the field is extracted and returned, Types need to be fully qualified.

Parameters:
code - a naked statement to define a field, such as: String prop = "hello"
Returns:
a FieldNode object.
Throws:
CompilationFailedException

createStatement

public Statement createStatement(String code)
                          throws CompilationFailedException
Throws:
CompilationFailedException

createMethodNode

public MethodNode createMethodNode(String code)
                            throws CompilationFailedException
Throws:
CompilationFailedException

addException

public void addException(Exception e)
                  throws CompilationFailedException
Throws:
CompilationFailedException

addError

public void addError(SyntaxException se)
              throws CompilationFailedException
Throws:
CompilationFailedException


Copyright © 2003-2005 The Codehaus. All Rights Reserved.