org.firebirdsql.jdbc.parser

## Class SqlParser

- java.lang.Object
- - org.firebirdsql.jdbc.parser.SqlParser

All Implemented Interfaces:
  VisitorRegistrar

    @InternalApi
    public final class SqlParser
    extends java.lang.Object
    implements VisitorRegistrar

Simple visiting SQL parser.

This parser is not thread-safe.

Since:
  4.0.8

### Nested Class Summary

Nested Classes
`static class` `SqlParser.Builder`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`SqlParser` `add(TokenVisitor tokenVisitor)` Fluent variant of `addVisitor(TokenVisitor)`.
`void` `addVisitor(TokenVisitor tokenVisitor)` Adds a visitor.
`boolean` `isCompleted()`
`boolean` `isParsing()`
`boolean` `isStarted()`
`void` `parse()` Starts parsing of the statement text.
`void` `removeVisitor(TokenVisitor tokenVisitor)` Removes a visitor - if already registered.
`void` `resumeParsing()` Start or resume parsing of the statement text.
`static SqlParser.Builder` `withReservedWords(ReservedWords reservedWords)` Creates a builder for a SQL parser with a supplier of reserved words.

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

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

### Method Detail

#### withReservedWords

    public static SqlParser.Builder withReservedWords(ReservedWords reservedWords)

Creates a builder for a SQL parser with a supplier of reserved words.

Parameters:
  `reservedWords` - Reserved words
Returns:
  builder to complete initialization of a SQL parser

#### parse

    public void parse()

Starts parsing of the statement text.

Throws:
  `java.lang.IllegalStateException` - When `parse()` has already been parsed, or there are no registered visitors.
See Also:
  `resumeParsing()`

#### resumeParsing

    public void resumeParsing()

Start or resume parsing of the statement text.

If the parsing process previously stalled because there were no more visitors, this continues parsing at the point the parser previously stopped. If parsing was not yet started (e.g. using `parse()`), it will start.

Throws:
  `java.lang.IllegalStateException` - When parsing was already completed, parsing is already in progress, or there are no registered visitors
See Also:
  `parse()`

#### isStarted

    public boolean isStarted()

#### isParsing

    public boolean isParsing()

#### isCompleted

    public boolean isCompleted()

#### add

    public SqlParser add(TokenVisitor tokenVisitor)

Fluent variant of `addVisitor(TokenVisitor)`.

Parameters:
  `tokenVisitor` - token visitor to add
Returns:
  this SQL parser

#### addVisitor

    public void addVisitor(TokenVisitor tokenVisitor)

Description copied from interface: `VisitorRegistrar`
Adds a visitor.

Specified by:
  `addVisitor` in interface `VisitorRegistrar`
Parameters:
  `tokenVisitor` - Token visitor

#### removeVisitor

    public void removeVisitor(TokenVisitor tokenVisitor)

Description copied from interface: `VisitorRegistrar`
Removes a visitor - if already registered.

Specified by:
  `removeVisitor` in interface `VisitorRegistrar`
Parameters:
  `tokenVisitor` - Token visitor