# Class ParserController

java.lang.Object
org.apache.jasper.compiler.ParserController

All Implemented Interfaces:
  `TagConstants`

public class ParserController extends Object implements TagConstants
Controller for the parsing of a JSP page.

The same ParserController instance is used for a JSP page and any JSP segments included by it (via an include directive), where each segment may be provided in standard or XML syntax. This class selects and invokes the appropriate parser for the JSP page and its included segments.

## Field Summary

### Fields inherited from interface TagConstants

`ATTRIBUTE_ACTION, ATTRIBUTE_DIRECTIVE_ACTION, BODY_ACTION, DECLARATION_ACTION, DIRECTIVE_ACTION, DOBODY_ACTION, ELEMENT_ACTION, EXPRESSION_ACTION, FALLBACK_ACTION, FORWARD_ACTION, GET_PROPERTY_ACTION, INCLUDE_ACTION, INCLUDE_DIRECTIVE_ACTION, INVOKE_ACTION, JSP_ATTRIBUTE_ACTION, JSP_ATTRIBUTE_DIRECTIVE_ACTION, JSP_BODY_ACTION, JSP_DECLARATION_ACTION, JSP_DOBODY_ACTION, JSP_ELEMENT_ACTION, JSP_EXPRESSION_ACTION, JSP_FALLBACK_ACTION, JSP_FORWARD_ACTION, JSP_GET_PROPERTY_ACTION, JSP_INCLUDE_ACTION, JSP_INCLUDE_DIRECTIVE_ACTION, JSP_INVOKE_ACTION, JSP_OUTPUT_ACTION, JSP_PAGE_DIRECTIVE_ACTION, JSP_PARAM_ACTION, JSP_PARAMS_ACTION, JSP_PLUGIN_ACTION, JSP_ROOT_ACTION, JSP_SCRIPTLET_ACTION, JSP_SET_PROPERTY_ACTION, JSP_TAG_DIRECTIVE_ACTION, JSP_TAGLIB_DIRECTIVE_ACTION, JSP_TEXT_ACTION, JSP_TEXT_ACTION_END, JSP_URI, JSP_USE_BEAN_ACTION, JSP_VARIABLE_DIRECTIVE_ACTION, OUTPUT_ACTION, PAGE_DIRECTIVE_ACTION, PARAM_ACTION, PARAMS_ACTION, PLUGIN_ACTION, ROOT_ACTION, SCRIPTLET_ACTION, SET_PROPERTY_ACTION, TAG_DIRECTIVE_ACTION, TAGLIB_DIRECTIVE_ACTION, TEXT_ACTION, URN_JSPTAGDIR, URN_JSPTLD, USE_BEAN_ACTION, VARIABLE_DIRECTIVE_ACTION`

## Method Summary

Modifier and Type
Method
Description
`Compiler`
`getCompiler()`
Returns the compiler associated with this parser controller.
`JspCompilationContext`
`getJspCompilationContext()`
Returns the JSP compilation context associated with this parser controller.
`Node.Nodes`
`parse(String inFileName)`
Parses a JSP page or tag file.
`Node.Nodes`
`parse(String inFileName, Node parent, Jar jar)`
Processes an include directive with the given path.
`Node.Nodes`
`parseDirectives(String inFileName)`
Parses the directives of a JSP page or tag file.
`Node.Nodes`
`parseTagFileDirectives(String inFileName, Jar jar)`
Extracts tag file directive information from the given tag file.

### Methods inherited from class Object

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

## Method Details

### getJspCompilationContext

public JspCompilationContext getJspCompilationContext()
Returns the JSP compilation context associated with this parser controller.

Returns:
  the JSP compilation context

### getCompiler

public Compiler getCompiler()
Returns the compiler associated with this parser controller.

Returns:
  the compiler

### parse

public Node.Nodes parse(String inFileName) throws JasperException, IOException
Parses a JSP page or tag file. This is invoked by the compiler.

Parameters:
  `inFileName` - The path to the JSP page or tag file to be parsed.
Returns:
  The parsed nodes
Throws:
  `JasperException` - If an error occurs during parsing
  `IOException` - If an I/O error occurs such as the file not being found

### parseDirectives

public Node.Nodes parseDirectives(String inFileName) throws JasperException, IOException
Parses the directives of a JSP page or tag file. This is invoked by the compiler.

Parameters:
  `inFileName` - The path to the JSP page or tag file to be parsed.
Returns:
  The parsed directive nodes
Throws:
  `JasperException` - If an error occurs during parsing
  `IOException` - If an I/O error occurs such as the file not being found

### parse

public Node.Nodes parse(String inFileName, Node parent, Jar jar) throws JasperException, IOException
Processes an include directive with the given path.

Parameters:
  `inFileName` - The path to the resource to be included.
  `parent` - The parent node of the include directive.
  `jar` - The JAR file from which to read the included resource, or null of the included resource is to be read from the filesystem
Returns:
  The parsed nodes
Throws:
  `JasperException` - If an error occurs during parsing
  `IOException` - If an I/O error occurs such as the file not being found

### parseTagFileDirectives

public Node.Nodes parseTagFileDirectives(String inFileName, Jar jar) throws JasperException, IOException
Extracts tag file directive information from the given tag file. This is invoked by the compiler

Parameters:
  `inFileName` - The name of the tag file to be parsed.
  `jar` - The location of the tag file.
Returns:
  The parsed tag file nodes
Throws:
  `JasperException` - If an error occurs during parsing
  `IOException` - If an I/O error occurs such as the file not being found