Package com.google.javascript.jscomp

# Class JsAst

java.lang.Object
com.google.javascript.jscomp.JsAst

All Implemented Interfaces:
  `SourceAst`, `Serializable`

public class JsAst extends Object implements SourceAst
Generates an AST for a JavaScript source file.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`JsAst(SourceFile sourceFile)`

## Method Summary

Modifier and Type
Method
Description
`void`
`clearAst()`
Removes any references to root node of the AST.
`Node`
`getAstRoot(AbstractCompiler compiler)`
Gets the root node of the AST for the source file this represents.
`InputId`
`getInputId()`
`SourceFile`
`getSourceFile()`
Returns the source file the generated AST represents.
`void`
`setSourceFile(SourceFile file)`
Sets the source file the generated AST represents.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### JsAst

public JsAst(SourceFile sourceFile)

## Method Details

### getAstRoot

public Node getAstRoot(AbstractCompiler compiler)
Description copied from interface: `SourceAst`
Gets the root node of the AST for the source file this represents. The AST is lazily instantiated and cached.

Specified by:
  `getAstRoot` in interface `SourceAst`

### clearAst

public void clearAst()
Description copied from interface: `SourceAst`
Removes any references to root node of the AST. If it is requested again, another parse will be performed. This method is needed to allow the ASTs to be garbage collected if the inputs are still around after compilation.

Specified by:
  `clearAst` in interface `SourceAst`

### getInputId

public InputId getInputId()

Specified by:
  `getInputId` in interface `SourceAst`
Returns:
  The input id associated with this AST

### getSourceFile

public SourceFile getSourceFile()
Description copied from interface: `SourceAst`
Returns the source file the generated AST represents.

Specified by:
  `getSourceFile` in interface `SourceAst`

### setSourceFile

public void setSourceFile(SourceFile file)
Description copied from interface: `SourceAst`
Sets the source file the generated AST represents. This can be called after deserializing if access to the source file is needed. If a different file is provided than that with which this was created, an IllegalStateException will be thrown.

Specified by:
  `setSourceFile` in interface `SourceAst`