Module org.firebirdsql.jaybird
Package org.firebirdsql.jaybird.parser

# Class SqlParser

java.lang.Object
org.firebirdsql.jaybird.parser.SqlParser

All Implemented Interfaces:
  `VisitorRegistrar`

@InternalApi public final class SqlParser extends Object implements VisitorRegistrar
Simple visiting SQL parser.

This parser is not thread-safe.

Since:
  5

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`SqlParser.Builder`

## Method Summary

Modifier and Type
Method
Description
`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 Details

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