Module jdk.scripting.nashorn
Package jdk.nashorn.api.tree

## Interface Parser

-     public interface Parser

  Represents nashorn ECMAScript parser instance.
  Since:
    9

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Parser` | `create​(String... options)` | Factory method to create a new instance of Parser.
    `CompilationUnitTree` | `parse​(File file, DiagnosticListener listener)` | Parses the source file and returns compilation unit tree
    `CompilationUnitTree` | `parse​(String name, Reader reader, DiagnosticListener listener)` | Parses the reader and returns compilation unit tree
    `CompilationUnitTree` | `parse​(String name, String code, DiagnosticListener listener)` | Parses the string source and returns compilation unit tree
    `CompilationUnitTree` | `parse​(URL url, DiagnosticListener listener)` | Parses the source url and returns compilation unit tree
    `CompilationUnitTree` | `parse​(Path path, DiagnosticListener listener)` | Parses the source Path and returns compilation unit tree
    `CompilationUnitTree` | `parse​(ScriptObjectMirror scriptObj, DiagnosticListener listener)` | Parses the source from script object and returns compilation unit tree

- - ### Method Detail

    - #### parse

          CompilationUnitTree parse​(File file,
                                    DiagnosticListener listener)
                             throws IOException,
                                    NashornException

      Parses the source file and returns compilation unit tree
      Parameters:
        `file` - source file to parse
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if file is null
        `IOException` - if parse source read fails
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### parse

          CompilationUnitTree parse​(Path path,
                                    DiagnosticListener listener)
                             throws IOException,
                                    NashornException

      Parses the source Path and returns compilation unit tree
      Parameters:
        `path` - source Path to parse
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if path is null
        `IOException` - if parse source read fails
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### parse

          CompilationUnitTree parse​(URL url,
                                    DiagnosticListener listener)
                             throws IOException,
                                    NashornException

      Parses the source url and returns compilation unit tree
      Parameters:
        `url` - source file to parse
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if url is null
        `IOException` - if parse source read fails
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### parse

          CompilationUnitTree parse​(String name,
                                    Reader reader,
                                    DiagnosticListener listener)
                             throws IOException,
                                    NashornException

      Parses the reader and returns compilation unit tree
      Parameters:
        `name` - name of the source file to parse
        `reader` - from which source is read
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if name or reader is null
        `IOException` - if parse source read fails
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### parse

          CompilationUnitTree parse​(String name,
                                    String code,
                                    DiagnosticListener listener)
                             throws NashornException

      Parses the string source and returns compilation unit tree
      Parameters:
        `name` - of the source
        `code` - string source
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if name or code is null
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### parse

          CompilationUnitTree parse​(ScriptObjectMirror scriptObj,
                                    DiagnosticListener listener)
                             throws NashornException

      Parses the source from script object and returns compilation unit tree
      Parameters:
        `scriptObj` - script object whose script and name properties are used for script source
        `listener` - to receive diagnostic messages from the parser. This can be null. if null is passed, a NashornException is thrown on the first parse error.
      Returns:
        compilation unit tree
      Throws:
        `NullPointerException` - if scriptObj is null
        `NashornException` - is thrown if no listener is supplied and parser encounters error

    - #### create

          static Parser create​(String... options)
                        throws IllegalArgumentException

      Factory method to create a new instance of Parser.
      Parameters:
        `options` - configuration options to initialize the Parser. Currently the following options are supported:
        "--const-as-var"
          treat "const" declaration as "var"
        "-dump-on-error" or "-doe"
          dump stack trace on error
        "--empty-statements"
          include empty statement nodes
        "--no-syntax-extensions" or "-nse"
          disable ECMAScript syntax extensions
        "-scripting"
          enable scripting mode extensions
        "-strict"
          enable ECMAScript strict mode
        "--language=es6"
          enable ECMAScript 6 parsing mode
        "--es6-module"
          enable ECMAScript 6 module parsing mode. This option implies --language=es6
      Returns:
        a new Parser instance.
      Throws:
        `NullPointerException` - if options array or any of its element is null
        `IllegalArgumentException` - on unsupported option value.