All Downloads are FREE. Search and download functionalities are using the official Maven repository.

app.softwork.sqldelight.postgresdialect.PostgreSqlNativeParser Maven / Gradle / Ivy

// This is a generated file. Not intended for manual editing.
package app.softwork.sqldelight.postgresdialect;

import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import static app.softwork.sqldelight.postgresdialect.psi.PostgreSqlNativeTypes.*;
import static app.softwork.sqldelight.postgresdialect.PostgreSqlNativeParserUtil.*;
import com.intellij.psi.tree.IElementType;
import com.intellij.lang.ASTNode;
import com.intellij.psi.tree.TokenSet;
import com.intellij.lang.PsiParser;
import com.intellij.lang.LightPsiParser;
import static com.alecstrong.sql.psi.core.SqlParser.*;
import static com.alecstrong.sql.psi.core.SqlParserUtil.identifierExt;
import static com.alecstrong.sql.psi.core.psi.SqlTypes.DEFAULT;

@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class PostgreSqlNativeParser implements PsiParser, LightPsiParser {

  public ASTNode parse(IElementType root_, PsiBuilder builder_) {
    parseLight(root_, builder_);
    return builder_.getTreeBuilt();
  }

  public void parseLight(IElementType root_, PsiBuilder builder_) {
    boolean result_;
    builder_ = adapt_builder_(root_, builder_, this, null);
    Marker marker_ = enter_section_(builder_, 0, _COLLAPSE_, null);
    result_ = parse_root_(root_, builder_);
    exit_section_(builder_, 0, marker_, root_, result_, true, TRUE_CONDITION);
  }

  protected boolean parse_root_(IElementType root_, PsiBuilder builder_) {
    return parse_root_(root_, builder_, 0);
  }

  static boolean parse_root_(IElementType root_, PsiBuilder builder_, int level_) {
    return root(builder_, level_ + 1);
  }

  /* ********************************************************** */
  // DEFAULT | ( '?' | ':' <>>> )
  public static boolean bind_parameter_real(PsiBuilder builder_, int level_) {
    if (!recursion_guard_(builder_, level_, "bind_parameter_real")) return false;
    boolean result_;
    Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, BIND_PARAMETER, "");
    result_ = consumeToken(builder_, DEFAULT);
    if (!result_) result_ = bind_parameter_real_1(builder_, level_ + 1);
    exit_section_(builder_, level_, marker_, result_, false, null);
    return result_;
  }

  // '?' | ':' <>>>
  private static boolean bind_parameter_real_1(PsiBuilder builder_, int level_) {
    if (!recursion_guard_(builder_, level_, "bind_parameter_real_1")) return false;
    boolean result_;
    Marker marker_ = enter_section_(builder_);
    result_ = consumeToken(builder_, "?");
    if (!result_) result_ = bind_parameter_real_1_1(builder_, level_ + 1);
    exit_section_(builder_, marker_, null, result_);
    return result_;
  }

  // ':' <>>>
  private static boolean bind_parameter_real_1_1(PsiBuilder builder_, int level_) {
    if (!recursion_guard_(builder_, level_, "bind_parameter_real_1_1")) return false;
    boolean result_;
    Marker marker_ = enter_section_(builder_);
    result_ = consumeToken(builder_, ":");
    result_ = result_ && identifierExt(builder_, level_ + 1, bind_parameter_real_1_1_1_0_parser_);
    exit_section_(builder_, marker_, null, result_);
    return result_;
  }

  /* ********************************************************** */
  // <>
  public static boolean overrides_real(PsiBuilder builder_, int level_) {
    if (!recursion_guard_(builder_, level_, "overrides_real")) return false;
    boolean result_;
    Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, OVERRIDES, "");
    result_ = bindParameterExt(builder_, level_ + 1, PostgreSqlNativeParser::bind_parameter_real);
    exit_section_(builder_, level_, marker_, result_, false, null);
    return result_;
  }

  /* ********************************************************** */
  // <>
  static boolean root(PsiBuilder builder_, int level_) {
    return overridesExt(builder_, level_ + 1, PostgreSqlNativeParser::overrides_real);
  }

  static final Parser bind_parameter_real_1_1_1_0_parser_ = (builder_, level_) -> identifier_real(builder_, level_ + 1);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy