// This is a generated file. Not intended for manual editing.
package com.thoughtworks.gauge.parser;
import com.intellij.lang.ASTNode;
import com.intellij.lang.LightPsiParser;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import com.intellij.lang.PsiParser;
import com.intellij.psi.tree.IElementType;
import static com.intellij.lang.parser.GeneratedParserUtilBase.*;
import static com.thoughtworks.gauge.language.token.ConceptTokenTypes.*;
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class ConceptParser implements PsiParser, LightPsiParser {
public ASTNode parse(IElementType t, PsiBuilder b) {
parseLight(t, b);
return b.getTreeBuilt();
}
public void parseLight(IElementType t, PsiBuilder b) {
boolean r;
b = adapt_builder_(t, b, this, null);
Marker m = enter_section_(b, 0, _COLLAPSE_, null);
if (t == ARG) {
r = arg(b, 0);
} else if (t == CONCEPT) {
r = concept(b, 0);
} else if (t == CONCEPT_HEADING) {
r = conceptHeading(b, 0);
} else if (t == DYNAMIC_ARG) {
r = dynamicArg(b, 0);
} else if (t == STATIC_ARG) {
r = staticArg(b, 0);
} else if (t == STEP) {
r = step(b, 0);
} else if (t == TABLE) {
r = table(b, 0);
} else if (t == TABLE_BODY) {
r = tableBody(b, 0);
} else if (t == TABLE_HEADER) {
r = tableHeader(b, 0);
} else if (t == TABLE_ROW_VALUE) {
r = tableRowValue(b, 0);
} else {
r = parse_root_(t, b, 0);
}
exit_section_(b, 0, m, t, r, true, TRUE_CONDITION);
}
protected boolean parse_root_(IElementType t, PsiBuilder b, int l) {
return conceptFile(b, l + 1);
}
/* ********************************************************** */
// dynamicArg | staticArg
public static boolean arg(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "arg")) return false;
if (!nextTokenIs(b, "<arg>", ARG_START, DYNAMIC_ARG_START)) return false;
boolean r;
Marker m = enter_section_(b, l, _NONE_, ARG, "<arg>");
r = dynamicArg(b, l + 1);
if (!r) r = staticArg(b, l + 1);
exit_section_(b, l, m, r, false, null);
return r;
}
/* ********************************************************** */
// COMMENT
static boolean comment(PsiBuilder b, int l) {
return consumeToken(b, COMMENT);
}
/* ********************************************************** */
// conceptHeading NEW_LINE* (step NEW_LINE* | comment) +
public static boolean concept(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept")) return false;
if (!nextTokenIs(b, "<concept>", CONCEPT_HEADING, CONCEPT_HEADING_IDENTIFIER)) return false;
boolean r;
Marker m = enter_section_(b, l, _NONE_, CONCEPT, "<concept>");
r = conceptHeading(b, l + 1);
r = r && concept_1(b, l + 1);
r = r && concept_2(b, l + 1);
exit_section_(b, l, m, r, false, null);
return r;
}
// NEW_LINE*
private static boolean concept_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept_1")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, NEW_LINE)) break;
if (!empty_element_parsed_guard_(b, "concept_1", c)) break;
c = current_position_(b);
}
return true;
}
// (step NEW_LINE* | comment) +
private static boolean concept_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept_2")) return false;
boolean r;
Marker m = enter_section_(b);
r = concept_2_0(b, l + 1);
int c = current_position_(b);
while (r) {
if (!concept_2_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "concept_2", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// step NEW_LINE* | comment
private static boolean concept_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = concept_2_0_0(b, l + 1);
if (!r) r = comment(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// step NEW_LINE*
private static boolean concept_2_0_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept_2_0_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = step(b, l + 1);
r = r && concept_2_0_0_1(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// NEW_LINE*
private static boolean concept_2_0_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "concept_2_0_0_1")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, NEW_LINE)) break;
if (!empty_element_parsed_guard_(b, "concept_2_0_0_1", c)) break;
c = current_position_(b);
}
return true;
}
/* ********************************************************** */
// CONCEPT_COMMENT
static boolean conceptComment(PsiBuilder b, int l) {
return consumeToken(b, CONCEPT_COMMENT);
}
/* ********************************************************** */
// (comment)* concept+
static boolean conceptFile(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptFile")) return false;
boolean r;
Marker m = enter_section_(b);
r = conceptFile_0(b, l + 1);
r = r && conceptFile_1(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// (comment)*
private static boolean conceptFile_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptFile_0")) return false;
int c = current_position_(b);
while (true) {
if (!conceptFile_0_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "conceptFile_0", c)) break;
c = current_position_(b);
}
return true;
}
// (comment)
private static boolean conceptFile_0_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptFile_0_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = comment(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// concept+
private static boolean conceptFile_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptFile_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = concept(b, l + 1);
int c = current_position_(b);
while (r) {
if (!concept(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "conceptFile_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
/* ********************************************************** */
// (CONCEPT_HEADING_IDENTIFIER (CONCEPT_HEADING|dynamicArg)* NEW_LINE) | (CONCEPT_HEADING)
public static boolean conceptHeading(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptHeading")) return false;
if (!nextTokenIs(b, "<concept heading>", CONCEPT_HEADING, CONCEPT_HEADING_IDENTIFIER)) return false;
boolean r;
Marker m = enter_section_(b, l, _NONE_, CONCEPT_HEADING, "<concept heading>");
r = conceptHeading_0(b, l + 1);
if (!r) r = consumeToken(b, CONCEPT_HEADING);
exit_section_(b, l, m, r, false, null);
return r;
}
// CONCEPT_HEADING_IDENTIFIER (CONCEPT_HEADING|dynamicArg)* NEW_LINE
private static boolean conceptHeading_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptHeading_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, CONCEPT_HEADING_IDENTIFIER);
r = r && conceptHeading_0_1(b, l + 1);
r = r && consumeToken(b, NEW_LINE);
exit_section_(b, m, null, r);
return r;
}
// (CONCEPT_HEADING|dynamicArg)*
private static boolean conceptHeading_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptHeading_0_1")) return false;
int c = current_position_(b);
while (true) {
if (!conceptHeading_0_1_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "conceptHeading_0_1", c)) break;
c = current_position_(b);
}
return true;
}
// CONCEPT_HEADING|dynamicArg
private static boolean conceptHeading_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "conceptHeading_0_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, CONCEPT_HEADING);
if (!r) r = dynamicArg(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
/* ********************************************************** */
// DYNAMIC_ARG_START DYNAMIC_ARG DYNAMIC_ARG_END
public static boolean dynamicArg(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "dynamicArg")) return false;
if (!nextTokenIs(b, DYNAMIC_ARG_START)) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokens(b, 0, DYNAMIC_ARG_START, DYNAMIC_ARG, DYNAMIC_ARG_END);
exit_section_(b, m, DYNAMIC_ARG, r);
return r;
}
/* ********************************************************** */
// ARG_START ARG? ARG_END
public static boolean staticArg(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "staticArg")) return false;
if (!nextTokenIs(b, ARG_START)) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, ARG_START);
r = r && staticArg_1(b, l + 1);
r = r && consumeToken(b, ARG_END);
exit_section_(b, m, STATIC_ARG, r);
return r;
}
// ARG?
private static boolean staticArg_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "staticArg_1")) return false;
consumeToken(b, ARG);
return true;
}
/* ********************************************************** */
// STEP_IDENTIFIER (arg|STEP)+ (comment | NEW_LINE)* table?
public static boolean step(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step")) return false;
if (!nextTokenIs(b, STEP_IDENTIFIER)) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, STEP_IDENTIFIER);
r = r && step_1(b, l + 1);
r = r && step_2(b, l + 1);
r = r && step_3(b, l + 1);
exit_section_(b, m, STEP, r);
return r;
}
// (arg|STEP)+
private static boolean step_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = step_1_0(b, l + 1);
int c = current_position_(b);
while (r) {
if (!step_1_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "step_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// arg|STEP
private static boolean step_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = arg(b, l + 1);
if (!r) r = consumeToken(b, STEP);
exit_section_(b, m, null, r);
return r;
}
// (comment | NEW_LINE)*
private static boolean step_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step_2")) return false;
int c = current_position_(b);
while (true) {
if (!step_2_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "step_2", c)) break;
c = current_position_(b);
}
return true;
}
// comment | NEW_LINE
private static boolean step_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = comment(b, l + 1);
if (!r) r = consumeToken(b, NEW_LINE);
exit_section_(b, m, null, r);
return r;
}
// table?
private static boolean step_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "step_3")) return false;
table(b, l + 1);
return true;
}
/* ********************************************************** */
// tableHeader tableBody
public static boolean table(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "table")) return false;
if (!nextTokenIs(b, TABLE_BORDER)) return false;
boolean r;
Marker m = enter_section_(b);
r = tableHeader(b, l + 1);
r = r && tableBody(b, l + 1);
exit_section_(b, m, TABLE, r);
return r;
}
/* ********************************************************** */
// (TABLE_BORDER (WHITESPACE* tableRowValue? WHITESPACE* TABLE_BORDER)+ NEW_LINE?)*
public static boolean tableBody(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody")) return false;
Marker m = enter_section_(b, l, _NONE_, TABLE_BODY, "<table body>");
int c = current_position_(b);
while (true) {
if (!tableBody_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "tableBody", c)) break;
c = current_position_(b);
}
exit_section_(b, l, m, true, false, null);
return true;
}
// TABLE_BORDER (WHITESPACE* tableRowValue? WHITESPACE* TABLE_BORDER)+ NEW_LINE?
private static boolean tableBody_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, TABLE_BORDER);
r = r && tableBody_0_1(b, l + 1);
r = r && tableBody_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// (WHITESPACE* tableRowValue? WHITESPACE* TABLE_BORDER)+
private static boolean tableBody_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = tableBody_0_1_0(b, l + 1);
int c = current_position_(b);
while (r) {
if (!tableBody_0_1_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "tableBody_0_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// WHITESPACE* tableRowValue? WHITESPACE* TABLE_BORDER
private static boolean tableBody_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = tableBody_0_1_0_0(b, l + 1);
r = r && tableBody_0_1_0_1(b, l + 1);
r = r && tableBody_0_1_0_2(b, l + 1);
r = r && consumeToken(b, TABLE_BORDER);
exit_section_(b, m, null, r);
return r;
}
// WHITESPACE*
private static boolean tableBody_0_1_0_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_1_0_0")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, WHITESPACE)) break;
if (!empty_element_parsed_guard_(b, "tableBody_0_1_0_0", c)) break;
c = current_position_(b);
}
return true;
}
// tableRowValue?
private static boolean tableBody_0_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_1_0_1")) return false;
tableRowValue(b, l + 1);
return true;
}
// WHITESPACE*
private static boolean tableBody_0_1_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_1_0_2")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, WHITESPACE)) break;
if (!empty_element_parsed_guard_(b, "tableBody_0_1_0_2", c)) break;
c = current_position_(b);
}
return true;
}
// NEW_LINE?
private static boolean tableBody_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableBody_0_2")) return false;
consumeToken(b, NEW_LINE);
return true;
}
/* ********************************************************** */
// TABLE_BORDER (TABLE_HEADER TABLE_BORDER)+ NEW_LINE ((TABLE_BORDER)* NEW_LINE)?
public static boolean tableHeader(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader")) return false;
if (!nextTokenIs(b, TABLE_BORDER)) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, TABLE_BORDER);
r = r && tableHeader_1(b, l + 1);
r = r && consumeToken(b, NEW_LINE);
r = r && tableHeader_3(b, l + 1);
exit_section_(b, m, TABLE_HEADER, r);
return r;
}
// (TABLE_HEADER TABLE_BORDER)+
private static boolean tableHeader_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = tableHeader_1_0(b, l + 1);
int c = current_position_(b);
while (r) {
if (!tableHeader_1_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "tableHeader_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// TABLE_HEADER TABLE_BORDER
private static boolean tableHeader_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokens(b, 0, TABLE_HEADER, TABLE_BORDER);
exit_section_(b, m, null, r);
return r;
}
// ((TABLE_BORDER)* NEW_LINE)?
private static boolean tableHeader_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader_3")) return false;
tableHeader_3_0(b, l + 1);
return true;
}
// (TABLE_BORDER)* NEW_LINE
private static boolean tableHeader_3_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader_3_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = tableHeader_3_0_0(b, l + 1);
r = r && consumeToken(b, NEW_LINE);
exit_section_(b, m, null, r);
return r;
}
// (TABLE_BORDER)*
private static boolean tableHeader_3_0_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableHeader_3_0_0")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, TABLE_BORDER)) break;
if (!empty_element_parsed_guard_(b, "tableHeader_3_0_0", c)) break;
c = current_position_(b);
}
return true;
}
/* ********************************************************** */
// TABLE_ROW_VALUE+ | (DYNAMIC_ARG_START DYNAMIC_ARG+ DYNAMIC_ARG_END WHITESPACE* TABLE_ROW_VALUE* WHITESPACE*)+
public static boolean tableRowValue(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue")) return false;
if (!nextTokenIs(b, "<table row value>", DYNAMIC_ARG_START, TABLE_ROW_VALUE)) return false;
boolean r;
Marker m = enter_section_(b, l, _NONE_, TABLE_ROW_VALUE, "<table row value>");
r = tableRowValue_0(b, l + 1);
if (!r) r = tableRowValue_1(b, l + 1);
exit_section_(b, l, m, r, false, null);
return r;
}
// TABLE_ROW_VALUE+
private static boolean tableRowValue_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, TABLE_ROW_VALUE);
int c = current_position_(b);
while (r) {
if (!consumeToken(b, TABLE_ROW_VALUE)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_0", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// (DYNAMIC_ARG_START DYNAMIC_ARG+ DYNAMIC_ARG_END WHITESPACE* TABLE_ROW_VALUE* WHITESPACE*)+
private static boolean tableRowValue_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = tableRowValue_1_0(b, l + 1);
int c = current_position_(b);
while (r) {
if (!tableRowValue_1_0(b, l + 1)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// DYNAMIC_ARG_START DYNAMIC_ARG+ DYNAMIC_ARG_END WHITESPACE* TABLE_ROW_VALUE* WHITESPACE*
private static boolean tableRowValue_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, DYNAMIC_ARG_START);
r = r && tableRowValue_1_0_1(b, l + 1);
r = r && consumeToken(b, DYNAMIC_ARG_END);
r = r && tableRowValue_1_0_3(b, l + 1);
r = r && tableRowValue_1_0_4(b, l + 1);
r = r && tableRowValue_1_0_5(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DYNAMIC_ARG+
private static boolean tableRowValue_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1_0_1")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeToken(b, DYNAMIC_ARG);
int c = current_position_(b);
while (r) {
if (!consumeToken(b, DYNAMIC_ARG)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_1_0_1", c)) break;
c = current_position_(b);
}
exit_section_(b, m, null, r);
return r;
}
// WHITESPACE*
private static boolean tableRowValue_1_0_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1_0_3")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, WHITESPACE)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_1_0_3", c)) break;
c = current_position_(b);
}
return true;
}
// TABLE_ROW_VALUE*
private static boolean tableRowValue_1_0_4(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1_0_4")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, TABLE_ROW_VALUE)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_1_0_4", c)) break;
c = current_position_(b);
}
return true;
}
// WHITESPACE*
private static boolean tableRowValue_1_0_5(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "tableRowValue_1_0_5")) return false;
int c = current_position_(b);
while (true) {
if (!consumeToken(b, WHITESPACE)) break;
if (!empty_element_parsed_guard_(b, "tableRowValue_1_0_5", c)) break;
c = current_position_(b);
}
return true;
}
}