// ---- Autopin.java -----------------
// This is a generated file. Not intended for manual editing.
package ;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import static generated.GeneratedTypes.*;
import static com.intellij.lang.parser.GeneratedParserUtilBase.*;
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;
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class Autopin 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, EXTENDS_SETS_);
Marker marker_ = enter_section_(builder_, 0, _COLLAPSE_, null);
if (root_ == CREATE_STATEMENT) {
result_ = create_statement(builder_, 0);
}
else if (root_ == CREATE_TABLE_STATEMENT) {
result_ = create_table_statement(builder_, 0);
}
else if (root_ == DROP_STATEMENT) {
result_ = drop_statement(builder_, 0);
}
else if (root_ == DROP_TABLE_STATEMENT) {
result_ = drop_table_statement(builder_, 0);
}
else if (root_ == OVERRIDE_NESTED_SEQUENCE) {
result_ = override_nested_sequence(builder_, 0);
}
else if (root_ == STATEMENT) {
result_ = statement(builder_, 0);
}
else {
result_ = parse_root_(root_, builder_, 0);
}
exit_section_(builder_, 0, marker_, root_, result_, true, TRUE_CONDITION);
}
protected boolean parse_root_(IElementType root_, PsiBuilder builder_, int level_) {
return root(builder_, level_ + 1);
}
public static final TokenSet[] EXTENDS_SETS_ = new TokenSet[] {
create_token_set_(CREATE_STATEMENT, CREATE_TABLE_STATEMENT, DROP_STATEMENT, DROP_TABLE_STATEMENT,
STATEMENT),
};
/* ********************************************************** */
// create_table_statement
public static boolean create_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "create_statement")) return false;
if (!nextTokenIs(builder_, CREATE)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, CREATE_STATEMENT, null);
result_ = create_table_statement(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// CREATE TEMP? (GLOBAL|LOCAL) TABLE table_ref '(' ')'
public static boolean create_table_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "create_table_statement")) return false;
if (!nextTokenIs(builder_, CREATE)) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, CREATE_TABLE_STATEMENT, null);
result_ = consumeToken(builder_, CREATE);
result_ = result_ && create_table_statement_1(builder_, level_ + 1);
result_ = result_ && create_table_statement_2(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, TABLE);
result_ = result_ && parseReference(builder_, level_ + 1);
pinned_ = result_; // pin = .*_ref
result_ = result_ && report_error_(builder_, consumeToken(builder_, "("));
result_ = pinned_ && consumeToken(builder_, ")") && result_;
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
// TEMP?
private static boolean create_table_statement_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "create_table_statement_1")) return false;
consumeToken(builder_, TEMP);
return true;
}
// GLOBAL|LOCAL
private static boolean create_table_statement_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "create_table_statement_2")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, GLOBAL);
if (!result_) result_ = consumeToken(builder_, LOCAL);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// drop_table_statement
public static boolean drop_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "drop_statement")) return false;
if (!nextTokenIs(builder_, DROP)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, DROP_STATEMENT, null);
result_ = drop_table_statement(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// DROP TABLE table_ref
public static boolean drop_table_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "drop_table_statement")) return false;
if (!nextTokenIs(builder_, DROP)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeTokens(builder_, 0, DROP, TABLE);
result_ = result_ && parseReference(builder_, level_ + 1);
exit_section_(builder_, marker_, DROP_TABLE_STATEMENT, result_);
return result_;
}
/* ********************************************************** */
// a b (c d e)
public static boolean override_nested_sequence(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "override_nested_sequence")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, OVERRIDE_NESTED_SEQUENCE, null);
result_ = consumeTokens(builder_, 1, A, B);
pinned_ = result_; // pin = 1
result_ = result_ && override_nested_sequence_2(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
// c d e
private static boolean override_nested_sequence_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "override_nested_sequence_2")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeTokens(builder_, 0, C, D, E);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// [] (a|b)
static boolean pinned_on_start(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "pinned_on_start")) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_);
result_ = pinned_on_start_0(builder_, level_ + 1);
pinned_ = result_; // pin = 1
result_ = result_ && pinned_on_start_1(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
// []
private static boolean pinned_on_start_0(PsiBuilder builder_, int level_) {
return true;
}
// a|b
private static boolean pinned_on_start_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "pinned_on_start_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, A);
if (!result_) result_ = consumeToken(builder_, B);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// statement *
static boolean root(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!statement(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "root", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// create_statement | drop_statement
public static boolean statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement")) return false;
if (!nextTokenIs(builder_, "<statement>", CREATE, DROP)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, STATEMENT, "<statement>");
result_ = create_statement(builder_, level_ + 1);
if (!result_) result_ = drop_statement(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// a b c d table_ref
static boolean token_sequence1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence1")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_);
result_ = consumeTokens(builder_, 3, A, B, C, D);
pinned_ = result_; // pin = 3
result_ = result_ && parseReference(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
/* ********************************************************** */
// a b table_ref c d e
static boolean token_sequence2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence2")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_);
result_ = consumeTokens(builder_, 0, A, B);
result_ = result_ && parseReference(builder_, level_ + 1);
result_ = result_ && consumeTokens(builder_, 2, C, D, E);
pinned_ = result_; // pin = 5
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
/* ********************************************************** */
// table_ref a b table_ref c d e
static boolean token_sequence3(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence3")) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_);
result_ = parseReference(builder_, level_ + 1);
pinned_ = result_; // pin = 1
result_ = result_ && report_error_(builder_, consumeTokens(builder_, -1, A, B));
result_ = pinned_ && report_error_(builder_, parseReference(builder_, level_ + 1)) && result_;
result_ = pinned_ && report_error_(builder_, consumeTokens(builder_, -1, C, D, E)) && result_;
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
/* ********************************************************** */
// [] a
static boolean token_sequence4(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence4")) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_);
result_ = token_sequence4_0(builder_, level_ + 1);
pinned_ = result_; // pin = 1
result_ = result_ && consumeToken(builder_, A);
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
// []
private static boolean token_sequence4_0(PsiBuilder builder_, int level_) {
return true;
}
/* ********************************************************** */
// (a|&b) pinned_on_start
static boolean token_sequence5(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence5")) return false;
if (!nextTokenIs(builder_, "", A, B)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = token_sequence5_0(builder_, level_ + 1);
result_ = result_ && pinned_on_start(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// a|&b
private static boolean token_sequence5_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence5_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, A);
if (!result_) result_ = token_sequence5_0_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// &b
private static boolean token_sequence5_0_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence5_0_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _AND_);
result_ = consumeToken(builder_, B);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// '+' a "+" a '+++'
static boolean token_sequence6(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "token_sequence6")) return false;
if (!nextTokenIs(builder_, PLUS)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeTokens(builder_, 0, PLUS, A, PLUS, A);
result_ = result_ && consumeToken(builder_, "+++");
exit_section_(builder_, marker_, null, result_);
return result_;
}
}