# 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.

Author:
  Pierre Delisle, Jan Luehe

- ## Field Summary

  ### Fields inherited from interface org.apache.jasper.compiler.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()`
  `JspCompilationContext`
  `getJspCompilationContext()`
  `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 java.lang.Object

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

- ## Method Details

  - ### getJspCompilationContext

    public JspCompilationContext getJspCompilationContext()

  - ### getCompiler

    public Compiler getCompiler()

  - ### 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