in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/catalog/typeparser/ZetaSQLTypeParser.java [55:78]
public static Type parse(String type) {
Lexer lexer = new ZetaSQLTypeGrammarLexer(CharStreams.fromString(type));
lexer.removeErrorListener(ConsoleErrorListener.INSTANCE);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
ZetaSQLTypeGrammarParser parser = new ZetaSQLTypeGrammarParser(tokenStream);
ZetaSQLTypeParserListener listener = new ZetaSQLTypeParserListener();
parser.removeErrorListener(ConsoleErrorListener.INSTANCE);
parser.setErrorHandler(new BailErrorStrategy());
try {
TypeContext typeRule = parser.type();
if (typeRule.exception != null) {
throw new ZetaSQLTypeParseError(
String.format("Invalid SQL type: %s", type), typeRule.exception);
}
ParseTreeWalker.DEFAULT.walk(listener, typeRule);
return listener.getResult();
} catch (ParseCancellationException err) {
throw new ZetaSQLTypeParseError(String.format("Invalid SQL type: %s", type), err);
}
}