// ---- PsiGen.java -----------------
//header.txt
package ;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import static generated.GeneratedTypes.*;
import static PsiGenUtil.*;
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 PsiGen 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_ == EXPR) {
result_ = expr(builder_, 0);
}
else if (root_ == GRAMMAR_ELEMENT) {
result_ = grammar_element(builder_, 0);
}
else if (root_ == MUL_EXPR) {
result_ = mul_expr(builder_, 0);
}
else if (root_ == PLUS_EXPR) {
result_ = plus_expr(builder_, 0);
}
else if (root_ == ROOT_B) {
result_ = root_b(builder_, 0);
}
else if (root_ == ROOT_C) {
result_ = root_c(builder_, 0);
}
else if (root_ == ROOT_D) {
result_ = root_d(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_(ROOT_B, ROOT_C, ROOT_D),
create_token_set_(A_STATEMENT, B_STATEMENT, C_STATEMENT, STATEMENT),
create_token_set_(CAST_EXPR, CHOICE_JOINED, EXPR, ID_EXPR,
ITEM_EXPR, LITERAL, MISSING_EXTERNAL_TYPE, MUL_EXPR,
PLUS_EXPR, REF_EXPR, SOME_EXPR, SPECIAL_REF),
};
/* ********************************************************** */
// b_expr plus_expr *
static boolean a_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "a_expr")) return false;
if (!nextTokenIs(builder_, "", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = b_expr(builder_, level_ + 1);
result_ = result_ && a_expr_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// plus_expr *
private static boolean a_expr_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "a_expr_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!plus_expr(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "a_expr_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// id_expr mul_expr *
static boolean b_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "b_expr")) return false;
if (!nextTokenIs(builder_, "", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = id_expr(builder_, level_ + 1);
result_ = result_ && b_expr_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// mul_expr *
private static boolean b_expr_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "b_expr_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!mul_expr(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "b_expr_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// a_expr (',' a_expr) *
public static boolean expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "expr")) return false;
if (!nextTokenIs(builder_, "<expr>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, EXPR, "<expr>");
result_ = a_expr(builder_, level_ + 1);
result_ = result_ && expr_1(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// (',' a_expr) *
private static boolean expr_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "expr_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!expr_1_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "expr_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
// ',' a_expr
private static boolean expr_1_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "expr_1_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ",");
result_ = result_ && a_expr(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// id
public static boolean external_same_as_type2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "external_same_as_type2")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ID);
exit_section_(builder_, marker_, ID_EXPR, result_);
return result_;
}
/* ********************************************************** */
// number
public static boolean external_type(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "external_type")) return false;
if (!nextTokenIs(builder_, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, NUMBER);
exit_section_(builder_, marker_, MISSING_EXTERNAL_TYPE, result_);
return result_;
}
/* ********************************************************** */
// id
public static boolean external_type2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "external_type2")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ID);
exit_section_(builder_, marker_, ID_EXPR, result_);
return result_;
}
/* ********************************************************** */
// id
public static boolean external_type3(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "external_type3")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ID);
exit_section_(builder_, marker_, EXPR, result_);
return result_;
}
/* ********************************************************** */
// expr | external_type3
public static boolean grammar_element(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "grammar_element")) return false;
if (!nextTokenIs(builder_, "<grammar element>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, GRAMMAR_ELEMENT, "<grammar element>");
result_ = expr(builder_, level_ + 1);
if (!result_) result_ = external_type3(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// specialRef | reference | literal | external_type | external_type2
static boolean id_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "id_expr")) return false;
if (!nextTokenIs(builder_, "", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = PsiGen2.specialRef(builder_, level_ + 1);
if (!result_) result_ = PsiGen2.reference(builder_, level_ + 1);
if (!result_) result_ = PsiGen2.literal(builder_, level_ + 1);
if (!result_) result_ = external_type(builder_, level_ + 1);
if (!result_) result_ = external_type2(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// <<p>> +
static boolean listOf(PsiBuilder builder_, int level_, Parser p) {
if (!recursion_guard_(builder_, level_, "listOf")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = p.parse(builder_, level_);
int pos_ = current_position_(builder_);
while (result_) {
if (!p.parse(builder_, level_)) break;
if (!empty_element_parsed_guard_(builder_, "listOf", pos_)) break;
pos_ = current_position_(builder_);
}
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// '*' expr
public static boolean mul_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "mul_expr")) return false;
if (!nextTokenIs(builder_, OP_MUL)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, MUL_EXPR, null);
result_ = consumeToken(builder_, OP_MUL);
result_ = result_ && expr(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// '+' expr
public static boolean plus_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "plus_expr")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, PLUS_EXPR, "<plus expr>");
result_ = consumeToken(builder_, "+");
result_ = result_ && expr(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// root_a | root_b | root_c | root_d
static boolean root(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = parseGrammar(builder_, level_ + 1, grammar_element_parser_);
if (!result_) result_ = root_b(builder_, level_ + 1);
if (!result_) result_ = root_c(builder_, level_ + 1);
if (!result_) result_ = root_d(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// <<parseGrammar grammar_element>>
public static boolean root_b(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root_b")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, ROOT_B, "<root b>");
result_ = parseGrammar(builder_, level_ + 1, grammar_element_parser_);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// <<blockOf grammar_element>>
public static boolean root_c(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root_c")) return false;
if (!nextTokenIs(builder_, "<root c>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, ROOT_C, "<root c>");
result_ = PsiGen2.blockOf(builder_, level_ + 1, grammar_element_parser_);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// <<listOf grammar_element>>
public static boolean root_d(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "root_d")) return false;
if (!nextTokenIs(builder_, "<root d>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, ROOT_D, "<root d>");
result_ = listOf(builder_, level_ + 1, grammar_element_parser_);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
final static Parser grammar_element_parser_ = new Parser() {
public boolean parse(PsiBuilder builder_, int level_) {
return grammar_element(builder_, level_ + 1);
}
};
}
// ---- PsiGen2.java -----------------
//header.txt
package ;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import static generated.GeneratedTypes.*;
import static PsiGenUtil.*;
import static PsiGen.*;
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class PsiGen2 {
/* ********************************************************** */
// <<p>> +
public static boolean blockOf(PsiBuilder builder_, int level_, Parser p) {
if (!recursion_guard_(builder_, level_, "blockOf")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = p.parse(builder_, level_);
int pos_ = current_position_(builder_);
while (result_) {
if (!p.parse(builder_, level_)) break;
if (!empty_element_parsed_guard_(builder_, "blockOf", pos_)) break;
pos_ = current_position_(builder_);
}
exit_section_(builder_, marker_, BLOCK_OF, result_);
return result_;
}
/* ********************************************************** */
// '::' id
public static boolean cast_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "cast_expr")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, CAST_EXPR, "<cast expr>");
result_ = consumeToken(builder_, "::");
result_ = result_ && consumeToken(builder_, ID);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// id
public static boolean identifier(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "identifier")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, ID);
exit_section_(builder_, marker_, IDENTIFIER, result_);
return result_;
}
/* ********************************************************** */
// '[' number ']'
public static boolean item_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "item_expr")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, ITEM_EXPR, "<item expr>");
result_ = consumeToken(builder_, "[");
result_ = result_ && consumeToken(builder_, NUMBER);
result_ = result_ && consumeToken(builder_, "]");
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// number
public static boolean literal(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "literal")) return false;
if (!nextTokenIs(builder_, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, NUMBER);
exit_section_(builder_, marker_, LITERAL, result_);
return result_;
}
/* ********************************************************** */
// '.' identifier
public static boolean qref_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "qref_expr")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, REF_EXPR, "<qref expr>");
result_ = consumeToken(builder_, ".");
result_ = result_ && identifier(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// identifier
public static boolean ref_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "ref_expr")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = identifier(builder_, level_ + 1);
exit_section_(builder_, marker_, REF_EXPR, result_);
return result_;
}
/* ********************************************************** */
// ref_expr qref_expr *
static boolean reference(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "reference")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = ref_expr(builder_, level_ + 1);
result_ = result_ && reference_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// qref_expr *
private static boolean reference_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "reference_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!qref_expr(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "reference_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// (a_expr | specialRef b_expr | some_expr_private) (cast_expr) (item_expr) *
public static boolean some_expr(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr")) return false;
if (!nextTokenIs(builder_, "<some expr>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, SOME_EXPR, "<some expr>");
result_ = some_expr_0(builder_, level_ + 1);
result_ = result_ && some_expr_1(builder_, level_ + 1);
result_ = result_ && some_expr_2(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// a_expr | specialRef b_expr | some_expr_private
private static boolean some_expr_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = a_expr(builder_, level_ + 1);
if (!result_) result_ = some_expr_0_1(builder_, level_ + 1);
if (!result_) result_ = some_expr_private(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// specialRef b_expr
private static boolean some_expr_0_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_0_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = specialRef(builder_, level_ + 1);
result_ = result_ && b_expr(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// (cast_expr)
private static boolean some_expr_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = cast_expr(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// (item_expr) *
private static boolean some_expr_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_2")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!some_expr_2_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "some_expr_2", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
// (item_expr)
private static boolean some_expr_2_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_2_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = item_expr(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// specialRef b_expr
static boolean some_expr_private(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "some_expr_private")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = specialRef(builder_, level_ + 1);
result_ = result_ && b_expr(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// identifier OF reference
public static boolean specialRef(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "specialRef")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = identifier(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, OF);
result_ = result_ && reference(builder_, level_ + 1);
exit_section_(builder_, marker_, SPECIAL_REF, result_);
return result_;
}
}
// ---- PsiGenFixes.java -----------------
//header.txt
package ;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import static generated.GeneratedTypes.*;
import static PsiGenUtil.*;
import static PsiGen.*;
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class PsiGenFixes {
/* ********************************************************** */
// ',' identifier
public static boolean LeftShadow(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "LeftShadow")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _LEFT_, LEFT_SHADOW, "<left shadow>");
result_ = consumeToken(builder_, ",");
result_ = result_ && PsiGen2.identifier(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// identifier LeftShadow *
public static boolean LeftShadowTest(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "LeftShadowTest")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = PsiGen2.identifier(builder_, level_ + 1);
result_ = result_ && LeftShadowTest_1(builder_, level_ + 1);
exit_section_(builder_, marker_, LEFT_SHADOW_TEST, result_);
return result_;
}
// LeftShadow *
private static boolean LeftShadowTest_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "LeftShadowTest_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!LeftShadow(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "LeftShadowTest_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// id | number
public static boolean a_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "a_statement")) return false;
if (!nextTokenIs(builder_, "<a statement>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, A_STATEMENT, "<a statement>");
result_ = consumeToken(builder_, ID);
if (!result_) result_ = consumeToken(builder_, NUMBER);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// id | number
public static boolean b_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "b_statement")) return false;
if (!nextTokenIs(builder_, "<b statement>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, B_STATEMENT, "<b statement>");
result_ = consumeToken(builder_, ID);
if (!result_) result_ = consumeToken(builder_, NUMBER);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// id | number
public static boolean c_statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "c_statement")) return false;
if (!nextTokenIs(builder_, "<c statement>", ID, NUMBER)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, C_STATEMENT, "<c statement>");
result_ = consumeToken(builder_, ID);
if (!result_) result_ = consumeToken(builder_, NUMBER);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
/* ********************************************************** */
// literal id '%' | '%' id literal
public static boolean choice_joined(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "choice_joined")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NONE_, CHOICE_JOINED, "<choice joined>");
result_ = choice_joined_0(builder_, level_ + 1);
if (!result_) result_ = choice_joined_1(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// literal id '%'
private static boolean choice_joined_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "choice_joined_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = PsiGen2.literal(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, ID);
result_ = result_ && consumeToken(builder_, "%");
exit_section_(builder_, marker_, null, result_);
return result_;
}
// '%' id literal
private static boolean choice_joined_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "choice_joined_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, "%");
result_ = result_ && consumeToken(builder_, ID);
result_ = result_ && PsiGen2.literal(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// <<blockOf identifier>>
static boolean fixMetaRule(PsiBuilder builder_, int level_) {
return PsiGen2.blockOf(builder_, level_ + 1, identifier_parser_);
}
/* ********************************************************** */
// identifier
public static boolean publicMethodToCall(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "publicMethodToCall")) return false;
if (!nextTokenIs(builder_, ID)) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = PsiGen2.identifier(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
/* ********************************************************** */
// &<<external>> (a_statement | b_statement) | !<<external>> (c_statement)
public static boolean statement(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _COLLAPSE_, STATEMENT, "<statement>");
result_ = statement_0(builder_, level_ + 1);
if (!result_) result_ = statement_1(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// &<<external>> (a_statement | b_statement)
private static boolean statement_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = statement_0_0(builder_, level_ + 1);
result_ = result_ && statement_0_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// &<<external>>
private static boolean statement_0_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_0_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _AND_);
result_ = external(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// a_statement | b_statement
private static boolean statement_0_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_0_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = a_statement(builder_, level_ + 1);
if (!result_) result_ = b_statement(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// !<<external>> (c_statement)
private static boolean statement_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = statement_1_0(builder_, level_ + 1);
result_ = result_ && statement_1_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// !<<external>>
private static boolean statement_1_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_1_0")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_, level_, _NOT_);
result_ = !external(builder_, level_ + 1);
exit_section_(builder_, level_, marker_, result_, false, null);
return result_;
}
// (c_statement)
private static boolean statement_1_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "statement_1_1")) return false;
boolean result_;
Marker marker_ = enter_section_(builder_);
result_ = c_statement(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
final static Parser identifier_parser_ = new Parser() {
public boolean parse(PsiBuilder builder_, int level_) {
return PsiGen2.identifier(builder_, level_ + 1);
}
};
}