Skip to content

Provide included rules in the interface too #70

@hfhbd

Description

@hfhbd

I want to include the rule compound_select_stmt from sql-psi:

set_stmt ::= SET host_variable ( COMMA host_variable ) * EQ ( set_setter_clause | {compound_select_stmt} )

This rule is not resolved in my bnf file, as expected, but it is later during composing:

fake set_stmt ::=  SET host_variable ( COMMA host_variable ) * EQ ( set_setter_clause | <<compoundSelectStmtRealExt <<compound_select_stmt_real_real>>>> )

set_stmt_real ::=  SET <<hostVariableExt host_variable_real>> ( COMMA <<hostVariableExt host_variable_real>> ) * EQ ( <<setSetterClauseExt set_setter_clause_real>> | <<compoundSelectStmtRealExt <<compound_select_stmt_real_real>>>> )

GrammarKit with Composer generates this interface:

public interface Db2SetStmt extends ... {
  @NotNull  List<Db2HostVariable> getHostVariableList();
  @Nullable Db2SetSetterClause getSetSetterClause();
}

Unfortunately, the compound_select_stmt is missing: @Nullable SqlCompoundSelectStmt getCompoundSelectStmt();

Sample: merge_key_selector from Hsql in sqldelight

merge_key_selector ::= KEY LP {column_name} RP
package app.cash.sqldelight.dialects.hsql.grammar.psi;

public interface HsqlMergeKeySelector extends SqlCompositeElement {

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions