public static Type parse()

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);
    }
  }