// ---- GeneratedParser.java -----------------
//header.txt
package generated;
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 GeneratedParser 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);
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 file(builder_, level_ + 1);
}
public static final TokenSet[] EXTENDS_SETS_ = new TokenSet[] {
create_token_set_(ABC, ABC_ONE, ABC_PIN, ABC_SEQ,
ABC_THREE, ABC_TWO),
};
/* ********************************************************** */
// prefix? abc_three? (abc_one | abc_two | abc_three)
public static boolean abc(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, ABC, "<abc>");
result_ = abc_0(builder_, level_ + 1);
result_ = result_ && abc_1(builder_, level_ + 1);
result_ = result_ && abc_2(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// prefix?
private static boolean abc_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_0")) return false;
prefix(builder_, level_ + 1);
return true;
}
// abc_three?
private static boolean abc_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_1")) return false;
abc_three(builder_, level_ + 1);
return true;
}
// abc_one | abc_two | abc_three
private static boolean abc_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_2")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = abc_one(builder_, level_ + 1);
if (!result_) result_ = abc_two(builder_, level_ + 1);
if (!result_) result_ = abc_three(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// B
public static boolean abc_one(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_one")) return false;
if (!nextTokenIs(builder_, B)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _UPPER_, ABC_ONE, null);
result_ = consumeToken(builder_, B);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// prefix (abc_one | abc_two)
public static boolean abc_pin(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_pin")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_, pinned_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, ABC_PIN, null);
result_ = prefix(builder_, level_ + 1);
pinned_ = result_; // pin = 1
result_ = result_ && abc_pin_1(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, pinned_, null);
return result_ || pinned_;
}
// abc_one | abc_two
private static boolean abc_pin_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_pin_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = abc_one(builder_, level_ + 1);
if (!result_) result_ = abc_two(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// prefix abc_one abc_two
public static boolean abc_seq(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_seq")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = prefix(builder_, level_ + 1);
result_ = result_ && abc_one(builder_, level_ + 1);
result_ = result_ && abc_two(builder_, level_ + 1);
exit_section_(builder_, marker_, ABC_SEQ, result_);
return result_;
}
/* ********************************************************** */
// X
public static boolean abc_three(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_three")) return false;
if (!nextTokenIs(builder_, X)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, X);
exit_section_(builder_, marker_, ABC_THREE, result_);
return result_;
}
/* ********************************************************** */
// C
public static boolean abc_two(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "abc_two")) return false;
if (!nextTokenIs(builder_, C)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _UPPER_, ABC_TWO, null);
result_ = consumeToken(builder_, C);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// root (';' root) *
static boolean file(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "file")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = root(builder_, level_ + 1);
result_ = result_ && file_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// (';' root) *
private static boolean file_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "file_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!file_1_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "file_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
// ';' root
private static boolean file_1_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "file_1_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ";");
result_ = result_ && root(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// A
public static boolean prefix(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "prefix")) return false;
if (!nextTokenIs(builder_, A)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, A);
exit_section_(builder_, marker_, PREFIX, result_);
return result_;
}
/* ********************************************************** */
// (abc | abc_pin | abc_seq) *
public static boolean root(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root")) return false;
Marker marker_ = enter_section_(builder_, level_, _NONE_, ROOT, "<root>");
int pos_ = current_position_(builder_);
while (true) {
if (!root_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "root", pos_)) break;
pos_ = current_position_(builder_);
}
exit_section_(builder_, level_, marker_, true, false, null);
return true;
}
// abc | abc_pin | abc_seq
private static boolean root_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = abc(builder_, level_ + 1);
if (!result_) result_ = abc_pin(builder_, level_ + 1);
if (!result_) result_ = abc_seq(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
}