// This is a generated file. Not intended for manual editing. package ee.edio.garmin.parser; import com.intellij.lang.PsiBuilder; import com.intellij.lang.PsiBuilder.Marker; import static ee.edio.garmin.psi.MonkeyTypes.*; import static ee.edio.garmin.parser.MonkeyParserUtil.*; 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 MonkeyParser 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, EXTENDS_SETS_); Marker m = enter_section_(b, 0, _COLLAPSE_, null); if (t == ADDITIVE_EXPRESSION) { r = additiveExpression(b, 0); } else if (t == AND_EXPRESSION) { r = andExpression(b, 0); } else if (t == ANNOTATION) { r = annotation(b, 0); } else if (t == ARGUMENTS) { r = arguments(b, 0); } else if (t == ARRAY_CREATOR) { r = arrayCreator(b, 0); } else if (t == ARRAY_INITIALIZER) { r = arrayInitializer(b, 0); } else if (t == ASSIGNMENT_OPERATOR) { r = assignmentOperator(b, 0); } else if (t == BITWISE_EXPRESSION) { r = bitwiseExpression(b, 0); } else if (t == BITWISE_OPERATOR) { r = bitwiseOperator(b, 0); } else if (t == BLOCK) { r = block(b, 0); } else if (t == BLOCK_STATEMENT) { r = blockStatement(b, 0); } else if (t == CATCH_CLAUSE) { r = catchClause(b, 0); } else if (t == CATCH_PARAMETER) { r = catchParameter(b, 0); } else if (t == CATCHES) { r = catches(b, 0); } else if (t == CLASS_BODY) { r = classBody(b, 0); } else if (t == CLASS_BODY_DECLARATION) { r = classBodyDeclaration(b, 0); } else if (t == CLASS_CREATOR_REST) { r = classCreatorRest(b, 0); } else if (t == CLASS_DECLARATION) { r = classDeclaration(b, 0); } else if (t == COMPONENT_NAME) { r = componentName(b, 0); } else if (t == CONDITIONAL_AND_EXPRESSION) { r = conditionalAndExpression(b, 0); } else if (t == CONDITIONAL_EXPRESSION) { r = conditionalExpression(b, 0); } else if (t == CONDITIONAL_OR_EXPRESSION) { r = conditionalOrExpression(b, 0); } else if (t == CONST_DECLARATION) { r = constDeclaration(b, 0); } else if (t == CREATOR) { r = creator(b, 0); } else if (t == DICTIONARY_CREATOR) { r = dictionaryCreator(b, 0); } else if (t == ENUM_BODY) { r = enumBody(b, 0); } else if (t == ENUM_BODY_DECLARATIONS) { r = enumBodyDeclarations(b, 0); } else if (t == ENUM_CONSTANT) { r = enumConstant(b, 0); } else if (t == ENUM_CONSTANTS) { r = enumConstants(b, 0); } else if (t == EQUALITY_EXPRESSION) { r = equalityExpression(b, 0); } else if (t == EXCLUSIVE_OR_EXPRESSION) { r = exclusiveOrExpression(b, 0); } else if (t == EXPLICIT_CONSTRUCTOR_INVOCATION) { r = explicitConstructorInvocation(b, 0); } else if (t == EXPRESSION) { r = expression(b, 0); } else if (t == EXPRESSION_LIST) { r = expressionList(b, 0); } else if (t == FIELD_DECLARATION) { r = fieldDeclaration(b, 0); } else if (t == FOR_INIT) { r = forInit(b, 0); } else if (t == FOR_STATEMENT) { r = forStatement(b, 0); } else if (t == FORMAL_PARAMETER_DECLS) { r = formalParameterDecls(b, 0); } else if (t == FORMAL_PARAMETERS) { r = formalParameters(b, 0); } else if (t == FUNCTION_DECLARATION) { r = functionDeclaration(b, 0); } else if (t == HAS_EXPRESSION) { r = hasExpression(b, 0); } else if (t == ID) { r = id(b, 0); } else if (t == IDENTIFIER_SUFFIX) { r = identifierSuffix(b, 0); } else if (t == INCLUSIVE_OR_EXPRESSION) { r = inclusiveOrExpression(b, 0); } else if (t == INSTANCE_OF_EXPRESSION) { r = instanceOfExpression(b, 0); } else if (t == KEY_VALUE_INITIALIZER) { r = keyValueInitializer(b, 0); } else if (t == LITERAL) { r = literal(b, 0); } else if (t == LOCAL_VARIABLE_DECLARATION) { r = localVariableDeclaration(b, 0); } else if (t == LOCAL_VARIABLE_DECLARATION_STATEMENT) { r = localVariableDeclarationStatement(b, 0); } else if (t == MODIFIERS) { r = modifiers(b, 0); } else if (t == MODULE_BODY) { r = moduleBody(b, 0); } else if (t == MODULE_DECLARATION) { r = moduleDeclaration(b, 0); } else if (t == MULTIPLICATIVE_EXPRESSION) { r = multiplicativeExpression(b, 0); } else if (t == NORMAL_PARAMETER_DECL) { r = normalParameterDecl(b, 0); } else if (t == OBJECT_CREATOR) { r = objectCreator(b, 0); } else if (t == PAR_EXPRESSION) { r = parExpression(b, 0); } else if (t == PRIMARY) { r = primary(b, 0); } else if (t == QUALIFIED_NAME) { r = qualifiedName(b, 0); } else if (t == QUALIFIED_NAME_LIST) { r = qualifiedNameList(b, 0); } else if (t == REFERENCE_EXPRESSION) { r = referenceExpression(b, 0); } else if (t == RELATIONAL_EXPRESSION) { r = relationalExpression(b, 0); } else if (t == RELATIONAL_OP) { r = relationalOp(b, 0); } else if (t == SELECTOR) { r = selector(b, 0); } else if (t == SHIFT_EXPRESSION) { r = shiftExpression(b, 0); } else if (t == SHIFT_OP) { r = shiftOp(b, 0); } else if (t == STATEMENT) { r = statement(b, 0); } else if (t == STRING_LITERAL) { r = stringLiteral(b, 0); } else if (t == SWITCH_BLOCK_STATEMENT_GROUP) { r = switchBlockStatementGroup(b, 0); } else if (t == SWITCH_BLOCK_STATEMENT_GROUPS) { r = switchBlockStatementGroups(b, 0); } else if (t == SWITCH_LABEL) { r = switchLabel(b, 0); } else if (t == SYMBOL) { r = symbol(b, 0); } else if (t == TRY_STATEMENT) { r = tryStatement(b, 0); } else if (t == TYPE) { r = type(b, 0); } else if (t == UNARY_EXPRESSION) { r = unaryExpression(b, 0); } else if (t == UNARY_EXPRESSION_NOT_PLUS_MINUS) { r = unaryExpressionNotPlusMinus(b, 0); } else if (t == USING_DECLARATION) { r = usingDeclaration(b, 0); } else if (t == VARIABLE_DECLARATOR) { r = variableDeclarator(b, 0); } else if (t == VARIABLE_INITIALIZER) { r = variableInitializer(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 monkeyCFile(b, l + 1); } public static final TokenSet[] EXTENDS_SETS_ = new TokenSet[] { create_token_set_(ADDITIVE_EXPRESSION, AND_EXPRESSION, BITWISE_EXPRESSION, CONDITIONAL_AND_EXPRESSION, CONDITIONAL_EXPRESSION, CONDITIONAL_OR_EXPRESSION, EQUALITY_EXPRESSION, EXCLUSIVE_OR_EXPRESSION, EXPRESSION, HAS_EXPRESSION, INCLUSIVE_OR_EXPRESSION, INSTANCE_OF_EXPRESSION, MULTIPLICATIVE_EXPRESSION, PAR_EXPRESSION, REFERENCE_EXPRESSION, RELATIONAL_EXPRESSION, SHIFT_EXPRESSION, UNARY_EXPRESSION), }; /* ********************************************************** */ // multiplicativeExpression ((PLUS | SUB) multiplicativeExpression)* public static boolean additiveExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "additiveExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<additive expression>"); r = multiplicativeExpression(b, l + 1); r = r && additiveExpression_1(b, l + 1); exit_section_(b, l, m, ADDITIVE_EXPRESSION, r, false, null); return r; } // ((PLUS | SUB) multiplicativeExpression)* private static boolean additiveExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "additiveExpression_1")) return false; int c = current_position_(b); while (true) { if (!additiveExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "additiveExpression_1", c)) break; c = current_position_(b); } return true; } // (PLUS | SUB) multiplicativeExpression private static boolean additiveExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "additiveExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = additiveExpression_1_0_0(b, l + 1); r = r && multiplicativeExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // PLUS | SUB private static boolean additiveExpression_1_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "additiveExpression_1_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, PLUS); if (!r) r = consumeToken(b, SUB); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // equalityExpression (AMP equalityExpression)* public static boolean andExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "andExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<and expression>"); r = equalityExpression(b, l + 1); r = r && andExpression_1(b, l + 1); exit_section_(b, l, m, AND_EXPRESSION, r, false, null); return r; } // (AMP equalityExpression)* private static boolean andExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "andExpression_1")) return false; int c = current_position_(b); while (true) { if (!andExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "andExpression_1", c)) break; c = current_position_(b); } return true; } // AMP equalityExpression private static boolean andExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "andExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, AMP); r = r && equalityExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LPAREN symbol RPAREN public static boolean annotation(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "annotation")) return false; if (!nextTokenIs(b, LPAREN)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LPAREN); r = r && symbol(b, l + 1); r = r && consumeToken(b, RPAREN); exit_section_(b, m, ANNOTATION, r); return r; } /* ********************************************************** */ // LPAREN (expressionList)? RPAREN public static boolean arguments(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arguments")) return false; if (!nextTokenIs(b, LPAREN)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LPAREN); r = r && arguments_1(b, l + 1); r = r && consumeToken(b, RPAREN); exit_section_(b, m, ARGUMENTS, r); return r; } // (expressionList)? private static boolean arguments_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arguments_1")) return false; arguments_1_0(b, l + 1); return true; } // (expressionList) private static boolean arguments_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arguments_1_0")) return false; boolean r; Marker m = enter_section_(b); r = expressionList(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // NEW LBRACKET expression RBRACKET // new [expression evaluating to integer] // | LBRACKET (expression (COMMA expression)* )? RBRACKET // [expression1, expression2, ...] // | dictionaryCreator public static boolean arrayCreator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<array creator>"); r = arrayCreator_0(b, l + 1); if (!r) r = arrayCreator_1(b, l + 1); if (!r) r = dictionaryCreator(b, l + 1); exit_section_(b, l, m, ARRAY_CREATOR, r, false, null); return r; } // NEW LBRACKET expression RBRACKET private static boolean arrayCreator_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, NEW, LBRACKET); r = r && expression(b, l + 1); r = r && consumeToken(b, RBRACKET); exit_section_(b, m, null, r); return r; } // LBRACKET (expression (COMMA expression)* )? RBRACKET private static boolean arrayCreator_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACKET); r = r && arrayCreator_1_1(b, l + 1); r = r && consumeToken(b, RBRACKET); exit_section_(b, m, null, r); return r; } // (expression (COMMA expression)* )? private static boolean arrayCreator_1_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_1_1")) return false; arrayCreator_1_1_0(b, l + 1); return true; } // expression (COMMA expression)* private static boolean arrayCreator_1_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_1_1_0")) return false; boolean r; Marker m = enter_section_(b); r = expression(b, l + 1); r = r && arrayCreator_1_1_0_1(b, l + 1); exit_section_(b, m, null, r); return r; } // (COMMA expression)* private static boolean arrayCreator_1_1_0_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_1_1_0_1")) return false; int c = current_position_(b); while (true) { if (!arrayCreator_1_1_0_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "arrayCreator_1_1_0_1", c)) break; c = current_position_(b); } return true; } // COMMA expression private static boolean arrayCreator_1_1_0_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayCreator_1_1_0_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && expression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LBRACE (variableInitializer (COMMA variableInitializer)*)? (COMMA)? RBRACE public static boolean arrayInitializer(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer")) return false; if (!nextTokenIs(b, LBRACE)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACE); r = r && arrayInitializer_1(b, l + 1); r = r && arrayInitializer_2(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, ARRAY_INITIALIZER, r); return r; } // (variableInitializer (COMMA variableInitializer)*)? private static boolean arrayInitializer_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer_1")) return false; arrayInitializer_1_0(b, l + 1); return true; } // variableInitializer (COMMA variableInitializer)* private static boolean arrayInitializer_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer_1_0")) return false; boolean r; Marker m = enter_section_(b); r = variableInitializer(b, l + 1); r = r && arrayInitializer_1_0_1(b, l + 1); exit_section_(b, m, null, r); return r; } // (COMMA variableInitializer)* private static boolean arrayInitializer_1_0_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer_1_0_1")) return false; int c = current_position_(b); while (true) { if (!arrayInitializer_1_0_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "arrayInitializer_1_0_1", c)) break; c = current_position_(b); } return true; } // COMMA variableInitializer private static boolean arrayInitializer_1_0_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer_1_0_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && variableInitializer(b, l + 1); exit_section_(b, m, null, r); return r; } // (COMMA)? private static boolean arrayInitializer_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "arrayInitializer_2")) return false; consumeToken(b, COMMA); return true; } /* ********************************************************** */ // EQ // | PLUSEQ // | SUBEQ // | STAREQ // | SLASHEQ // | AMPEQ // | BAREQ // | CARETEQ // | PERCENTEQ // | LT LT EQ // | GT GT GT EQ // | GT GT EQ public static boolean assignmentOperator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "assignmentOperator")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<assignment operator>"); r = consumeToken(b, EQ); if (!r) r = consumeToken(b, PLUSEQ); if (!r) r = consumeToken(b, SUBEQ); if (!r) r = consumeToken(b, STAREQ); if (!r) r = consumeToken(b, SLASHEQ); if (!r) r = consumeToken(b, AMPEQ); if (!r) r = consumeToken(b, BAREQ); if (!r) r = consumeToken(b, CARETEQ); if (!r) r = consumeToken(b, PERCENTEQ); if (!r) r = parseTokens(b, 0, LT, LT, EQ); if (!r) r = parseTokens(b, 0, GT, GT, GT, EQ); if (!r) r = parseTokens(b, 0, GT, GT, EQ); exit_section_(b, l, m, ASSIGNMENT_OPERATOR, r, false, null); return r; } /* ********************************************************** */ // unaryExpression (bitwiseOperator unaryExpression)* public static boolean bitwiseExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "bitwiseExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<bitwise expression>"); r = unaryExpression(b, l + 1); r = r && bitwiseExpression_1(b, l + 1); exit_section_(b, l, m, BITWISE_EXPRESSION, r, false, null); return r; } // (bitwiseOperator unaryExpression)* private static boolean bitwiseExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "bitwiseExpression_1")) return false; int c = current_position_(b); while (true) { if (!bitwiseExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "bitwiseExpression_1", c)) break; c = current_position_(b); } return true; } // bitwiseOperator unaryExpression private static boolean bitwiseExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "bitwiseExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = bitwiseOperator(b, l + 1); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // AMP | CARET| BAR public static boolean bitwiseOperator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "bitwiseOperator")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<bitwise operator>"); r = consumeToken(b, AMP); if (!r) r = consumeToken(b, CARET); if (!r) r = consumeToken(b, BAR); exit_section_(b, l, m, BITWISE_OPERATOR, r, false, null); return r; } /* ********************************************************** */ // LBRACE blockStatement* RBRACE public static boolean block(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "block")) return false; if (!nextTokenIs(b, LBRACE)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACE); r = r && block_1(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, BLOCK, r); return r; } // blockStatement* private static boolean block_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "block_1")) return false; int c = current_position_(b); while (true) { if (!blockStatement(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "block_1", c)) break; c = current_position_(b); } return true; } /* ********************************************************** */ // localVariableDeclarationStatement // | classDeclaration // | statement public static boolean blockStatement(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "blockStatement")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<block statement>"); r = localVariableDeclarationStatement(b, l + 1); if (!r) r = classDeclaration(b, l + 1); if (!r) r = statement(b, l + 1); exit_section_(b, l, m, BLOCK_STATEMENT, r, false, null); return r; } /* ********************************************************** */ // CATCH LPAREN catchParameter RPAREN block public static boolean catchClause(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catchClause")) return false; if (!nextTokenIs(b, CATCH)) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, CATCH, LPAREN); r = r && catchParameter(b, l + 1); r = r && consumeToken(b, RPAREN); r = r && block(b, l + 1); exit_section_(b, m, CATCH_CLAUSE, r); return r; } /* ********************************************************** */ // IDENTIFIER (LBRACKET RBRACKET)* public static boolean catchParameter(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catchParameter")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, IDENTIFIER); r = r && catchParameter_1(b, l + 1); exit_section_(b, m, CATCH_PARAMETER, r); return r; } // (LBRACKET RBRACKET)* private static boolean catchParameter_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catchParameter_1")) return false; int c = current_position_(b); while (true) { if (!catchParameter_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "catchParameter_1", c)) break; c = current_position_(b); } return true; } // LBRACKET RBRACKET private static boolean catchParameter_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catchParameter_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, LBRACKET, RBRACKET); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // catchClause (catchClause)* public static boolean catches(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catches")) return false; if (!nextTokenIs(b, CATCH)) return false; boolean r; Marker m = enter_section_(b); r = catchClause(b, l + 1); r = r && catches_1(b, l + 1); exit_section_(b, m, CATCHES, r); return r; } // (catchClause)* private static boolean catches_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catches_1")) return false; int c = current_position_(b); while (true) { if (!catches_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "catches_1", c)) break; c = current_position_(b); } return true; } // (catchClause) private static boolean catches_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "catches_1_0")) return false; boolean r; Marker m = enter_section_(b); r = catchClause(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LBRACE classBodyDeclaration* RBRACE public static boolean classBody(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classBody")) return false; if (!nextTokenIs(b, LBRACE)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACE); r = r && classBody_1(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, CLASS_BODY, r); return r; } // classBodyDeclaration* private static boolean classBody_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classBody_1")) return false; int c = current_position_(b); while (true) { if (!classBodyDeclaration(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "classBody_1", c)) break; c = current_position_(b); } return true; } /* ********************************************************** */ // usingDeclaration | block | constDeclaration | fieldDeclaration | functionDeclaration | classDeclaration | SEMI public static boolean classBodyDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classBodyDeclaration")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<class body declaration>"); r = usingDeclaration(b, l + 1); if (!r) r = block(b, l + 1); if (!r) r = constDeclaration(b, l + 1); if (!r) r = fieldDeclaration(b, l + 1); if (!r) r = functionDeclaration(b, l + 1); if (!r) r = classDeclaration(b, l + 1); if (!r) r = consumeToken(b, SEMI); exit_section_(b, l, m, CLASS_BODY_DECLARATION, r, false, null); return r; } /* ********************************************************** */ // arguments classBody? public static boolean classCreatorRest(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classCreatorRest")) return false; if (!nextTokenIs(b, LPAREN)) return false; boolean r; Marker m = enter_section_(b); r = arguments(b, l + 1); r = r && classCreatorRest_1(b, l + 1); exit_section_(b, m, CLASS_CREATOR_REST, r); return r; } // classBody? private static boolean classCreatorRest_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classCreatorRest_1")) return false; classBody(b, l + 1); return true; } /* ********************************************************** */ // modifiers CLASS componentName (EXTENDS type)? classBody // | modifiers ENUM componentName? enumBody public static boolean classDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<class declaration>"); r = classDeclaration_0(b, l + 1); if (!r) r = classDeclaration_1(b, l + 1); exit_section_(b, l, m, CLASS_DECLARATION, r, false, null); return r; } // modifiers CLASS componentName (EXTENDS type)? classBody private static boolean classDeclaration_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration_0")) return false; boolean r; Marker m = enter_section_(b); r = modifiers(b, l + 1); r = r && consumeToken(b, CLASS); r = r && componentName(b, l + 1); r = r && classDeclaration_0_3(b, l + 1); r = r && classBody(b, l + 1); exit_section_(b, m, null, r); return r; } // (EXTENDS type)? private static boolean classDeclaration_0_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration_0_3")) return false; classDeclaration_0_3_0(b, l + 1); return true; } // EXTENDS type private static boolean classDeclaration_0_3_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration_0_3_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, EXTENDS); r = r && type(b, l + 1); exit_section_(b, m, null, r); return r; } // modifiers ENUM componentName? enumBody private static boolean classDeclaration_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration_1")) return false; boolean r; Marker m = enter_section_(b); r = modifiers(b, l + 1); r = r && consumeToken(b, ENUM); r = r && classDeclaration_1_2(b, l + 1); r = r && enumBody(b, l + 1); exit_section_(b, m, null, r); return r; } // componentName? private static boolean classDeclaration_1_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "classDeclaration_1_2")) return false; componentName(b, l + 1); return true; } /* ********************************************************** */ // usingDeclaration | moduleDeclaration | constDeclaration | fieldDeclaration // | functionDeclaration | classDeclaration | blockStatement | SEMI static boolean compilationUnit(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "compilationUnit")) return false; boolean r; Marker m = enter_section_(b); r = usingDeclaration(b, l + 1); if (!r) r = moduleDeclaration(b, l + 1); if (!r) r = constDeclaration(b, l + 1); if (!r) r = fieldDeclaration(b, l + 1); if (!r) r = functionDeclaration(b, l + 1); if (!r) r = classDeclaration(b, l + 1); if (!r) r = blockStatement(b, l + 1); if (!r) r = consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // id public static boolean componentName(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "componentName")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = id(b, l + 1); exit_section_(b, m, COMPONENT_NAME, r); return r; } /* ********************************************************** */ // inclusiveOrExpression ((AMPAMP | AND) inclusiveOrExpression)* public static boolean conditionalAndExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalAndExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<conditional and expression>"); r = inclusiveOrExpression(b, l + 1); r = r && conditionalAndExpression_1(b, l + 1); exit_section_(b, l, m, CONDITIONAL_AND_EXPRESSION, r, false, null); return r; } // ((AMPAMP | AND) inclusiveOrExpression)* private static boolean conditionalAndExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalAndExpression_1")) return false; int c = current_position_(b); while (true) { if (!conditionalAndExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "conditionalAndExpression_1", c)) break; c = current_position_(b); } return true; } // (AMPAMP | AND) inclusiveOrExpression private static boolean conditionalAndExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalAndExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = conditionalAndExpression_1_0_0(b, l + 1); r = r && inclusiveOrExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // AMPAMP | AND private static boolean conditionalAndExpression_1_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalAndExpression_1_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, AMPAMP); if (!r) r = consumeToken(b, AND); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // conditionalOrExpression (QUES expression COLON conditionalExpression)? public static boolean conditionalExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<conditional expression>"); r = conditionalOrExpression(b, l + 1); r = r && conditionalExpression_1(b, l + 1); exit_section_(b, l, m, CONDITIONAL_EXPRESSION, r, false, null); return r; } // (QUES expression COLON conditionalExpression)? private static boolean conditionalExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalExpression_1")) return false; conditionalExpression_1_0(b, l + 1); return true; } // QUES expression COLON conditionalExpression private static boolean conditionalExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, QUES); r = r && expression(b, l + 1); r = r && consumeToken(b, COLON); r = r && conditionalExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // conditionalAndExpression ((BARBAR | OR) conditionalAndExpression)* public static boolean conditionalOrExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalOrExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<conditional or expression>"); r = conditionalAndExpression(b, l + 1); r = r && conditionalOrExpression_1(b, l + 1); exit_section_(b, l, m, CONDITIONAL_OR_EXPRESSION, r, false, null); return r; } // ((BARBAR | OR) conditionalAndExpression)* private static boolean conditionalOrExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalOrExpression_1")) return false; int c = current_position_(b); while (true) { if (!conditionalOrExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "conditionalOrExpression_1", c)) break; c = current_position_(b); } return true; } // (BARBAR | OR) conditionalAndExpression private static boolean conditionalOrExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalOrExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = conditionalOrExpression_1_0_0(b, l + 1); r = r && conditionalAndExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // BARBAR | OR private static boolean conditionalOrExpression_1_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "conditionalOrExpression_1_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, BARBAR); if (!r) r = consumeToken(b, OR); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // modifiers CONST variableDeclarator SEMI public static boolean constDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "constDeclaration")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<const declaration>"); r = modifiers(b, l + 1); r = r && consumeToken(b, CONST); r = r && variableDeclarator(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, l, m, CONST_DECLARATION, r, false, null); return r; } /* ********************************************************** */ // objectCreator | arrayCreator public static boolean creator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "creator")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<creator>"); r = objectCreator(b, l + 1); if (!r) r = arrayCreator(b, l + 1); exit_section_(b, l, m, CREATOR, r, false, null); return r; } /* ********************************************************** */ // NEW LBRACE RBRACE // new {} // | LBRACE (keyValueInitializer (COMMA keyValueInitializer)* )? RBRACE public static boolean dictionaryCreator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator")) return false; if (!nextTokenIs(b, "<dictionary creator>", LBRACE, NEW)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<dictionary creator>"); r = parseTokens(b, 0, NEW, LBRACE, RBRACE); if (!r) r = dictionaryCreator_1(b, l + 1); exit_section_(b, l, m, DICTIONARY_CREATOR, r, false, null); return r; } // LBRACE (keyValueInitializer (COMMA keyValueInitializer)* )? RBRACE private static boolean dictionaryCreator_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACE); r = r && dictionaryCreator_1_1(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, null, r); return r; } // (keyValueInitializer (COMMA keyValueInitializer)* )? private static boolean dictionaryCreator_1_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator_1_1")) return false; dictionaryCreator_1_1_0(b, l + 1); return true; } // keyValueInitializer (COMMA keyValueInitializer)* private static boolean dictionaryCreator_1_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator_1_1_0")) return false; boolean r; Marker m = enter_section_(b); r = keyValueInitializer(b, l + 1); r = r && dictionaryCreator_1_1_0_1(b, l + 1); exit_section_(b, m, null, r); return r; } // (COMMA keyValueInitializer)* private static boolean dictionaryCreator_1_1_0_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator_1_1_0_1")) return false; int c = current_position_(b); while (true) { if (!dictionaryCreator_1_1_0_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "dictionaryCreator_1_1_0_1", c)) break; c = current_position_(b); } return true; } // COMMA keyValueInitializer private static boolean dictionaryCreator_1_1_0_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "dictionaryCreator_1_1_0_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && keyValueInitializer(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LBRACE enumConstants? COMMA? enumBodyDeclarations? RBRACE public static boolean enumBody(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBody")) return false; if (!nextTokenIs(b, LBRACE)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACE); r = r && enumBody_1(b, l + 1); r = r && enumBody_2(b, l + 1); r = r && enumBody_3(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, ENUM_BODY, r); return r; } // enumConstants? private static boolean enumBody_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBody_1")) return false; enumConstants(b, l + 1); return true; } // COMMA? private static boolean enumBody_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBody_2")) return false; consumeToken(b, COMMA); return true; } // enumBodyDeclarations? private static boolean enumBody_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBody_3")) return false; enumBodyDeclarations(b, l + 1); return true; } /* ********************************************************** */ // SEMI classBodyDeclaration* public static boolean enumBodyDeclarations(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBodyDeclarations")) return false; if (!nextTokenIs(b, SEMI)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, SEMI); r = r && enumBodyDeclarations_1(b, l + 1); exit_section_(b, m, ENUM_BODY_DECLARATIONS, r); return r; } // classBodyDeclaration* private static boolean enumBodyDeclarations_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumBodyDeclarations_1")) return false; int c = current_position_(b); while (true) { if (!classBodyDeclaration(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "enumBodyDeclarations_1", c)) break; c = current_position_(b); } return true; } /* ********************************************************** */ // componentName (EQ INTLITERAL)? public static boolean enumConstant(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstant")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = componentName(b, l + 1); r = r && enumConstant_1(b, l + 1); exit_section_(b, m, ENUM_CONSTANT, r); return r; } // (EQ INTLITERAL)? private static boolean enumConstant_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstant_1")) return false; enumConstant_1_0(b, l + 1); return true; } // EQ INTLITERAL private static boolean enumConstant_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstant_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, EQ, INTLITERAL); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // enumConstant (COMMA enumConstant)* public static boolean enumConstants(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstants")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = enumConstant(b, l + 1); r = r && enumConstants_1(b, l + 1); exit_section_(b, m, ENUM_CONSTANTS, r); return r; } // (COMMA enumConstant)* private static boolean enumConstants_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstants_1")) return false; int c = current_position_(b); while (true) { if (!enumConstants_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "enumConstants_1", c)) break; c = current_position_(b); } return true; } // COMMA enumConstant private static boolean enumConstants_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "enumConstants_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && enumConstant(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // hasExpression ((EQEQ | BANGEQ) hasExpression)* public static boolean equalityExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "equalityExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<equality expression>"); r = hasExpression(b, l + 1); r = r && equalityExpression_1(b, l + 1); exit_section_(b, l, m, EQUALITY_EXPRESSION, r, false, null); return r; } // ((EQEQ | BANGEQ) hasExpression)* private static boolean equalityExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "equalityExpression_1")) return false; int c = current_position_(b); while (true) { if (!equalityExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "equalityExpression_1", c)) break; c = current_position_(b); } return true; } // (EQEQ | BANGEQ) hasExpression private static boolean equalityExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "equalityExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = equalityExpression_1_0_0(b, l + 1); r = r && hasExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // EQEQ | BANGEQ private static boolean equalityExpression_1_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "equalityExpression_1_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, EQEQ); if (!r) r = consumeToken(b, BANGEQ); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // andExpression (CARET andExpression)* public static boolean exclusiveOrExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "exclusiveOrExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<exclusive or expression>"); r = andExpression(b, l + 1); r = r && exclusiveOrExpression_1(b, l + 1); exit_section_(b, l, m, EXCLUSIVE_OR_EXPRESSION, r, false, null); return r; } // (CARET andExpression)* private static boolean exclusiveOrExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "exclusiveOrExpression_1")) return false; int c = current_position_(b); while (true) { if (!exclusiveOrExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "exclusiveOrExpression_1", c)) break; c = current_position_(b); } return true; } // CARET andExpression private static boolean exclusiveOrExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "exclusiveOrExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, CARET); r = r && andExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // SUPER arguments SEMI // | primary DOT SUPER arguments SEMI public static boolean explicitConstructorInvocation(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "explicitConstructorInvocation")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<explicit constructor invocation>"); r = explicitConstructorInvocation_0(b, l + 1); if (!r) r = explicitConstructorInvocation_1(b, l + 1); exit_section_(b, l, m, EXPLICIT_CONSTRUCTOR_INVOCATION, r, false, null); return r; } // SUPER arguments SEMI private static boolean explicitConstructorInvocation_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "explicitConstructorInvocation_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, SUPER); r = r && arguments(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // primary DOT SUPER arguments SEMI private static boolean explicitConstructorInvocation_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "explicitConstructorInvocation_1")) return false; boolean r; Marker m = enter_section_(b); r = primary(b, l + 1); r = r && consumeTokens(b, 0, DOT, SUPER); r = r && arguments(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // conditionalExpression (assignmentOperator expression)? public static boolean expression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<expression>"); r = conditionalExpression(b, l + 1); r = r && expression_1(b, l + 1); exit_section_(b, l, m, EXPRESSION, r, false, null); return r; } // (assignmentOperator expression)? private static boolean expression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expression_1")) return false; expression_1_0(b, l + 1); return true; } // assignmentOperator expression private static boolean expression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = assignmentOperator(b, l + 1); r = r && expression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // expression (COMMA expression)* public static boolean expressionList(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expressionList")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<expression list>"); r = expression(b, l + 1); r = r && expressionList_1(b, l + 1); exit_section_(b, l, m, EXPRESSION_LIST, r, false, null); return r; } // (COMMA expression)* private static boolean expressionList_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expressionList_1")) return false; int c = current_position_(b); while (true) { if (!expressionList_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "expressionList_1", c)) break; c = current_position_(b); } return true; } // COMMA expression private static boolean expressionList_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "expressionList_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && expression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // modifiers VAR variableDeclarator // (COMMA variableDeclarator)* SEMI public static boolean fieldDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "fieldDeclaration")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<field declaration>"); r = modifiers(b, l + 1); r = r && consumeToken(b, VAR); r = r && variableDeclarator(b, l + 1); r = r && fieldDeclaration_3(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, l, m, FIELD_DECLARATION, r, false, null); return r; } // (COMMA variableDeclarator)* private static boolean fieldDeclaration_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "fieldDeclaration_3")) return false; int c = current_position_(b); while (true) { if (!fieldDeclaration_3_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "fieldDeclaration_3", c)) break; c = current_position_(b); } return true; } // COMMA variableDeclarator private static boolean fieldDeclaration_3_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "fieldDeclaration_3_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && variableDeclarator(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // localVariableDeclaration| expressionList public static boolean forInit(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "forInit")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<for init>"); r = localVariableDeclaration(b, l + 1); if (!r) r = expressionList(b, l + 1); exit_section_(b, l, m, FOR_INIT, r, false, null); return r; } /* ********************************************************** */ // FOR LPAREN forInit? SEMI expression? SEMI expressionList? RPAREN statement public static boolean forStatement(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "forStatement")) return false; if (!nextTokenIs(b, FOR)) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, FOR, LPAREN); r = r && forStatement_2(b, l + 1); r = r && consumeToken(b, SEMI); r = r && forStatement_4(b, l + 1); r = r && consumeToken(b, SEMI); r = r && forStatement_6(b, l + 1); r = r && consumeToken(b, RPAREN); r = r && statement(b, l + 1); exit_section_(b, m, FOR_STATEMENT, r); return r; } // forInit? private static boolean forStatement_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "forStatement_2")) return false; forInit(b, l + 1); return true; } // expression? private static boolean forStatement_4(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "forStatement_4")) return false; expression(b, l + 1); return true; } // expressionList? private static boolean forStatement_6(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "forStatement_6")) return false; expressionList(b, l + 1); return true; } /* ********************************************************** */ // normalParameterDecl (COMMA normalParameterDecl)* public static boolean formalParameterDecls(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameterDecls")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = normalParameterDecl(b, l + 1); r = r && formalParameterDecls_1(b, l + 1); exit_section_(b, m, FORMAL_PARAMETER_DECLS, r); return r; } // (COMMA normalParameterDecl)* private static boolean formalParameterDecls_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameterDecls_1")) return false; int c = current_position_(b); while (true) { if (!formalParameterDecls_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "formalParameterDecls_1", c)) break; c = current_position_(b); } return true; } // COMMA normalParameterDecl private static boolean formalParameterDecls_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameterDecls_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && normalParameterDecl(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LPAREN (formalParameterDecls)? RPAREN public static boolean formalParameters(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameters")) return false; if (!nextTokenIs(b, LPAREN)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LPAREN); r = r && formalParameters_1(b, l + 1); r = r && consumeToken(b, RPAREN); exit_section_(b, m, FORMAL_PARAMETERS, r); return r; } // (formalParameterDecls)? private static boolean formalParameters_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameters_1")) return false; formalParameters_1_0(b, l + 1); return true; } // (formalParameterDecls) private static boolean formalParameters_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "formalParameters_1_0")) return false; boolean r; Marker m = enter_section_(b); r = formalParameterDecls(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // modifiers FUNCTION componentName formalParameters (THROWS qualifiedNameList)? // LBRACE (explicitConstructorInvocation)? (blockStatement)* RBRACE public static boolean functionDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration")) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, "<function declaration>"); r = modifiers(b, l + 1); r = r && consumeToken(b, FUNCTION); r = r && componentName(b, l + 1); p = r; // pin = 3 r = r && report_error_(b, formalParameters(b, l + 1)); r = p && report_error_(b, functionDeclaration_4(b, l + 1)) && r; r = p && report_error_(b, consumeToken(b, LBRACE)) && r; r = p && report_error_(b, functionDeclaration_6(b, l + 1)) && r; r = p && report_error_(b, functionDeclaration_7(b, l + 1)) && r; r = p && consumeToken(b, RBRACE) && r; exit_section_(b, l, m, FUNCTION_DECLARATION, r, p, null); return r || p; } // (THROWS qualifiedNameList)? private static boolean functionDeclaration_4(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_4")) return false; functionDeclaration_4_0(b, l + 1); return true; } // THROWS qualifiedNameList private static boolean functionDeclaration_4_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_4_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, THROWS); r = r && qualifiedNameList(b, l + 1); exit_section_(b, m, null, r); return r; } // (explicitConstructorInvocation)? private static boolean functionDeclaration_6(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_6")) return false; functionDeclaration_6_0(b, l + 1); return true; } // (explicitConstructorInvocation) private static boolean functionDeclaration_6_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_6_0")) return false; boolean r; Marker m = enter_section_(b); r = explicitConstructorInvocation(b, l + 1); exit_section_(b, m, null, r); return r; } // (blockStatement)* private static boolean functionDeclaration_7(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_7")) return false; int c = current_position_(b); while (true) { if (!functionDeclaration_7_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "functionDeclaration_7", c)) break; c = current_position_(b); } return true; } // (blockStatement) private static boolean functionDeclaration_7_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "functionDeclaration_7_0")) return false; boolean r; Marker m = enter_section_(b); r = blockStatement(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // instanceOfExpression (HAS symbol)? public static boolean hasExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "hasExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<has expression>"); r = instanceOfExpression(b, l + 1); r = r && hasExpression_1(b, l + 1); exit_section_(b, l, m, HAS_EXPRESSION, r, false, null); return r; } // (HAS symbol)? private static boolean hasExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "hasExpression_1")) return false; hasExpression_1_0(b, l + 1); return true; } // HAS symbol private static boolean hasExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "hasExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, HAS); r = r && symbol(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // IDENTIFIER public static boolean id(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "id")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, IDENTIFIER); exit_section_(b, m, ID, r); return r; } /* ********************************************************** */ // (LBRACKET RBRACKET) + DOT CLASS // | (LBRACKET expression RBRACKET)+ // | arguments // | DOT CLASS // | DOT IDENTIFIER arguments // | DOT SUPER arguments public static boolean identifierSuffix(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<identifier suffix>"); r = identifierSuffix_0(b, l + 1); if (!r) r = identifierSuffix_1(b, l + 1); if (!r) r = arguments(b, l + 1); if (!r) r = parseTokens(b, 0, DOT, CLASS); if (!r) r = identifierSuffix_4(b, l + 1); if (!r) r = identifierSuffix_5(b, l + 1); exit_section_(b, l, m, IDENTIFIER_SUFFIX, r, false, null); return r; } // (LBRACKET RBRACKET) + DOT CLASS private static boolean identifierSuffix_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_0")) return false; boolean r; Marker m = enter_section_(b); r = identifierSuffix_0_0(b, l + 1); r = r && consumeTokens(b, 0, DOT, CLASS); exit_section_(b, m, null, r); return r; } // (LBRACKET RBRACKET) + private static boolean identifierSuffix_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_0_0")) return false; boolean r; Marker m = enter_section_(b); r = identifierSuffix_0_0_0(b, l + 1); int c = current_position_(b); while (r) { if (!identifierSuffix_0_0_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "identifierSuffix_0_0", c)) break; c = current_position_(b); } exit_section_(b, m, null, r); return r; } // LBRACKET RBRACKET private static boolean identifierSuffix_0_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_0_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, LBRACKET, RBRACKET); exit_section_(b, m, null, r); return r; } // (LBRACKET expression RBRACKET)+ private static boolean identifierSuffix_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_1")) return false; boolean r; Marker m = enter_section_(b); r = identifierSuffix_1_0(b, l + 1); int c = current_position_(b); while (r) { if (!identifierSuffix_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "identifierSuffix_1", c)) break; c = current_position_(b); } exit_section_(b, m, null, r); return r; } // LBRACKET expression RBRACKET private static boolean identifierSuffix_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACKET); r = r && expression(b, l + 1); r = r && consumeToken(b, RBRACKET); exit_section_(b, m, null, r); return r; } // DOT IDENTIFIER arguments private static boolean identifierSuffix_4(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_4")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, DOT, IDENTIFIER); r = r && arguments(b, l + 1); exit_section_(b, m, null, r); return r; } // DOT SUPER arguments private static boolean identifierSuffix_5(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "identifierSuffix_5")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, DOT, SUPER); r = r && arguments(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // exclusiveOrExpression (BAR exclusiveOrExpression)* public static boolean inclusiveOrExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "inclusiveOrExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<inclusive or expression>"); r = exclusiveOrExpression(b, l + 1); r = r && inclusiveOrExpression_1(b, l + 1); exit_section_(b, l, m, INCLUSIVE_OR_EXPRESSION, r, false, null); return r; } // (BAR exclusiveOrExpression)* private static boolean inclusiveOrExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "inclusiveOrExpression_1")) return false; int c = current_position_(b); while (true) { if (!inclusiveOrExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "inclusiveOrExpression_1", c)) break; c = current_position_(b); } return true; } // BAR exclusiveOrExpression private static boolean inclusiveOrExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "inclusiveOrExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, BAR); r = r && exclusiveOrExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // relationalExpression (INSTANCEOF type)? public static boolean instanceOfExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "instanceOfExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<instance of expression>"); r = relationalExpression(b, l + 1); r = r && instanceOfExpression_1(b, l + 1); exit_section_(b, l, m, INSTANCE_OF_EXPRESSION, r, false, null); return r; } // (INSTANCEOF type)? private static boolean instanceOfExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "instanceOfExpression_1")) return false; instanceOfExpression_1_0(b, l + 1); return true; } // INSTANCEOF type private static boolean instanceOfExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "instanceOfExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, INSTANCEOF); r = r && type(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // primary EQGT expression public static boolean keyValueInitializer(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "keyValueInitializer")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<key value initializer>"); r = primary(b, l + 1); r = r && consumeToken(b, EQGT); r = r && expression(b, l + 1); exit_section_(b, l, m, KEY_VALUE_INITIALIZER, r, false, null); return r; } /* ********************************************************** */ // INTLITERAL // | LONGLITERAL // | FLOATLITERAL // | DOUBLELITERAL // | HEX_LITERAL // | CHARLITERAL // | stringLiteral // | TRUE // | FALSE // | NULL public static boolean literal(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "literal")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<literal>"); r = consumeToken(b, INTLITERAL); if (!r) r = consumeToken(b, LONGLITERAL); if (!r) r = consumeToken(b, FLOATLITERAL); if (!r) r = consumeToken(b, DOUBLELITERAL); if (!r) r = consumeToken(b, HEX_LITERAL); if (!r) r = consumeToken(b, CHARLITERAL); if (!r) r = stringLiteral(b, l + 1); if (!r) r = consumeToken(b, TRUE); if (!r) r = consumeToken(b, FALSE); if (!r) r = consumeToken(b, NULL); exit_section_(b, l, m, LITERAL, r, false, null); return r; } /* ********************************************************** */ // VAR variableDeclarator (COMMA variableDeclarator)* public static boolean localVariableDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "localVariableDeclaration")) return false; if (!nextTokenIs(b, VAR)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, VAR); r = r && variableDeclarator(b, l + 1); r = r && localVariableDeclaration_2(b, l + 1); exit_section_(b, m, LOCAL_VARIABLE_DECLARATION, r); return r; } // (COMMA variableDeclarator)* private static boolean localVariableDeclaration_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "localVariableDeclaration_2")) return false; int c = current_position_(b); while (true) { if (!localVariableDeclaration_2_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "localVariableDeclaration_2", c)) break; c = current_position_(b); } return true; } // COMMA variableDeclarator private static boolean localVariableDeclaration_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "localVariableDeclaration_2_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && variableDeclarator(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // localVariableDeclaration SEMI public static boolean localVariableDeclarationStatement(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "localVariableDeclarationStatement")) return false; if (!nextTokenIs(b, VAR)) return false; boolean r; Marker m = enter_section_(b); r = localVariableDeclaration(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, LOCAL_VARIABLE_DECLARATION_STATEMENT, r); return r; } /* ********************************************************** */ // annotation? STATIC? HIDDEN? public static boolean modifiers(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "modifiers")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<modifiers>"); r = modifiers_0(b, l + 1); r = r && modifiers_1(b, l + 1); r = r && modifiers_2(b, l + 1); exit_section_(b, l, m, MODIFIERS, r, false, null); return r; } // annotation? private static boolean modifiers_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "modifiers_0")) return false; annotation(b, l + 1); return true; } // STATIC? private static boolean modifiers_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "modifiers_1")) return false; consumeToken(b, STATIC); return true; } // HIDDEN? private static boolean modifiers_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "modifiers_2")) return false; consumeToken(b, HIDDEN); return true; } /* ********************************************************** */ // classBody public static boolean moduleBody(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "moduleBody")) return false; if (!nextTokenIs(b, LBRACE)) return false; boolean r; Marker m = enter_section_(b); r = classBody(b, l + 1); exit_section_(b, m, MODULE_BODY, r); return r; } /* ********************************************************** */ // modifiers MODULE componentName moduleBody public static boolean moduleDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "moduleDeclaration")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<module declaration>"); r = modifiers(b, l + 1); r = r && consumeToken(b, MODULE); r = r && componentName(b, l + 1); r = r && moduleBody(b, l + 1); exit_section_(b, l, m, MODULE_DECLARATION, r, false, null); return r; } /* ********************************************************** */ // compilationUnit* static boolean monkeyCFile(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "monkeyCFile")) return false; int c = current_position_(b); while (true) { if (!compilationUnit(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "monkeyCFile", c)) break; c = current_position_(b); } return true; } /* ********************************************************** */ // bitwiseExpression ((STAR | SLASH | PERCENT) unaryExpression)* public static boolean multiplicativeExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "multiplicativeExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<multiplicative expression>"); r = bitwiseExpression(b, l + 1); r = r && multiplicativeExpression_1(b, l + 1); exit_section_(b, l, m, MULTIPLICATIVE_EXPRESSION, r, false, null); return r; } // ((STAR | SLASH | PERCENT) unaryExpression)* private static boolean multiplicativeExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "multiplicativeExpression_1")) return false; int c = current_position_(b); while (true) { if (!multiplicativeExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "multiplicativeExpression_1", c)) break; c = current_position_(b); } return true; } // (STAR | SLASH | PERCENT) unaryExpression private static boolean multiplicativeExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "multiplicativeExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = multiplicativeExpression_1_0_0(b, l + 1); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // STAR | SLASH | PERCENT private static boolean multiplicativeExpression_1_0_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "multiplicativeExpression_1_0_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, STAR); if (!r) r = consumeToken(b, SLASH); if (!r) r = consumeToken(b, PERCENT); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // componentName (LBRACKET RBRACKET)* public static boolean normalParameterDecl(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "normalParameterDecl")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = componentName(b, l + 1); r = r && normalParameterDecl_1(b, l + 1); exit_section_(b, m, NORMAL_PARAMETER_DECL, r); return r; } // (LBRACKET RBRACKET)* private static boolean normalParameterDecl_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "normalParameterDecl_1")) return false; int c = current_position_(b); while (true) { if (!normalParameterDecl_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "normalParameterDecl_1", c)) break; c = current_position_(b); } return true; } // LBRACKET RBRACKET private static boolean normalParameterDecl_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "normalParameterDecl_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, LBRACKET, RBRACKET); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // NEW qualifiedName classCreatorRest public static boolean objectCreator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "objectCreator")) return false; if (!nextTokenIs(b, NEW)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, null); r = consumeToken(b, NEW); r = r && qualifiedName(b, l + 1); p = r; // pin = 2 r = r && classCreatorRest(b, l + 1); exit_section_(b, l, m, OBJECT_CREATOR, r, p, null); return r || p; } /* ********************************************************** */ // LPAREN expression RPAREN public static boolean parExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "parExpression")) return false; if (!nextTokenIs(b, LPAREN)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LPAREN); r = r && expression(b, l + 1); r = r && consumeToken(b, RPAREN); exit_section_(b, m, PAR_EXPRESSION, r); return r; } /* ********************************************************** */ // parExpression // | referenceExpression qualifiedReferenceExpression* identifierSuffix? // | literal // | symbol // | creator // | VOID DOT CLASS { // } public static boolean primary(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "primary")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<primary>"); r = parExpression(b, l + 1); if (!r) r = primary_1(b, l + 1); if (!r) r = literal(b, l + 1); if (!r) r = symbol(b, l + 1); if (!r) r = creator(b, l + 1); if (!r) r = primary_5(b, l + 1); exit_section_(b, l, m, PRIMARY, r, false, null); return r; } // referenceExpression qualifiedReferenceExpression* identifierSuffix? private static boolean primary_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "primary_1")) return false; boolean r; Marker m = enter_section_(b); r = referenceExpression(b, l + 1); r = r && primary_1_1(b, l + 1); r = r && primary_1_2(b, l + 1); exit_section_(b, m, null, r); return r; } // qualifiedReferenceExpression* private static boolean primary_1_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "primary_1_1")) return false; int c = current_position_(b); while (true) { if (!qualifiedReferenceExpression(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "primary_1_1", c)) break; c = current_position_(b); } return true; } // identifierSuffix? private static boolean primary_1_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "primary_1_2")) return false; identifierSuffix(b, l + 1); return true; } // VOID DOT CLASS { // } private static boolean primary_5(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "primary_5")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, VOID, DOT, CLASS); r = r && primary_5_3(b, l + 1); exit_section_(b, m, null, r); return r; } // { // } private static boolean primary_5_3(PsiBuilder b, int l) { return true; } /* ********************************************************** */ // componentName (DOT componentName)* public static boolean qualifiedName(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedName")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = componentName(b, l + 1); r = r && qualifiedName_1(b, l + 1); exit_section_(b, m, QUALIFIED_NAME, r); return r; } // (DOT componentName)* private static boolean qualifiedName_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedName_1")) return false; int c = current_position_(b); while (true) { if (!qualifiedName_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "qualifiedName_1", c)) break; c = current_position_(b); } return true; } // DOT componentName private static boolean qualifiedName_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedName_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, DOT); r = r && componentName(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // qualifiedName (COMMA qualifiedName)* public static boolean qualifiedNameList(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedNameList")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = qualifiedName(b, l + 1); r = r && qualifiedNameList_1(b, l + 1); exit_section_(b, m, QUALIFIED_NAME_LIST, r); return r; } // (COMMA qualifiedName)* private static boolean qualifiedNameList_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedNameList_1")) return false; int c = current_position_(b); while (true) { if (!qualifiedNameList_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "qualifiedNameList_1", c)) break; c = current_position_(b); } return true; } // COMMA qualifiedName private static boolean qualifiedNameList_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedNameList_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, COMMA); r = r && qualifiedName(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // DOT referenceExpression public static boolean qualifiedReferenceExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "qualifiedReferenceExpression")) return false; if (!nextTokenIs(b, DOT)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, DOT); r = r && referenceExpression(b, l + 1); exit_section_(b, m, REFERENCE_EXPRESSION, r); return r; } /* ********************************************************** */ // componentName public static boolean referenceExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "referenceExpression")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = componentName(b, l + 1); exit_section_(b, m, REFERENCE_EXPRESSION, r); return r; } /* ********************************************************** */ // shiftExpression (relationalOp shiftExpression)* public static boolean relationalExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "relationalExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<relational expression>"); r = shiftExpression(b, l + 1); r = r && relationalExpression_1(b, l + 1); exit_section_(b, l, m, RELATIONAL_EXPRESSION, r, false, null); return r; } // (relationalOp shiftExpression)* private static boolean relationalExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "relationalExpression_1")) return false; int c = current_position_(b); while (true) { if (!relationalExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "relationalExpression_1", c)) break; c = current_position_(b); } return true; } // relationalOp shiftExpression private static boolean relationalExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "relationalExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = relationalOp(b, l + 1); r = r && shiftExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LT EQ | GT EQ | LT | GT public static boolean relationalOp(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "relationalOp")) return false; if (!nextTokenIs(b, "<relational op>", GT, LT)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<relational op>"); r = parseTokens(b, 0, LT, EQ); if (!r) r = parseTokens(b, 0, GT, EQ); if (!r) r = consumeToken(b, LT); if (!r) r = consumeToken(b, GT); exit_section_(b, l, m, RELATIONAL_OP, r, false, null); return r; } /* ********************************************************** */ // DOT IDENTIFIER (arguments)? // | LBRACKET expression RBRACKET public static boolean selector(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "selector")) return false; if (!nextTokenIs(b, "<selector>", DOT, LBRACKET)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<selector>"); r = selector_0(b, l + 1); if (!r) r = selector_1(b, l + 1); exit_section_(b, l, m, SELECTOR, r, false, null); return r; } // DOT IDENTIFIER (arguments)? private static boolean selector_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "selector_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, DOT, IDENTIFIER); r = r && selector_0_2(b, l + 1); exit_section_(b, m, null, r); return r; } // (arguments)? private static boolean selector_0_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "selector_0_2")) return false; selector_0_2_0(b, l + 1); return true; } // (arguments) private static boolean selector_0_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "selector_0_2_0")) return false; boolean r; Marker m = enter_section_(b); r = arguments(b, l + 1); exit_section_(b, m, null, r); return r; } // LBRACKET expression RBRACKET private static boolean selector_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "selector_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, LBRACKET); r = r && expression(b, l + 1); r = r && consumeToken(b, RBRACKET); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // additiveExpression (shiftOp additiveExpression)* public static boolean shiftExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "shiftExpression")) return false; boolean r; Marker m = enter_section_(b, l, _COLLAPSE_, "<shift expression>"); r = additiveExpression(b, l + 1); r = r && shiftExpression_1(b, l + 1); exit_section_(b, l, m, SHIFT_EXPRESSION, r, false, null); return r; } // (shiftOp additiveExpression)* private static boolean shiftExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "shiftExpression_1")) return false; int c = current_position_(b); while (true) { if (!shiftExpression_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "shiftExpression_1", c)) break; c = current_position_(b); } return true; } // shiftOp additiveExpression private static boolean shiftExpression_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "shiftExpression_1_0")) return false; boolean r; Marker m = enter_section_(b); r = shiftOp(b, l + 1); r = r && additiveExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // LT LT | GT GT GT | GT GT public static boolean shiftOp(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "shiftOp")) return false; if (!nextTokenIs(b, "<shift op>", GT, LT)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<shift op>"); r = parseTokens(b, 0, LT, LT); if (!r) r = parseTokens(b, 0, GT, GT, GT); if (!r) r = parseTokens(b, 0, GT, GT); exit_section_(b, l, m, SHIFT_OP, r, false, null); return r; } /* ********************************************************** */ // block // | IF parExpression statement (ELSE statement)? // | forStatement // | WHILE parExpression statement // | DO statement WHILE parExpression SEMI // | tryStatement // | SWITCH parExpression LBRACE switchBlockStatementGroups RBRACE // | RETURN expression? SEMI // | THROW expression SEMI // | BREAK referenceExpression? SEMI // | CONTINUE referenceExpression? SEMI // | expression SEMI // | IDENTIFIER COLON statement // | SEMI public static boolean statement(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<statement>"); r = block(b, l + 1); if (!r) r = statement_1(b, l + 1); if (!r) r = forStatement(b, l + 1); if (!r) r = statement_3(b, l + 1); if (!r) r = statement_4(b, l + 1); if (!r) r = tryStatement(b, l + 1); if (!r) r = statement_6(b, l + 1); if (!r) r = statement_7(b, l + 1); if (!r) r = statement_8(b, l + 1); if (!r) r = statement_9(b, l + 1); if (!r) r = statement_10(b, l + 1); if (!r) r = statement_11(b, l + 1); if (!r) r = statement_12(b, l + 1); if (!r) r = consumeToken(b, SEMI); exit_section_(b, l, m, STATEMENT, r, false, null); return r; } // IF parExpression statement (ELSE statement)? private static boolean statement_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, IF); r = r && parExpression(b, l + 1); r = r && statement(b, l + 1); r = r && statement_1_3(b, l + 1); exit_section_(b, m, null, r); return r; } // (ELSE statement)? private static boolean statement_1_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_1_3")) return false; statement_1_3_0(b, l + 1); return true; } // ELSE statement private static boolean statement_1_3_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_1_3_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, ELSE); r = r && statement(b, l + 1); exit_section_(b, m, null, r); return r; } // WHILE parExpression statement private static boolean statement_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_3")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, WHILE); r = r && parExpression(b, l + 1); r = r && statement(b, l + 1); exit_section_(b, m, null, r); return r; } // DO statement WHILE parExpression SEMI private static boolean statement_4(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_4")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, DO); r = r && statement(b, l + 1); r = r && consumeToken(b, WHILE); r = r && parExpression(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // SWITCH parExpression LBRACE switchBlockStatementGroups RBRACE private static boolean statement_6(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_6")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, SWITCH); r = r && parExpression(b, l + 1); r = r && consumeToken(b, LBRACE); r = r && switchBlockStatementGroups(b, l + 1); r = r && consumeToken(b, RBRACE); exit_section_(b, m, null, r); return r; } // RETURN expression? SEMI private static boolean statement_7(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_7")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, RETURN); r = r && statement_7_1(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // expression? private static boolean statement_7_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_7_1")) return false; expression(b, l + 1); return true; } // THROW expression SEMI private static boolean statement_8(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_8")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, THROW); r = r && expression(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // BREAK referenceExpression? SEMI private static boolean statement_9(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_9")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, BREAK); r = r && statement_9_1(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // referenceExpression? private static boolean statement_9_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_9_1")) return false; referenceExpression(b, l + 1); return true; } // CONTINUE referenceExpression? SEMI private static boolean statement_10(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_10")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, CONTINUE); r = r && statement_10_1(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // referenceExpression? private static boolean statement_10_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_10_1")) return false; referenceExpression(b, l + 1); return true; } // expression SEMI private static boolean statement_11(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_11")) return false; boolean r; Marker m = enter_section_(b); r = expression(b, l + 1); r = r && consumeToken(b, SEMI); exit_section_(b, m, null, r); return r; } // IDENTIFIER COLON statement private static boolean statement_12(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "statement_12")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, IDENTIFIER, COLON); r = r && statement(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // string public static boolean stringLiteral(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "stringLiteral")) return false; if (!nextTokenIs(b, STRING)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, STRING); exit_section_(b, m, STRING_LITERAL, r); return r; } /* ********************************************************** */ // switchLabel (blockStatement)* public static boolean switchBlockStatementGroup(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchBlockStatementGroup")) return false; if (!nextTokenIs(b, "<switch block statement group>", CASE, DEFAULT)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<switch block statement group>"); r = switchLabel(b, l + 1); r = r && switchBlockStatementGroup_1(b, l + 1); exit_section_(b, l, m, SWITCH_BLOCK_STATEMENT_GROUP, r, false, null); return r; } // (blockStatement)* private static boolean switchBlockStatementGroup_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchBlockStatementGroup_1")) return false; int c = current_position_(b); while (true) { if (!switchBlockStatementGroup_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "switchBlockStatementGroup_1", c)) break; c = current_position_(b); } return true; } // (blockStatement) private static boolean switchBlockStatementGroup_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchBlockStatementGroup_1_0")) return false; boolean r; Marker m = enter_section_(b); r = blockStatement(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // (switchBlockStatementGroup)* public static boolean switchBlockStatementGroups(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchBlockStatementGroups")) return false; Marker m = enter_section_(b, l, _NONE_, "<switch block statement groups>"); int c = current_position_(b); while (true) { if (!switchBlockStatementGroups_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "switchBlockStatementGroups", c)) break; c = current_position_(b); } exit_section_(b, l, m, SWITCH_BLOCK_STATEMENT_GROUPS, true, false, null); return true; } // (switchBlockStatementGroup) private static boolean switchBlockStatementGroups_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchBlockStatementGroups_0")) return false; boolean r; Marker m = enter_section_(b); r = switchBlockStatementGroup(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // CASE expression COLON | DEFAULT COLON public static boolean switchLabel(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchLabel")) return false; if (!nextTokenIs(b, "<switch label>", CASE, DEFAULT)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<switch label>"); r = switchLabel_0(b, l + 1); if (!r) r = parseTokens(b, 0, DEFAULT, COLON); exit_section_(b, l, m, SWITCH_LABEL, r, false, null); return r; } // CASE expression COLON private static boolean switchLabel_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "switchLabel_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, CASE); r = r && expression(b, l + 1); r = r && consumeToken(b, COLON); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // COLON IDENTIFIER public static boolean symbol(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "symbol")) return false; if (!nextTokenIs(b, COLON)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, null); r = consumeTokens(b, 1, COLON, IDENTIFIER); p = r; // pin = 1 exit_section_(b, l, m, SYMBOL, r, p, null); return r || p; } /* ********************************************************** */ // TRY block (catches FINALLY block | catches | FINALLY block) public static boolean tryStatement(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "tryStatement")) return false; if (!nextTokenIs(b, TRY)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, TRY); r = r && block(b, l + 1); r = r && tryStatement_2(b, l + 1); exit_section_(b, m, TRY_STATEMENT, r); return r; } // catches FINALLY block | catches | FINALLY block private static boolean tryStatement_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "tryStatement_2")) return false; boolean r; Marker m = enter_section_(b); r = tryStatement_2_0(b, l + 1); if (!r) r = catches(b, l + 1); if (!r) r = tryStatement_2_2(b, l + 1); exit_section_(b, m, null, r); return r; } // catches FINALLY block private static boolean tryStatement_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "tryStatement_2_0")) return false; boolean r; Marker m = enter_section_(b); r = catches(b, l + 1); r = r && consumeToken(b, FINALLY); r = r && block(b, l + 1); exit_section_(b, m, null, r); return r; } // FINALLY block private static boolean tryStatement_2_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "tryStatement_2_2")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, FINALLY); r = r && block(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // qualifiedName (LBRACKET RBRACKET)* public static boolean type(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "type")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = qualifiedName(b, l + 1); r = r && type_1(b, l + 1); exit_section_(b, m, TYPE, r); return r; } // (LBRACKET RBRACKET)* private static boolean type_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "type_1")) return false; int c = current_position_(b); while (true) { if (!type_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "type_1", c)) break; c = current_position_(b); } return true; } // LBRACKET RBRACKET private static boolean type_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "type_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, LBRACKET, RBRACKET); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // PLUS unaryExpression // | SUB unaryExpression // | PLUSPLUS unaryExpression // | SUBSUB unaryExpression // | unaryExpressionNotPlusMinus public static boolean unaryExpression(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpression")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<unary expression>"); r = unaryExpression_0(b, l + 1); if (!r) r = unaryExpression_1(b, l + 1); if (!r) r = unaryExpression_2(b, l + 1); if (!r) r = unaryExpression_3(b, l + 1); if (!r) r = unaryExpressionNotPlusMinus(b, l + 1); exit_section_(b, l, m, UNARY_EXPRESSION, r, false, null); return r; } // PLUS unaryExpression private static boolean unaryExpression_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpression_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, PLUS); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // SUB unaryExpression private static boolean unaryExpression_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpression_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, SUB); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // PLUSPLUS unaryExpression private static boolean unaryExpression_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpression_2")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, PLUSPLUS); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // SUBSUB unaryExpression private static boolean unaryExpression_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpression_3")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, SUBSUB); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // TILDE unaryExpression // | BANG unaryExpression // | primary selector* (PLUSPLUS | SUBSUB)? public static boolean unaryExpressionNotPlusMinus(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<unary expression not plus minus>"); r = unaryExpressionNotPlusMinus_0(b, l + 1); if (!r) r = unaryExpressionNotPlusMinus_1(b, l + 1); if (!r) r = unaryExpressionNotPlusMinus_2(b, l + 1); exit_section_(b, l, m, UNARY_EXPRESSION_NOT_PLUS_MINUS, r, false, null); return r; } // TILDE unaryExpression private static boolean unaryExpressionNotPlusMinus_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, TILDE); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // BANG unaryExpression private static boolean unaryExpressionNotPlusMinus_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_1")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, BANG); r = r && unaryExpression(b, l + 1); exit_section_(b, m, null, r); return r; } // primary selector* (PLUSPLUS | SUBSUB)? private static boolean unaryExpressionNotPlusMinus_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_2")) return false; boolean r; Marker m = enter_section_(b); r = primary(b, l + 1); r = r && unaryExpressionNotPlusMinus_2_1(b, l + 1); r = r && unaryExpressionNotPlusMinus_2_2(b, l + 1); exit_section_(b, m, null, r); return r; } // selector* private static boolean unaryExpressionNotPlusMinus_2_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_2_1")) return false; int c = current_position_(b); while (true) { if (!selector(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "unaryExpressionNotPlusMinus_2_1", c)) break; c = current_position_(b); } return true; } // (PLUSPLUS | SUBSUB)? private static boolean unaryExpressionNotPlusMinus_2_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_2_2")) return false; unaryExpressionNotPlusMinus_2_2_0(b, l + 1); return true; } // PLUSPLUS | SUBSUB private static boolean unaryExpressionNotPlusMinus_2_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "unaryExpressionNotPlusMinus_2_2_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, PLUSPLUS); if (!r) r = consumeToken(b, SUBSUB); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // USING qualifiedName (AS componentName)? SEMI public static boolean usingDeclaration(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "usingDeclaration")) return false; if (!nextTokenIs(b, USING)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, null); r = consumeToken(b, USING); p = r; // pin = 1 r = r && report_error_(b, qualifiedName(b, l + 1)); r = p && report_error_(b, usingDeclaration_2(b, l + 1)) && r; r = p && consumeToken(b, SEMI) && r; exit_section_(b, l, m, USING_DECLARATION, r, p, null); return r || p; } // (AS componentName)? private static boolean usingDeclaration_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "usingDeclaration_2")) return false; usingDeclaration_2_0(b, l + 1); return true; } // AS componentName private static boolean usingDeclaration_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "usingDeclaration_2_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, AS); r = r && componentName(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // componentName (LBRACKET RBRACKET)* (EQ variableInitializer)? public static boolean variableDeclarator(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableDeclarator")) return false; if (!nextTokenIs(b, IDENTIFIER)) return false; boolean r; Marker m = enter_section_(b); r = componentName(b, l + 1); r = r && variableDeclarator_1(b, l + 1); r = r && variableDeclarator_2(b, l + 1); exit_section_(b, m, VARIABLE_DECLARATOR, r); return r; } // (LBRACKET RBRACKET)* private static boolean variableDeclarator_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableDeclarator_1")) return false; int c = current_position_(b); while (true) { if (!variableDeclarator_1_0(b, l + 1)) break; if (!empty_element_parsed_guard_(b, "variableDeclarator_1", c)) break; c = current_position_(b); } return true; } // LBRACKET RBRACKET private static boolean variableDeclarator_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableDeclarator_1_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokens(b, 0, LBRACKET, RBRACKET); exit_section_(b, m, null, r); return r; } // (EQ variableInitializer)? private static boolean variableDeclarator_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableDeclarator_2")) return false; variableDeclarator_2_0(b, l + 1); return true; } // EQ variableInitializer private static boolean variableDeclarator_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableDeclarator_2_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, EQ); r = r && variableInitializer(b, l + 1); exit_section_(b, m, null, r); return r; } /* ********************************************************** */ // arrayInitializer | expression public static boolean variableInitializer(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "variableInitializer")) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, "<variable initializer>"); r = arrayInitializer(b, l + 1); if (!r) r = expression(b, l + 1); exit_section_(b, l, m, VARIABLE_INITIALIZER, r, false, null); return r; } }