diff options
30 files changed, 749 insertions, 514 deletions
diff --git a/.idea/runConfigurations/All_tests.xml b/.idea/runConfigurations/All_tests.xml index 4e7c9c09..deb51b1a 100644 --- a/.idea/runConfigurations/All_tests.xml +++ b/.idea/runConfigurations/All_tests.xml @@ -23,8 +23,14 @@ <option name="TRANSPORT" value="0" /> <option name="LOCAL" value="true" /> </RunnerSettings> + <RunnerSettings RunnerId="Debug"> + <option name="DEBUG_PORT" value="" /> + <option name="TRANSPORT" value="0" /> + <option name="LOCAL" value="true" /> + </RunnerSettings> <RunnerSettings RunnerId="Run" /> <ConfigurationWrapper RunnerId="Debug" /> + <ConfigurationWrapper RunnerId="Debug" /> <ConfigurationWrapper RunnerId="Run" /> <method /> </configuration> diff --git a/gen/org/jetbrains/markdown/MarkdownElementTypes.java b/gen/org/jetbrains/markdown/MarkdownElementTypes.java index 757cc62f..8c2d77ba 100644 --- a/gen/org/jetbrains/markdown/MarkdownElementTypes.java +++ b/gen/org/jetbrains/markdown/MarkdownElementTypes.java @@ -6,7 +6,9 @@ import org.jetbrains.dokka.Markdown.MarkdownTokenType; public interface MarkdownElementTypes { + IElementType ANONYMOUS_SECTION = new IElementType("ANONYMOUS_SECTION", null); IElementType BLANK_LINE = new IElementType("BLANK_LINE", null); + IElementType BLOCK = new IElementType("BLOCK", null); IElementType BULLET = new IElementType("BULLET", null); IElementType BULLET_LIST = new IElementType("BULLET_LIST", null); IElementType EMPH = new IElementType("EMPH", null); @@ -14,22 +16,22 @@ public interface MarkdownElementTypes { IElementType ENUMERATOR = new IElementType("ENUMERATOR", null); IElementType HORIZONTAL_RULE = new IElementType("HORIZONTAL_RULE", null); IElementType HREF = new IElementType("HREF", null); - IElementType INDENTED_LINE = new IElementType("INDENTED_LINE", null); + IElementType INLINE = new IElementType("INLINE", null); IElementType LINK = new IElementType("LINK", null); IElementType LIST_BLOCK = new IElementType("LIST_BLOCK", null); IElementType LIST_BLOCK_LINE = new IElementType("LIST_BLOCK_LINE", null); IElementType LIST_CONTINUATION_BLOCK = new IElementType("LIST_CONTINUATION_BLOCK", null); IElementType LIST_ITEM = new IElementType("LIST_ITEM", null); - IElementType NONBLANK_INDENTED_LINE = new IElementType("NONBLANK_INDENTED_LINE", null); + IElementType NAMED_SECTION = new IElementType("NAMED_SECTION", null); IElementType ORDERED_LIST = new IElementType("ORDERED_LIST", null); IElementType PARA = new IElementType("PARA", null); IElementType PLAIN_TEXT = new IElementType("PLAIN_TEXT", null); + IElementType SECTION_BODY = new IElementType("SECTION_BODY", null); + IElementType SECTION_NAME = new IElementType("SECTION_NAME", null); IElementType STRONG = new IElementType("STRONG", null); IElementType STRONG_STAR = new IElementType("STRONG_STAR", null); IElementType STRONG_UNDERSCORE = new IElementType("STRONG_UNDERSCORE", null); IElementType TARGET = new IElementType("TARGET", null); - IElementType VERBATIM = new IElementType("VERBATIM", null); - IElementType VERBATIM_ITEM = new IElementType("VERBATIM_ITEM", null); IElementType WHITESPACE = new IElementType("WHITESPACE", null); IElementType ANYCHAR = new MarkdownTokenType("AnyChar"); diff --git a/gen/org/jetbrains/markdown/MarkdownParser.java b/gen/org/jetbrains/markdown/MarkdownParser.java index 90c69985..09c4a0f9 100644 --- a/gen/org/jetbrains/markdown/MarkdownParser.java +++ b/gen/org/jetbrains/markdown/MarkdownParser.java @@ -22,9 +22,15 @@ public class MarkdownParser implements PsiParser { boolean result_; builder_ = adapt_builder_(root_, builder_, this, null); Marker marker_ = enter_section_(builder_, 0, _COLLAPSE_, null); - if (root_ == BLANK_LINE) { + if (root_ == ANONYMOUS_SECTION) { + result_ = AnonymousSection(builder_, 0); + } + else if (root_ == BLANK_LINE) { result_ = BlankLine(builder_, 0); } + else if (root_ == BLOCK) { + result_ = Block(builder_, 0); + } else if (root_ == BULLET) { result_ = Bullet(builder_, 0); } @@ -46,8 +52,8 @@ public class MarkdownParser implements PsiParser { else if (root_ == HREF) { result_ = Href(builder_, 0); } - else if (root_ == INDENTED_LINE) { - result_ = IndentedLine(builder_, 0); + else if (root_ == INLINE) { + result_ = Inline(builder_, 0); } else if (root_ == LINK) { result_ = Link(builder_, 0); @@ -64,8 +70,8 @@ public class MarkdownParser implements PsiParser { else if (root_ == LIST_ITEM) { result_ = ListItem(builder_, 0); } - else if (root_ == NONBLANK_INDENTED_LINE) { - result_ = NonblankIndentedLine(builder_, 0); + else if (root_ == NAMED_SECTION) { + result_ = NamedSection(builder_, 0); } else if (root_ == ORDERED_LIST) { result_ = OrderedList(builder_, 0); @@ -76,6 +82,12 @@ public class MarkdownParser implements PsiParser { else if (root_ == PLAIN_TEXT) { result_ = PlainText(builder_, 0); } + else if (root_ == SECTION_BODY) { + result_ = SectionBody(builder_, 0); + } + else if (root_ == SECTION_NAME) { + result_ = SectionName(builder_, 0); + } else if (root_ == STRONG) { result_ = Strong(builder_, 0); } @@ -88,12 +100,6 @@ public class MarkdownParser implements PsiParser { else if (root_ == TARGET) { result_ = Target(builder_, 0); } - else if (root_ == VERBATIM) { - result_ = Verbatim(builder_, 0); - } - else if (root_ == VERBATIM_ITEM) { - result_ = VerbatimItem(builder_, 0); - } else if (root_ == WHITESPACE) { result_ = Whitespace(builder_, 0); } @@ -108,6 +114,17 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ + // SectionBody + public static boolean AnonymousSection(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "AnonymousSection")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<anonymous section>"); + result_ = SectionBody(builder_, level_ + 1); + exit_section_(builder_, level_, marker_, ANONYMOUS_SECTION, result_, false, null); + return result_; + } + + /* ********************************************************** */ // OptionalSpace Newline public static boolean BlankLine(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "BlankLine")) return false; @@ -122,19 +139,18 @@ public class MarkdownParser implements PsiParser { /* ********************************************************** */ // BlankLine* ( - // Para - // | Verbatim - // | OrderedList - // | BulletList - // | Inlines - // ) - static boolean Block(PsiBuilder builder_, int level_) { + // OrderedList + // | BulletList + // | HorizontalRule + // | Para + // ) + public static boolean Block(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "Block")) return false; boolean result_; - Marker marker_ = enter_section_(builder_); + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<block>"); result_ = Block_0(builder_, level_ + 1); result_ = result_ && Block_1(builder_, level_ + 1); - exit_section_(builder_, marker_, null, result_); + exit_section_(builder_, level_, marker_, BLOCK, result_, false, null); return result_; } @@ -150,20 +166,18 @@ public class MarkdownParser implements PsiParser { return true; } - // Para - // | Verbatim - // | OrderedList - // | BulletList - // | Inlines + // OrderedList + // | BulletList + // | HorizontalRule + // | Para 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_ = Verbatim(builder_, level_ + 1); - if (!result_) result_ = OrderedList(builder_, level_ + 1); + result_ = OrderedList(builder_, level_ + 1); if (!result_) result_ = BulletList(builder_, level_ + 1); - if (!result_) result_ = Inlines(builder_, level_ + 1); + if (!result_) result_ = HorizontalRule(builder_, level_ + 1); + if (!result_) result_ = Para(builder_, level_ + 1); exit_section_(builder_, marker_, null, result_); return result_; } @@ -243,13 +257,15 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // BOM? ( Block )* + // BOM? Whitespace* AnonymousSection? (Whitespace* NamedSection)* 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); + result_ = result_ && Document_2(builder_, level_ + 1); + result_ = result_ && Document_3(builder_, level_ + 1); exit_section_(builder_, marker_, null, result_); return result_; } @@ -261,28 +277,60 @@ public class MarkdownParser implements PsiParser { return true; } - // ( Block )* + // Whitespace* 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 (!Whitespace(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; + // AnonymousSection? + private static boolean Document_2(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Document_2")) return false; + AnonymousSection(builder_, level_ + 1); + return true; + } + + // (Whitespace* NamedSection)* + private static boolean Document_3(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Document_3")) return false; + int pos_ = current_position_(builder_); + while (true) { + if (!Document_3_0(builder_, level_ + 1)) break; + if (!empty_element_parsed_guard_(builder_, "Document_3", pos_)) break; + pos_ = current_position_(builder_); + } + return true; + } + + // Whitespace* NamedSection + private static boolean Document_3_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Document_3_0")) return false; boolean result_; Marker marker_ = enter_section_(builder_); - result_ = Block(builder_, level_ + 1); + result_ = Document_3_0_0(builder_, level_ + 1); + result_ = result_ && NamedSection(builder_, level_ + 1); exit_section_(builder_, marker_, null, result_); return result_; } + // Whitespace* + private static boolean Document_3_0_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Document_3_0_0")) return false; + int pos_ = current_position_(builder_); + while (true) { + if (!Whitespace(builder_, level_ + 1)) break; + if (!empty_element_parsed_guard_(builder_, "Document_3_0_0", pos_)) break; + pos_ = current_position_(builder_); + } + return true; + } + /* ********************************************************** */ // EmphStar | EmphUnderscore public static boolean Emph(PsiBuilder builder_, int level_) { @@ -663,28 +711,16 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // Indent PlainText - public static boolean IndentedLine(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "IndentedLine")) return false; - boolean result_; - Marker marker_ = enter_section_(builder_, level_, _NONE_, "<indented line>"); - result_ = Indent(builder_, level_ + 1); - result_ = result_ && PlainText(builder_, level_ + 1); - exit_section_(builder_, level_, marker_, INDENTED_LINE, result_, false, null); - return result_; - } - - /* ********************************************************** */ // Strong | Emph | Link | PlainText - static boolean Inline(PsiBuilder builder_, int level_) { + public static boolean Inline(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "Inline")) return false; boolean result_; - Marker marker_ = enter_section_(builder_); + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<inline>"); result_ = Strong(builder_, level_ + 1); if (!result_) result_ = Emph(builder_, level_ + 1); if (!result_) result_ = Link(builder_, level_ + 1); if (!result_) result_ = PlainText(builder_, level_ + 1); - exit_section_(builder_, marker_, null, result_); + exit_section_(builder_, level_, marker_, INLINE, result_, false, null); return result_; } @@ -1052,24 +1088,14 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // !BlankLine IndentedLine - public static boolean NonblankIndentedLine(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "NonblankIndentedLine")) return false; + // SectionHeader SectionBody + public static boolean NamedSection(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "NamedSection")) return false; boolean result_; - Marker marker_ = enter_section_(builder_, level_, _NONE_, "<nonblank indented line>"); - result_ = NonblankIndentedLine_0(builder_, level_ + 1); - result_ = result_ && IndentedLine(builder_, level_ + 1); - exit_section_(builder_, level_, marker_, NONBLANK_INDENTED_LINE, result_, false, null); - return result_; - } - - // !BlankLine - private static boolean NonblankIndentedLine_0(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "NonblankIndentedLine_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); + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<named section>"); + result_ = SectionHeader(builder_, level_ + 1); + result_ = result_ && SectionBody(builder_, level_ + 1); + exit_section_(builder_, level_, marker_, NAMED_SECTION, result_, false, null); return result_; } @@ -1094,22 +1120,21 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // OptionalSpace Newline !BlankLine + // Newline !BlankLine static boolean NormalEndline(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "NormalEndline")) return false; - if (!nextTokenIs(builder_, "", NEWLINE, SPACECHAR)) return false; + if (!nextTokenIs(builder_, NEWLINE)) 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); + result_ = consumeToken(builder_, NEWLINE); + result_ = result_ && NormalEndline_1(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; + private static boolean NormalEndline_1(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "NormalEndline_1")) return false; boolean result_; Marker marker_ = enter_section_(builder_, level_, _NOT_, null); result_ = !BlankLine(builder_, level_ + 1); @@ -1153,21 +1178,27 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // NonindentSpace Inlines (BlankLine | TerminalEndline) + // 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); + result_ = Inlines(builder_, level_ + 1); + result_ = result_ && Para_1(builder_, level_ + 1); exit_section_(builder_, level_, marker_, PARA, result_, false, null); return result_; } + // (BlankLine | TerminalEndline)? + private static boolean Para_1(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Para_1")) return false; + Para_1_0(builder_, level_ + 1); + return true; + } + // BlankLine | TerminalEndline - private static boolean Para_2(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "Para_2")) return false; + private static boolean Para_1_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "Para_1_0")) return false; boolean result_; Marker marker_ = enter_section_(builder_); result_ = BlankLine(builder_, level_ + 1); @@ -1177,7 +1208,7 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // (String | Number | Spacechar)+ + // (String | Number | Spacechar+)+ public static boolean PlainText(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "PlainText")) return false; boolean result_; @@ -1193,14 +1224,30 @@ public class MarkdownParser implements PsiParser { return result_; } - // String | Number | Spacechar + // String | Number | Spacechar+ private static boolean PlainText_0(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "PlainText_0")) return false; boolean result_; Marker marker_ = enter_section_(builder_); result_ = consumeToken(builder_, STRING); if (!result_) result_ = consumeToken(builder_, NUMBER); - if (!result_) result_ = consumeToken(builder_, SPACECHAR); + if (!result_) result_ = PlainText_0_2(builder_, level_ + 1); + exit_section_(builder_, marker_, null, result_); + return result_; + } + + // Spacechar+ + private static boolean PlainText_0_2(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "PlainText_0_2")) 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_, "PlainText_0_2", pos_)) break; + pos_ = current_position_(builder_); + } exit_section_(builder_, marker_, null, result_); return result_; } @@ -1219,17 +1266,95 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ + // Block* + public static boolean SectionBody(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionBody")) return false; + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<section body>"); + int pos_ = current_position_(builder_); + while (true) { + if (!Block(builder_, level_ + 1)) break; + if (!empty_element_parsed_guard_(builder_, "SectionBody", pos_)) break; + pos_ = current_position_(builder_); + } + exit_section_(builder_, level_, marker_, SECTION_BODY, true, false, null); + return true; + } + + /* ********************************************************** */ + // '$' SectionName OptionalSpace ':' OptionalSpace + static boolean SectionHeader(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionHeader")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_); + result_ = consumeToken(builder_, "$"); + result_ = result_ && SectionName(builder_, level_ + 1); + result_ = result_ && OptionalSpace(builder_, level_ + 1); + result_ = result_ && consumeToken(builder_, ":"); + result_ = result_ && OptionalSpace(builder_, level_ + 1); + exit_section_(builder_, marker_, null, result_); + return result_; + } + + /* ********************************************************** */ + // SectionNameStart | '{' OptionalSpace SectionNameStart (Spacechar+ String)* OptionalSpace '}' + public static boolean SectionName(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionName")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_, level_, _NONE_, "<section name>"); + result_ = SectionNameStart(builder_, level_ + 1); + if (!result_) result_ = SectionName_1(builder_, level_ + 1); + exit_section_(builder_, level_, marker_, SECTION_NAME, result_, false, null); + return result_; + } + + // '{' OptionalSpace SectionNameStart (Spacechar+ String)* OptionalSpace '}' + private static boolean SectionName_1(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionName_1")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_); + result_ = consumeToken(builder_, "{"); + result_ = result_ && OptionalSpace(builder_, level_ + 1); + result_ = result_ && SectionNameStart(builder_, level_ + 1); + result_ = result_ && SectionName_1_3(builder_, level_ + 1); + result_ = result_ && OptionalSpace(builder_, level_ + 1); + result_ = result_ && consumeToken(builder_, "}"); + exit_section_(builder_, marker_, null, result_); + return result_; + } + + // (Spacechar+ String)* + private static boolean SectionName_1_3(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionName_1_3")) return false; + int pos_ = current_position_(builder_); + while (true) { + if (!SectionName_1_3_0(builder_, level_ + 1)) break; + if (!empty_element_parsed_guard_(builder_, "SectionName_1_3", pos_)) break; + pos_ = current_position_(builder_); + } + return true; + } + + // Spacechar+ String + private static boolean SectionName_1_3_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionName_1_3_0")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_); + result_ = SectionName_1_3_0_0(builder_, level_ + 1); + result_ = result_ && consumeToken(builder_, STRING); + 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; + private static boolean SectionName_1_3_0_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionName_1_3_0_0")) 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; + if (!empty_element_parsed_guard_(builder_, "SectionName_1_3_0_0", pos_)) break; pos_ = current_position_(builder_); } exit_section_(builder_, marker_, null, result_); @@ -1237,6 +1362,25 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ + // '$'? String + static boolean SectionNameStart(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionNameStart")) return false; + boolean result_; + Marker marker_ = enter_section_(builder_); + result_ = SectionNameStart_0(builder_, level_ + 1); + result_ = result_ && consumeToken(builder_, STRING); + exit_section_(builder_, marker_, null, result_); + return result_; + } + + // '$'? + private static boolean SectionNameStart_0(PsiBuilder builder_, int level_) { + if (!recursion_guard_(builder_, level_, "SectionNameStart_0")) return false; + consumeToken(builder_, "$"); + return true; + } + + /* ********************************************************** */ // StrongStar | StrongUnderscore public static boolean Strong(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "Strong")) return false; @@ -1383,34 +1527,11 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // (OptionalSpace Newline <<eof>>) | (OptionalSpace <<eof>>) + // OptionalSpace <<eof>> static boolean TerminalEndline(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "TerminalEndline")) return false; boolean result_; Marker marker_ = enter_section_(builder_); - result_ = TerminalEndline_0(builder_, level_ + 1); - if (!result_) result_ = TerminalEndline_1(builder_, level_ + 1); - exit_section_(builder_, marker_, null, result_); - return result_; - } - - // OptionalSpace Newline <<eof>> - private static boolean TerminalEndline_0(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "TerminalEndline_0")) 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_; - } - - // OptionalSpace <<eof>> - private static boolean TerminalEndline_1(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "TerminalEndline_1")) return false; - boolean result_; - Marker marker_ = enter_section_(builder_); result_ = OptionalSpace(builder_, level_ + 1); result_ = result_ && eof(builder_, level_ + 1); exit_section_(builder_, marker_, null, result_); @@ -1418,47 +1539,6 @@ public class MarkdownParser implements PsiParser { } /* ********************************************************** */ - // VerbatimItem+ - public static boolean Verbatim(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "Verbatim")) return false; - boolean result_; - Marker marker_ = enter_section_(builder_, level_, _NONE_, "<verbatim>"); - result_ = VerbatimItem(builder_, level_ + 1); - int pos_ = current_position_(builder_); - while (result_) { - if (!VerbatimItem(builder_, level_ + 1)) break; - if (!empty_element_parsed_guard_(builder_, "Verbatim", pos_)) break; - pos_ = current_position_(builder_); - } - exit_section_(builder_, level_, marker_, VERBATIM, result_, false, null); - return result_; - } - - /* ********************************************************** */ - // BlankLine* NonblankIndentedLine - public static boolean VerbatimItem(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "VerbatimItem")) return false; - boolean result_; - Marker marker_ = enter_section_(builder_, level_, _NONE_, "<verbatim item>"); - result_ = VerbatimItem_0(builder_, level_ + 1); - result_ = result_ && NonblankIndentedLine(builder_, level_ + 1); - exit_section_(builder_, level_, marker_, VERBATIM_ITEM, result_, false, null); - return result_; - } - - // BlankLine* - private static boolean VerbatimItem_0(PsiBuilder builder_, int level_) { - if (!recursion_guard_(builder_, level_, "VerbatimItem_0")) return false; - int pos_ = current_position_(builder_); - while (true) { - if (!BlankLine(builder_, level_ + 1)) break; - if (!empty_element_parsed_guard_(builder_, "VerbatimItem_0", pos_)) break; - pos_ = current_position_(builder_); - } - return true; - } - - /* ********************************************************** */ // Spacechar | Newline public static boolean Whitespace(PsiBuilder builder_, int level_) { if (!recursion_guard_(builder_, level_, "Whitespace")) return false; diff --git a/src/Markdown/_MarkdownLexer.flex b/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.flex index 0a15e41a..f5aab899 100644 --- a/src/Markdown/_MarkdownLexer.flex +++ b/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.flex @@ -22,7 +22,7 @@ import static org.jetbrains.markdown.MarkdownElementTypes.*; Newline="\r"|"\n"|"\r\n" Spacechar=[\ \t\f] Number=[0-9]+(\.[0-9]*)? -String=[^~\*_`&\[\]()<!#\\ \t\n\r]+ +String=[^~:{}$\*_`&\[\]()<!#\\ \t\n\r]+ AnyChar=. Line=!'\r' !'\n' .* {Newline} @@ -32,8 +32,10 @@ Line=!'\r' !'\n' .* {Newline} {Newline} { return NEWLINE; } "\\357\\273\\277" { return BOM; } + {Number} { return NUMBER; } {String} { return STRING; } + {AnyChar} { return ANYCHAR; } [^] { return com.intellij.psi.TokenType.BAD_CHARACTER; } diff --git a/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.java b/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.java index 0052e3ea..c84a83d8 100644 --- a/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.java +++ b/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 9/25/14 10:26 PM */ +/* The following code was generated by JFlex 1.4.3 on 9/29/14 3:24 PM */ package org.jetbrains.markdown.lexer; @@ -10,8 +10,8 @@ import static org.jetbrains.markdown.MarkdownElementTypes.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 9/25/14 10:26 PM from the specification file - * <tt>/Users/orangy/Projects/dokka/src/Markdown/_MarkdownLexer.flex</tt> + * on 9/29/14 3:24 PM from the specification file + * <tt>/Users/orangy/Projects/dokka/gen/org/jetbrains/markdown/lexer/_MarkdownLexer.flex</tt> */ < |
