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

app.cash.sqldelight.dialects.sqlite_3_33.grammar.sqlite.bnf Maven / Gradle / Ivy

There is a newer version: 2.0.2
Show newest version
{
  // Specify the parent parser.
  overrides="com.alecstrong.sql.psi.core.SqlParser"
  elementTypeClass = "com.alecstrong.sql.psi.core.SqlElementType"

  implements="com.alecstrong.sql.psi.core.psi.SqlCompositeElement"
  extends="com.alecstrong.sql.psi.core.psi.SqlCompositeElementImpl"
  psiClassPrefix = "Sqlite"

  parserImports=[
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.UPDATE"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.OR"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.ROLLBACK"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.ABORT"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.REPLACE"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.FAIL"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.IGNORE"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.FROM"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.COMMA"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.WHERE"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.ORDER"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.BY"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.LIMIT"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.OFFSET"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.SET"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.EQ"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.LP"
    "static com.alecstrong.sql.psi.core.psi.SqlTypes.RP"
  ]
}

overrides ::= update_stmt | update_stmt_limited

update_stmt ::= [ {with_clause} ] UPDATE [ OR ROLLBACK | OR ABORT | OR REPLACE | OR FAIL | OR IGNORE ] {qualified_table_name}
  update_set_clause
  [ FROM {join_clause} ]
  [ WHERE <> ] {
  implements = "com.alecstrong.sql.psi.core.psi.SqlUpdateStmt"
  mixin = "app.cash.sqldelight.dialects.sqlite_3_33.grammar.mixins.UpdateStmtMixin"
  pin = 4
  override = true
}

update_stmt_limited ::= [ {with_clause} ] UPDATE [ OR ROLLBACK | OR ABORT | OR REPLACE | OR FAIL | OR IGNORE ] {qualified_table_name}
  update_set_clause
  [ FROM {join_clause} ]
  [ WHERE <> ]
  [ [ ORDER BY {ordering_term} ( COMMA {ordering_term} ) * ]
  LIMIT <> [ ( OFFSET | COMMA ) <> ] ] {
  implements = "com.alecstrong.sql.psi.core.psi.SqlUpdateStmtLimited"
  mixin = "app.cash.sqldelight.dialects.sqlite_3_33.grammar.mixins.UpdateStmtLimitedMixin"
  pin = 4
  override = true
}

private update_set_clause ::= SET (( {column_name} EQ {setter_expression} {update_stmt_subsequent_setter} * ) | ( LP {column_name} ( COMMA {column_name} ) * RP ) EQ ( LP {setter_expression} ( COMMA {setter_expression} ) * RP )) {
  pin(".*") = 1
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy