Groovy Documentation

org.codehaus.groovy.control
[Java] Class SourceUnit

java.lang.Object
  org.codehaus.groovy.control.ProcessingUnit
      org.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.

Authors:
Chris Poirier
Bing Ran
Version:
\$Id\$


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 java.lang.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 ProcessingUnit
classLoader, configuration, errorCollector, phase, phaseComplete
 
Constructor Summary
SourceUnit(java.lang.String name, ReaderSource source, CompilerConfiguration flags, GroovyClassLoader loader, ErrorCollector er)

Initializes the SourceUnit from existing machinery.

SourceUnit(java.io.File source, CompilerConfiguration configuration, GroovyClassLoader loader, ErrorCollector er)

Initializes the SourceUnit from the specified file.

SourceUnit(java.net.URL source, CompilerConfiguration configuration, GroovyClassLoader loader, ErrorCollector er)

Initializes the SourceUnit from the specified URL.

SourceUnit(java.lang.String name, java.lang.String source, CompilerConfiguration configuration, GroovyClassLoader loader, ErrorCollector er)

Initializes the SourceUnit for a string of source.

 
Method Summary
void addError(SyntaxException se)

void addException(java.lang.Exception e)

This method adds an exception to the error collector.

void convert()

Generates an AST from the CST.

static SourceUnit create(java.lang.String name, java.lang.String source)

A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.

static SourceUnit create(java.lang.String name, java.lang.String source, int tolerance)

A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.

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 convert()ing and expanded during later phases.

Reduction getCST()

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

java.lang.String getName()

Returns the name for the SourceUnit.

java.lang.String getSample(int line, int column, Janitor janitor)

ReaderSource getSource()

protected boolean isEofToken(antlr.Token token)

void parse()

Parses the source to a CST.

 
Methods inherited from class ProcessingUnit
completePhase, configure, getClassLoader, getConfiguration, getErrorCollector, getPhase, getPhaseDescription, gotoPhase, nextPhase, setClassLoader, setConfiguration
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

ast

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


cst

protected Reduction cst
A Concrete Syntax Tree of the source


name

protected java.lang.String name
A descriptive name of the source unit. This name shouldn't be used for controlling the SourceUnit, it is only for error messages and to determine the name of the class for a script.


source

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


 
Constructor Detail

SourceUnit

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


SourceUnit

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


SourceUnit

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


SourceUnit

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


 
Method Detail

addError

public void addError(SyntaxException se)


addException

public void addException(java.lang.Exception e)
This method adds an exception to the error collector. The Exception most likely has no line number attached to it. For this reason you should use this method sparingly. Prefer using addError for syntax errors or add an error to the ErrorCollector directly by retrieving it with getErrorCollector().
throws:
CompilationFailedException on error
Parameters:
e - the exception that occurred


convert

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


create

public static SourceUnit create(java.lang.String name, java.lang.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(java.lang.String name, java.lang.String source, int tolerance)
A convenience routine to create a standalone SourceUnit on a String with defaults for almost everything that is configurable.


failedWithUnexpectedEOF

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


getAST

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


getCST

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


getName

public java.lang.String getName()
Returns the name for the SourceUnit. This name shouldn't be used for controlling the SourceUnit, it is only for error messages


getSample

public java.lang.String getSample(int line, int column, Janitor janitor)


getSource

public ReaderSource getSource()


isEofToken

protected boolean isEofToken(antlr.Token token)


parse

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


 

Groovy Documentation