aboutsummaryrefslogtreecommitdiff
path: root/gen/org/jetbrains/markdown/MarkdownParser.java
diff options
context:
space:
mode:
authorIlya Ryzhenkov <orangy@jetbrains.com>2014-09-25 23:09:49 +0400
committerIlya Ryzhenkov <orangy@jetbrains.com>2014-09-25 23:09:49 +0400
commit5894bf2affa3bb7cada6d5aaec7c6b43283a8c73 (patch)
treebbb1323f299c627e2f9f191e726b7864074eeee6 /gen/org/jetbrains/markdown/MarkdownParser.java
parentf7bab78839cea5674658a6a0298f88ef5ccca019 (diff)
downloaddokka-5894bf2affa3bb7cada6d5aaec7c6b43283a8c73.tar.gz
dokka-5894bf2affa3bb7cada6d5aaec7c6b43283a8c73.tar.bz2
dokka-5894bf2affa3bb7cada6d5aaec7c6b43283a8c73.zip
Add generated parser, lexer and some tests.
Diffstat (limited to 'gen/org/jetbrains/markdown/MarkdownParser.java')
-rw-r--r--gen/org/jetbrains/markdown/MarkdownParser.java1379
1 files changed, 1379 insertions, 0 deletions
diff --git a/gen/org/jetbrains/markdown/MarkdownParser.java b/gen/org/jetbrains/markdown/MarkdownParser.java
new file mode 100644
index 00000000..ef1d8375
--- /dev/null
+++ b/gen/org/jetbrains/markdown/MarkdownParser.java
@@ -0,0 +1,1379 @@
+// This is a generated file. Not intended for manual editing.
+package org.jetbrains.markdown;
+
+import com.intellij.lang.PsiBuilder;
+import com.intellij.lang.PsiBuilder.Marker;
+import static org.jetbrains.markdown.MarkdownElementTypes.*;
+import static org.jetbrains.dokka.Markdown.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 MarkdownParser implements PsiParser {
+
+ public ASTNode parse(IElementType root_, PsiBuilder builder_) {
+ parse_only_(root_, builder_);
+ return builder_.getTreeBuilt();
+ }
+
+ public void parse_only_(IElementType root_, PsiBuilder builder_) {
+ boolean result_;
+ builder_ = adapt_builder_(root_, builder_, this, null);
+ Marker marker_ = enter_section_(builder_, 0, _COLLAPSE_, null);
+ if (root_ == BLANK_LINE) {
+ result_ = BlankLine(builder_, 0);
+ }
+ else if (root_ == BLOCK) {
+ result_ = Block(builder_, 0);
+ }
+ else if (root_ == BULLET) {
+ result_ = Bullet(builder_, 0);
+ }
+ else if (root_ == BULLET_LIST) {
+ result_ = BulletList(builder_, 0);
+ }
+ else if (root_ == EMPH) {
+ result_ = Emph(builder_, 0);
+ }
+ else if (root_ == END_LINE) {
+ result_ = EndLine(builder_, 0);
+ }
+ else if (root_ == ENUMERATOR) {
+ result_ = Enumerator(builder_, 0);
+ }
+ else if (root_ == HORIZONTAL_RULE) {
+ result_ = HorizontalRule(builder_, 0);
+ }
+ else if (root_ == HREF) {
+ result_ = Href(builder_, 0);
+ }
+ else if (root_ == INLINE) {
+ result_ = Inline(builder_, 0);
+ }
+ else if (root_ == LINK) {
+ result_ = Link(builder_, 0);
+ }
+ else if (root_ == LIST_BLOCK) {
+ result_ = ListBlock(builder_, 0);
+ }
+ else if (root_ == LIST_BLOCK_LINE) {
+ result_ = ListBlockLine(builder_, 0);
+ }
+ else if (root_ == LIST_CONTINUATION_BLOCK) {
+ result_ = ListContinuationBlock(builder_, 0);
+ }
+ else if (root_ == LIST_ITEM) {
+ result_ = ListItem(builder_, 0);
+ }
+ else if (root_ == ORDERED_LIST) {
+ result_ = OrderedList(builder_, 0);
+ }
+ else if (root_ == PARA) {
+ result_ = Para(builder_, 0);
+ }
+ else if (root_ == STRONG) {
+ result_ = Strong(builder_, 0);
+ }
+ else if (root_ == STRONG_STAR) {
+ result_ = StrongStar(builder_, 0);
+ }
+ else if (root_ == STRONG_UNDERSCORE) {
+ result_ = StrongUnderscore(builder_, 0);
+ }
+ else if (root_ == TARGET) {
+ result_ = Target(builder_, 0);
+ }
+ else if (root_ == WHITESPACE) {
+ result_ = Whitespace(builder_, 0);
+ }
+ else {
+ result_ = parse_root_(root_, builder_, 0);
+ }
+ exit_section_(builder_, 0, marker_, root_, result_, true, TRUE_CONDITION);
+ }
+
+ protected boolean parse_root_(IElementType root_, PsiBuilder builder_, int level_) {
+ return Document(builder_, level_ + 1);
+ }
+
+ /* ********************************************************** */
+ // OptionalSpace Newline
+ public static boolean BlankLine(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "BlankLine")) return false;
+ if (!nextTokenIs(builder_, "<blank line>", NEWLINE, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<blank line>");
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, NEWLINE);
+ exit_section_(builder_, level_, marker_, BLANK_LINE, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // BlankLine* (
+ // Para
+ // | Plain
+ // | OrderedList
+ // | BulletList
+ // )
+ public static boolean Block(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Block")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<block>");
+ result_ = Block_0(builder_, level_ + 1);
+ result_ = result_ && Block_1(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, BLOCK, result_, false, null);
+ return result_;
+ }
+
+ // BlankLine*
+ private static boolean Block_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Block_0")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!BlankLine(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "Block_0", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // Para
+ // | Plain
+ // | OrderedList
+ // | BulletList
+ private static boolean Block_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Block_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Para(builder_, level_ + 1);
+ if (!result_) result_ = Plain(builder_, level_ + 1);
+ if (!result_) result_ = OrderedList(builder_, level_ + 1);
+ if (!result_) result_ = BulletList(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // !HorizontalRule NonindentSpace ('+' | '*' | '-') Spacechar+
+ public static boolean Bullet(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Bullet")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<bullet>");
+ result_ = Bullet_0(builder_, level_ + 1);
+ result_ = result_ && NonindentSpace(builder_, level_ + 1);
+ result_ = result_ && Bullet_2(builder_, level_ + 1);
+ result_ = result_ && Bullet_3(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, BULLET, result_, false, null);
+ return result_;
+ }
+
+ // !HorizontalRule
+ private static boolean Bullet_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Bullet_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !HorizontalRule(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // '+' | '*' | '-'
+ private static boolean Bullet_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Bullet_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "+");
+ if (!result_) result_ = consumeToken(builder_, "*");
+ if (!result_) result_ = consumeToken(builder_, "-");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // Spacechar+
+ private static boolean Bullet_3(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Bullet_3")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, SPACECHAR);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!consumeToken(builder_, SPACECHAR)) break;
+ if (!empty_element_parsed_guard_(builder_, "Bullet_3", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // &Bullet List
+ public static boolean BulletList(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "BulletList")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<bullet list>");
+ result_ = BulletList_0(builder_, level_ + 1);
+ result_ = result_ && List(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, BULLET_LIST, result_, false, null);
+ return result_;
+ }
+
+ // &Bullet
+ private static boolean BulletList_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "BulletList_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _AND_, null);
+ result_ = Bullet(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // BOM? ( Block )*
+ static boolean Document(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Document")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Document_0(builder_, level_ + 1);
+ result_ = result_ && Document_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // BOM?
+ private static boolean Document_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Document_0")) return false;
+ consumeToken(builder_, BOM);
+ return true;
+ }
+
+ // ( Block )*
+ private static boolean Document_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Document_1")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!Document_1_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "Document_1", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // ( Block )
+ private static boolean Document_1_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Document_1_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Block(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // EmphStar | EmphUnderscore
+ public static boolean Emph(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Emph")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<emph>");
+ result_ = EmphStar(builder_, level_ + 1);
+ if (!result_) result_ = EmphUnderscore(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, EMPH, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // '*' !Whitespace (!'*' Inline)+ '*'
+ static boolean EmphStar(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphStar")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "*");
+ result_ = result_ && EmphStar_1(builder_, level_ + 1);
+ result_ = result_ && EmphStar_2(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "*");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !Whitespace
+ private static boolean EmphStar_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphStar_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !Whitespace(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // (!'*' Inline)+
+ private static boolean EmphStar_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphStar_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = EmphStar_2_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!EmphStar_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "EmphStar_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'*' Inline
+ private static boolean EmphStar_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphStar_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = EmphStar_2_0_0(builder_, level_ + 1);
+ result_ = result_ && Inline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'*'
+ private static boolean EmphStar_2_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphStar_2_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !consumeToken(builder_, "*");
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // '_' !Whitespace (!'_' Inline)+ '_'
+ static boolean EmphUnderscore(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphUnderscore")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "_");
+ result_ = result_ && EmphUnderscore_1(builder_, level_ + 1);
+ result_ = result_ && EmphUnderscore_2(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "_");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !Whitespace
+ private static boolean EmphUnderscore_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphUnderscore_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !Whitespace(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // (!'_' Inline)+
+ private static boolean EmphUnderscore_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphUnderscore_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = EmphUnderscore_2_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!EmphUnderscore_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "EmphUnderscore_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'_' Inline
+ private static boolean EmphUnderscore_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphUnderscore_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = EmphUnderscore_2_0_0(builder_, level_ + 1);
+ result_ = result_ && Inline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'_'
+ private static boolean EmphUnderscore_2_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EmphUnderscore_2_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !consumeToken(builder_, "_");
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // TerminalEndline | NormalEndline
+ public static boolean EndLine(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "EndLine")) return false;
+ if (!nextTokenIs(builder_, "<end line>", NEWLINE, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<end line>");
+ result_ = TerminalEndline(builder_, level_ + 1);
+ if (!result_) result_ = NormalEndline(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, END_LINE, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // NonindentSpace Number '.' Spacechar+
+ public static boolean Enumerator(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Enumerator")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<enumerator>");
+ result_ = NonindentSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, NUMBER);
+ result_ = result_ && consumeToken(builder_, ".");
+ result_ = result_ && Enumerator_3(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, ENUMERATOR, result_, false, null);
+ return result_;
+ }
+
+ // Spacechar+
+ private static boolean Enumerator_3(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Enumerator_3")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, SPACECHAR);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!consumeToken(builder_, SPACECHAR)) break;
+ if (!empty_element_parsed_guard_(builder_, "Enumerator_3", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // NonindentSpace
+ // ( '*' OptionalSpace '*' OptionalSpace '*' (OptionalSpace '*')*
+ // | '-' OptionalSpace '-' OptionalSpace '-' (OptionalSpace '-')*
+ // | '_' OptionalSpace '_' OptionalSpace '_' (OptionalSpace '_')*)
+ // OptionalSpace Newline BlankLine+
+ public static boolean HorizontalRule(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<horizontal rule>");
+ result_ = NonindentSpace(builder_, level_ + 1);
+ result_ = result_ && HorizontalRule_1(builder_, level_ + 1);
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, NEWLINE);
+ result_ = result_ && HorizontalRule_4(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, HORIZONTAL_RULE, result_, false, null);
+ return result_;
+ }
+
+ // '*' OptionalSpace '*' OptionalSpace '*' (OptionalSpace '*')*
+ // | '-' OptionalSpace '-' OptionalSpace '-' (OptionalSpace '-')*
+ // | '_' OptionalSpace '_' OptionalSpace '_' (OptionalSpace '_')*
+ private static boolean HorizontalRule_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = HorizontalRule_1_0(builder_, level_ + 1);
+ if (!result_) result_ = HorizontalRule_1_1(builder_, level_ + 1);
+ if (!result_) result_ = HorizontalRule_1_2(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // '*' OptionalSpace '*' OptionalSpace '*' (OptionalSpace '*')*
+ private static boolean HorizontalRule_1_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "*");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "*");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "*");
+ result_ = result_ && HorizontalRule_1_0_5(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // (OptionalSpace '*')*
+ private static boolean HorizontalRule_1_0_5(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_0_5")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!HorizontalRule_1_0_5_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "HorizontalRule_1_0_5", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // OptionalSpace '*'
+ private static boolean HorizontalRule_1_0_5_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_0_5_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "*");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // '-' OptionalSpace '-' OptionalSpace '-' (OptionalSpace '-')*
+ private static boolean HorizontalRule_1_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "-");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "-");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "-");
+ result_ = result_ && HorizontalRule_1_1_5(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // (OptionalSpace '-')*
+ private static boolean HorizontalRule_1_1_5(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_1_5")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!HorizontalRule_1_1_5_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "HorizontalRule_1_1_5", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // OptionalSpace '-'
+ private static boolean HorizontalRule_1_1_5_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_1_5_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "-");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // '_' OptionalSpace '_' OptionalSpace '_' (OptionalSpace '_')*
+ private static boolean HorizontalRule_1_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "_");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "_");
+ result_ = result_ && OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "_");
+ result_ = result_ && HorizontalRule_1_2_5(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // (OptionalSpace '_')*
+ private static boolean HorizontalRule_1_2_5(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_2_5")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!HorizontalRule_1_2_5_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "HorizontalRule_1_2_5", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // OptionalSpace '_'
+ private static boolean HorizontalRule_1_2_5_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_1_2_5_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "_");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // BlankLine+
+ private static boolean HorizontalRule_4(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HorizontalRule_4")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = BlankLine(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!BlankLine(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "HorizontalRule_4", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // String
+ public static boolean Href(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Href")) return false;
+ if (!nextTokenIs(builder_, STRING)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, STRING);
+ exit_section_(builder_, marker_, HREF, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // '[' Target ']' '(' Href ')'
+ static boolean HrefLink(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "HrefLink")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "[");
+ result_ = result_ && Target(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "]");
+ result_ = result_ && consumeToken(builder_, "(");
+ result_ = result_ && Href(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, ")");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // "\t" | " "
+ static boolean Indent(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Indent")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "\t");
+ if (!result_) result_ = consumeToken(builder_, " ");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // String | Number | EndLine | Spacechar+ | Strong | Emph | Link
+ public static boolean Inline(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inline")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<inline>");
+ result_ = consumeToken(builder_, STRING);
+ if (!result_) result_ = consumeToken(builder_, NUMBER);
+ if (!result_) result_ = EndLine(builder_, level_ + 1);
+ if (!result_) result_ = Inline_3(builder_, level_ + 1);
+ if (!result_) result_ = Strong(builder_, level_ + 1);
+ if (!result_) result_ = Emph(builder_, level_ + 1);
+ if (!result_) result_ = Link(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, INLINE, result_, false, null);
+ return result_;
+ }
+
+ // Spacechar+
+ private static boolean Inline_3(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inline_3")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, SPACECHAR);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!consumeToken(builder_, SPACECHAR)) break;
+ if (!empty_element_parsed_guard_(builder_, "Inline_3", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // (!EndLine Inline | EndLine &Inline )+ EndLine?
+ static boolean Inlines(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Inlines_0(builder_, level_ + 1);
+ result_ = result_ && Inlines_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // (!EndLine Inline | EndLine &Inline )+
+ private static boolean Inlines_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Inlines_0_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!Inlines_0_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "Inlines_0", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !EndLine Inline | EndLine &Inline
+ private static boolean Inlines_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Inlines_0_0_0(builder_, level_ + 1);
+ if (!result_) result_ = Inlines_0_0_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !EndLine Inline
+ private static boolean Inlines_0_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Inlines_0_0_0_0(builder_, level_ + 1);
+ result_ = result_ && Inline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !EndLine
+ private static boolean Inlines_0_0_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0_0_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !EndLine(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // EndLine &Inline
+ private static boolean Inlines_0_0_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0_0_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = EndLine(builder_, level_ + 1);
+ result_ = result_ && Inlines_0_0_1_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // &Inline
+ private static boolean Inlines_0_0_1_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_0_0_1_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _AND_, null);
+ result_ = Inline(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // EndLine?
+ private static boolean Inlines_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Inlines_1")) return false;
+ EndLine(builder_, level_ + 1);
+ return true;
+ }
+
+ /* ********************************************************** */
+ // HrefLink | ReferenceLink
+ public static boolean Link(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Link")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<link>");
+ result_ = HrefLink(builder_, level_ + 1);
+ if (!result_) result_ = ReferenceLink(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, LINK, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // (ListItem BlankLine*)+
+ static boolean List(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "List")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = List_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!List_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "List", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // ListItem BlankLine*
+ private static boolean List_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "List_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = ListItem(builder_, level_ + 1);
+ result_ = result_ && List_0_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // BlankLine*
+ private static boolean List_0_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "List_0_1")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!BlankLine(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "List_0_1", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ /* ********************************************************** */
+ // !BlankLine Plain ( ListBlockLine )*
+ public static boolean ListBlock(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlock")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<list block>");
+ result_ = ListBlock_0(builder_, level_ + 1);
+ result_ = result_ && Plain(builder_, level_ + 1);
+ result_ = result_ && ListBlock_2(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, LIST_BLOCK, result_, false, null);
+ return result_;
+ }
+
+ // !BlankLine
+ private static boolean ListBlock_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlock_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !BlankLine(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // ( ListBlockLine )*
+ private static boolean ListBlock_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlock_2")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!ListBlock_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "ListBlock_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // ( ListBlockLine )
+ private static boolean ListBlock_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlock_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = ListBlockLine(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // !BlankLine !(Indent? (Bullet | Enumerator)) !HorizontalRule Indent? Plain
+ public static boolean ListBlockLine(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<list block line>");
+ result_ = ListBlockLine_0(builder_, level_ + 1);
+ result_ = result_ && ListBlockLine_1(builder_, level_ + 1);
+ result_ = result_ && ListBlockLine_2(builder_, level_ + 1);
+ result_ = result_ && ListBlockLine_3(builder_, level_ + 1);
+ result_ = result_ && Plain(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, LIST_BLOCK_LINE, result_, false, null);
+ return result_;
+ }
+
+ // !BlankLine
+ private static boolean ListBlockLine_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !BlankLine(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // !(Indent? (Bullet | Enumerator))
+ private static boolean ListBlockLine_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !ListBlockLine_1_0(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // Indent? (Bullet | Enumerator)
+ private static boolean ListBlockLine_1_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_1_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = ListBlockLine_1_0_0(builder_, level_ + 1);
+ result_ = result_ && ListBlockLine_1_0_1(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // Indent?
+ private static boolean ListBlockLine_1_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_1_0_0")) return false;
+ Indent(builder_, level_ + 1);
+ return true;
+ }
+
+ // Bullet | Enumerator
+ private static boolean ListBlockLine_1_0_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_1_0_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Bullet(builder_, level_ + 1);
+ if (!result_) result_ = Enumerator(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !HorizontalRule
+ private static boolean ListBlockLine_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !HorizontalRule(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // Indent?
+ private static boolean ListBlockLine_3(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListBlockLine_3")) return false;
+ Indent(builder_, level_ + 1);
+ return true;
+ }
+
+ /* ********************************************************** */
+ // BlankLine* (Indent ListBlock)+
+ public static boolean ListContinuationBlock(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListContinuationBlock")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<list continuation block>");
+ result_ = ListContinuationBlock_0(builder_, level_ + 1);
+ result_ = result_ && ListContinuationBlock_1(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, LIST_CONTINUATION_BLOCK, result_, false, null);
+ return result_;
+ }
+
+ // BlankLine*
+ private static boolean ListContinuationBlock_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListContinuationBlock_0")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!BlankLine(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "ListContinuationBlock_0", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // (Indent ListBlock)+
+ private static boolean ListContinuationBlock_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListContinuationBlock_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = ListContinuationBlock_1_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!ListContinuationBlock_1_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "ListContinuationBlock_1", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // Indent ListBlock
+ private static boolean ListContinuationBlock_1_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListContinuationBlock_1_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Indent(builder_, level_ + 1);
+ result_ = result_ && ListBlock(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // (Bullet | Enumerator) ListBlock ( ListContinuationBlock )*
+ public static boolean ListItem(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListItem")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<list item>");
+ result_ = ListItem_0(builder_, level_ + 1);
+ result_ = result_ && ListBlock(builder_, level_ + 1);
+ result_ = result_ && ListItem_2(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, LIST_ITEM, result_, false, null);
+ return result_;
+ }
+
+ // Bullet | Enumerator
+ private static boolean ListItem_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListItem_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Bullet(builder_, level_ + 1);
+ if (!result_) result_ = Enumerator(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // ( ListContinuationBlock )*
+ private static boolean ListItem_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListItem_2")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!ListItem_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "ListItem_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ // ( ListContinuationBlock )
+ private static boolean ListItem_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ListItem_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = ListContinuationBlock(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // (" " | " " | " ")?
+ static boolean NonindentSpace(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "NonindentSpace")) return false;
+ NonindentSpace_0(builder_, level_ + 1);
+ return true;
+ }
+
+ // " " | " " | " "
+ private static boolean NonindentSpace_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "NonindentSpace_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, " ");
+ if (!result_) result_ = consumeToken(builder_, " ");
+ if (!result_) result_ = consumeToken(builder_, " ");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // OptionalSpace Newline !BlankLine
+ static boolean NormalEndline(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "NormalEndline")) return false;
+ if (!nextTokenIs(builder_, "", NEWLINE, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, NEWLINE);
+ result_ = result_ && NormalEndline_2(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !BlankLine
+ private static boolean NormalEndline_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "NormalEndline_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !BlankLine(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // Spacechar*
+ static boolean OptionalSpace(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "OptionalSpace")) return false;
+ int pos_ = current_position_(builder_);
+ while (true) {
+ if (!consumeToken(builder_, SPACECHAR)) break;
+ if (!empty_element_parsed_guard_(builder_, "OptionalSpace", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ return true;
+ }
+
+ /* ********************************************************** */
+ // &Enumerator List
+ public static boolean OrderedList(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "OrderedList")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<ordered list>");
+ result_ = OrderedList_0(builder_, level_ + 1);
+ result_ = result_ && List(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, ORDERED_LIST, result_, false, null);
+ return result_;
+ }
+
+ // &Enumerator
+ private static boolean OrderedList_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "OrderedList_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _AND_, null);
+ result_ = Enumerator(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // NonindentSpace Inlines (BlankLine+ | TerminalEndline)
+ public static boolean Para(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Para")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<para>");
+ result_ = NonindentSpace(builder_, level_ + 1);
+ result_ = result_ && Inlines(builder_, level_ + 1);
+ result_ = result_ && Para_2(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, PARA, result_, false, null);
+ return result_;
+ }
+
+ // BlankLine+ | TerminalEndline
+ private static boolean Para_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Para_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = Para_2_0(builder_, level_ + 1);
+ if (!result_) result_ = TerminalEndline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // BlankLine+
+ private static boolean Para_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Para_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = BlankLine(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!BlankLine(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "Para_2_0", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // Inlines
+ static boolean Plain(PsiBuilder builder_, int level_) {
+ return Inlines(builder_, level_ + 1);
+ }
+
+ /* ********************************************************** */
+ // '[' Target ']'
+ static boolean ReferenceLink(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "ReferenceLink")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, "[");
+ result_ = result_ && Target(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "]");
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // Spacechar+
+ static boolean RequiredSpace(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "RequiredSpace")) return false;
+ if (!nextTokenIs(builder_, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, SPACECHAR);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!consumeToken(builder_, SPACECHAR)) break;
+ if (!empty_element_parsed_guard_(builder_, "RequiredSpace", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // StrongStar | StrongUnderscore
+ public static boolean Strong(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Strong")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<strong>");
+ result_ = StrongStar(builder_, level_ + 1);
+ if (!result_) result_ = StrongUnderscore(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, STRONG, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // '**' !Whitespace (!'**' Inline)+ '**'
+ public static boolean StrongStar(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongStar")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<strong star>");
+ result_ = consumeToken(builder_, "**");
+ result_ = result_ && StrongStar_1(builder_, level_ + 1);
+ result_ = result_ && StrongStar_2(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "**");
+ exit_section_(builder_, level_, marker_, STRONG_STAR, result_, false, null);
+ return result_;
+ }
+
+ // !Whitespace
+ private static boolean StrongStar_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongStar_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !Whitespace(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // (!'**' Inline)+
+ private static boolean StrongStar_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongStar_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = StrongStar_2_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!StrongStar_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "StrongStar_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'**' Inline
+ private static boolean StrongStar_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongStar_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = StrongStar_2_0_0(builder_, level_ + 1);
+ result_ = result_ && Inline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'**'
+ private static boolean StrongStar_2_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongStar_2_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !consumeToken(builder_, "**");
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // '__' !Whitespace (!'__' Inline)+ '__'
+ public static boolean StrongUnderscore(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongUnderscore")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<strong underscore>");
+ result_ = consumeToken(builder_, "__");
+ result_ = result_ && StrongUnderscore_1(builder_, level_ + 1);
+ result_ = result_ && StrongUnderscore_2(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, "__");
+ exit_section_(builder_, level_, marker_, STRONG_UNDERSCORE, result_, false, null);
+ return result_;
+ }
+
+ // !Whitespace
+ private static boolean StrongUnderscore_1(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongUnderscore_1")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !Whitespace(builder_, level_ + 1);
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ // (!'__' Inline)+
+ private static boolean StrongUnderscore_2(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongUnderscore_2")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = StrongUnderscore_2_0(builder_, level_ + 1);
+ int pos_ = current_position_(builder_);
+ while (result_) {
+ if (!StrongUnderscore_2_0(builder_, level_ + 1)) break;
+ if (!empty_element_parsed_guard_(builder_, "StrongUnderscore_2", pos_)) break;
+ pos_ = current_position_(builder_);
+ }
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'__' Inline
+ private static boolean StrongUnderscore_2_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongUnderscore_2_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = StrongUnderscore_2_0_0(builder_, level_ + 1);
+ result_ = result_ && Inline(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ // !'__'
+ private static boolean StrongUnderscore_2_0_0(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "StrongUnderscore_2_0_0")) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NOT_, null);
+ result_ = !consumeToken(builder_, "__");
+ exit_section_(builder_, level_, marker_, null, result_, false, null);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // String
+ public static boolean Target(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Target")) return false;
+ if (!nextTokenIs(builder_, STRING)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = consumeToken(builder_, STRING);
+ exit_section_(builder_, marker_, TARGET, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // OptionalSpace Newline <<eof>>
+ static boolean TerminalEndline(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "TerminalEndline")) return false;
+ if (!nextTokenIs(builder_, "", NEWLINE, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_);
+ result_ = OptionalSpace(builder_, level_ + 1);
+ result_ = result_ && consumeToken(builder_, NEWLINE);
+ result_ = result_ && eof(builder_, level_ + 1);
+ exit_section_(builder_, marker_, null, result_);
+ return result_;
+ }
+
+ /* ********************************************************** */
+ // Spacechar | Newline
+ public static boolean Whitespace(PsiBuilder builder_, int level_) {
+ if (!recursion_guard_(builder_, level_, "Whitespace")) return false;
+ if (!nextTokenIs(builder_, "<whitespace>", NEWLINE, SPACECHAR)) return false;
+ boolean result_;
+ Marker marker_ = enter_section_(builder_, level_, _NONE_, "<whitespace>");
+ result_ = consumeToken(builder_, SPACECHAR);
+ if (!result_) result_ = consumeToken(builder_, NEWLINE);
+ exit_section_(builder_, level_, marker_, WHITESPACE, result_, false, null);
+ return result_;
+ }
+
+}