blob: 7a07a85823ae9f2ef48b57a3dd093f14d1989853 [file] [log] [blame]
// This is a generated file. Not intended for manual editing.
package com.android.tools.idea.lang.proguard.parser;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import com.intellij.openapi.diagnostic.Logger;
import static com.android.tools.idea.lang.proguard.psi.ProguardTypes.*;
import static com.intellij.lang.parser.GeneratedParserUtilBase.*;
import com.intellij.psi.tree.IElementType;
import com.intellij.lang.ASTNode;
import com.intellij.psi.tree.TokenSet;
import com.intellij.lang.PsiParser;
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
public class ProguardParser implements PsiParser {
public static final Logger LOG_ = Logger.getInstance("com.android.tools.idea.lang.proguard.parser.ProguardParser");
public ASTNode parse(IElementType root_, PsiBuilder builder_) {
boolean result_;
builder_ = adapt_builder_(root_, builder_, this, null);
Marker marker_ = enter_section_(builder_, 0, _COLLAPSE_, null);
if (root_ == COMMENT) {
result_ = comment(builder_, 0);
}
else if (root_ == FLAG) {
result_ = flag(builder_, 0);
}
else if (root_ == JAVA_SECTION) {
result_ = javaSection(builder_, 0);
}
else if (root_ == MULTI_LINE_FLAG) {
result_ = multiLineFlag(builder_, 0);
}
else if (root_ == SINGLE_LINE_FLAG) {
result_ = singleLineFlag(builder_, 0);
}
else {
result_ = parse_root_(root_, builder_, 0);
}
exit_section_(builder_, 0, marker_, root_, result_, true, TRUE_CONDITION);
return builder_.getTreeBuilt();
}
protected boolean parse_root_(final IElementType root_, final PsiBuilder builder_, final int level_) {
return proguardFile(builder_, level_ + 1);
}
/* ********************************************************** */
// LINE_CMT
public static boolean comment(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "comment")) return false;
if (!nextTokenIs(builder_, LINE_CMT)) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, LINE_CMT);
exit_section_(builder_, marker_, COMMENT, result_);
return result_;
}
/* ********************************************************** */
// multiLineFlag | singleLineFlag comment?
public static boolean flag(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "flag")) return false;
if (!nextTokenIs(builder_, FLAG_NAME)) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = multiLineFlag(builder_, level_ + 1);
if (!result_) result_ = flag_1(builder_, level_ + 1);
exit_section_(builder_, marker_, FLAG, result_);
return result_;
}
// singleLineFlag comment?
private static boolean flag_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "flag_1")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = singleLineFlag(builder_, level_ + 1);
result_ = result_ && flag_1_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// comment?
private static boolean flag_1_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "flag_1_1")) return false;
comment(builder_, level_ + 1);
return true;
}
/* ********************************************************** */
// OPEN_BRACE CRLF? (JAVA_DECL CRLF?)* CLOSE_BRACE
public static boolean javaSection(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "javaSection")) return false;
if (!nextTokenIs(builder_, OPEN_BRACE)) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, OPEN_BRACE);
result_ = result_ && javaSection_1(builder_, level_ + 1);
result_ = result_ && javaSection_2(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, CLOSE_BRACE);
exit_section_(builder_, marker_, JAVA_SECTION, result_);
return result_;
}
// CRLF?
private static boolean javaSection_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "javaSection_1")) return false;
consumeToken(builder_, CRLF);
return true;
}
// (JAVA_DECL CRLF?)*
private static boolean javaSection_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "javaSection_2")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!javaSection_2_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "javaSection_2", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
// JAVA_DECL CRLF?
private static boolean javaSection_2_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "javaSection_2_0")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, JAVA_DECL);
result_ = result_ && javaSection_2_0_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// CRLF?
private static boolean javaSection_2_0_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "javaSection_2_0_1")) return false;
consumeToken(builder_, CRLF);
return true;
}
/* ********************************************************** */
// FLAG_NAME FLAG_ARG* javaSection
public static boolean multiLineFlag(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "multiLineFlag")) return false;
if (!nextTokenIs(builder_, FLAG_NAME)) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, FLAG_NAME);
result_ = result_ && multiLineFlag_1(builder_, level_ + 1);
result_ = result_ && javaSection(builder_, level_ + 1);
exit_section_(builder_, marker_, MULTI_LINE_FLAG, result_);
return result_;
}
// FLAG_ARG*
private static boolean multiLineFlag_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "multiLineFlag_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!consumeToken(builder_, FLAG_ARG)) break;
if (!empty_element_parsed_guard_(builder_, "multiLineFlag_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
/* ********************************************************** */
// (comment CRLF | flag CRLF | WS? CRLF)*
// (comment | flag | WS? )?
static boolean proguardFile(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = proguardFile_0(builder_, level_ + 1);
result_ = result_ && proguardFile_1(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// (comment CRLF | flag CRLF | WS? CRLF)*
private static boolean proguardFile_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!proguardFile_0_0(builder_, level_ + 1)) break;
if (!empty_element_parsed_guard_(builder_, "proguardFile_0", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
// comment CRLF | flag CRLF | WS? CRLF
private static boolean proguardFile_0_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0_0")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = proguardFile_0_0_0(builder_, level_ + 1);
if (!result_) result_ = proguardFile_0_0_1(builder_, level_ + 1);
if (!result_) result_ = proguardFile_0_0_2(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// comment CRLF
private static boolean proguardFile_0_0_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0_0_0")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = comment(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, CRLF);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// flag CRLF
private static boolean proguardFile_0_0_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0_0_1")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = flag(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, CRLF);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// WS? CRLF
private static boolean proguardFile_0_0_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0_0_2")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = proguardFile_0_0_2_0(builder_, level_ + 1);
result_ = result_ && consumeToken(builder_, CRLF);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// WS?
private static boolean proguardFile_0_0_2_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_0_0_2_0")) return false;
consumeToken(builder_, WS);
return true;
}
// (comment | flag | WS? )?
private static boolean proguardFile_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_1")) return false;
proguardFile_1_0(builder_, level_ + 1);
return true;
}
// comment | flag | WS?
private static boolean proguardFile_1_0(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_1_0")) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = comment(builder_, level_ + 1);
if (!result_) result_ = flag(builder_, level_ + 1);
if (!result_) result_ = proguardFile_1_0_2(builder_, level_ + 1);
exit_section_(builder_, marker_, null, result_);
return result_;
}
// WS?
private static boolean proguardFile_1_0_2(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "proguardFile_1_0_2")) return false;
consumeToken(builder_, WS);
return true;
}
/* ********************************************************** */
// FLAG_NAME FLAG_ARG*
public static boolean singleLineFlag(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "singleLineFlag")) return false;
if (!nextTokenIs(builder_, FLAG_NAME)) return false;
boolean result_ = false;
Marker marker_ = enter_section_(builder_);
result_ = consumeToken(builder_, FLAG_NAME);
result_ = result_ && singleLineFlag_1(builder_, level_ + 1);
exit_section_(builder_, marker_, SINGLE_LINE_FLAG, result_);
return result_;
}
// FLAG_ARG*
private static boolean singleLineFlag_1(PsiBuilder builder_, int level_) {
if (!recursion_guard_(builder_, level_, "singleLineFlag_1")) return false;
int pos_ = current_position_(builder_);
while (true) {
if (!consumeToken(builder_, FLAG_ARG)) break;
if (!empty_element_parsed_guard_(builder_, "singleLineFlag_1", pos_)) break;
pos_ = current_position_(builder_);
}
return true;
}
}