Search in sources :

Example 1 with HashStatementLexer

use of org.jdbi.v3.core.internal.lexer.HashStatementLexer in project jdbi by jdbi.

the class HashPrefixSqlParser method internalParse.

private ParsedSql internalParse(final String sql) {
    ParsedSql.Builder parsedSql = ParsedSql.builder();
    HashStatementLexer lexer = new HashStatementLexer(new ANTLRStringStream(sql));
    Token t = lexer.nextToken();
    while (t.getType() != EOF) {
        switch(t.getType()) {
            case COMMENT:
            case LITERAL:
            case QUOTED_TEXT:
            case DOUBLE_QUOTED_TEXT:
                parsedSql.append(t.getText());
                break;
            case NAMED_PARAM:
                parsedSql.appendNamedParameter(t.getText().substring(1));
                break;
            case POSITIONAL_PARAM:
                parsedSql.appendPositionalParameter();
                break;
            case ESCAPED_TEXT:
                parsedSql.append(t.getText().substring(1));
                break;
            default:
                break;
        }
        t = lexer.nextToken();
    }
    return parsedSql.build();
}
Also used : ANTLRStringStream(org.antlr.runtime.ANTLRStringStream) HashStatementLexer(org.jdbi.v3.core.internal.lexer.HashStatementLexer) Token(org.antlr.runtime.Token)

Aggregations

ANTLRStringStream (org.antlr.runtime.ANTLRStringStream)1 Token (org.antlr.runtime.Token)1 HashStatementLexer (org.jdbi.v3.core.internal.lexer.HashStatementLexer)1