RUBY-21351 Supported comments in scalar block headers

This commit is contained in:
Alexey Merkulov
2018-04-13 14:15:17 +03:00
parent 9f72ab4a82
commit e73261183c
18 changed files with 504 additions and 385 deletions
@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */
/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */
package org.jetbrains.yaml.lexer;
@@ -10,7 +10,7 @@ import org.jetbrains.yaml.YAMLTokenTypes;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.7.0-SNAPSHOT
* <a href="http://www.jflex.de/">JFlex</a> 1.7.0
* from the specification file <tt>yaml.flex</tt>
*/
public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
@@ -28,6 +28,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
public static final int VALUE_OR_KEY = 6;
public static final int VALUE_BRACE = 8;
public static final int INDENT_VALUE = 10;
public static final int SB_HEADER_TAIL = 12;
/**
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
@@ -36,13 +37,13 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
* l is of the form l = 2*k, k a non negative integer
*/
private static final int ZZ_LEXSTATE[] = {
0, 0, 1, 1, 2, 2, 0, 0, 3, 3, 4, 4
0, 0, 1, 1, 2, 2, 0, 0, 3, 3, 4, 4, 5, 5
};
/**
* Translates characters to character classes
* Chosen bits are [9, 6, 6]
* Total runtime size is 3360 bytes
* Total runtime size is 3488 bytes
*/
public static int ZZ_CMAP(int ch) {
return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>12]<<6)|((ch>>6)&0x3f)]<<6)|(ch&0x3f)];
@@ -50,16 +51,16 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
/* The ZZ_CMAP_Z table has 272 entries */
static final char ZZ_CMAP_Z[] = zzUnpackCMap(
"\1\0\1\1\10\2\1\3\4\2\1\4\1\5\1\6\4\2\1\7\6\2\1\10\362\2");
"\1\0\1\1\10\2\1\3\4\2\1\4\1\5\1\6\4\2\1\7\6\2\1\10\1\11\361\2");
/* The ZZ_CMAP_Y table has 576 entries */
/* The ZZ_CMAP_Y table has 640 entries */
static final char ZZ_CMAP_Y[] = zzUnpackCMap(
"\1\0\1\1\27\2\1\3\1\2\1\4\3\2\1\5\5\2\1\6\1\2\1\6\1\2\1\6\1\2\1\6\1\2\1\6"+
"\1\2\1\6\1\2\1\6\1\2\1\6\1\2\1\6\1\2\1\6\1\2\1\7\1\2\1\7\1\3\4\2\1\5\1\7\34"+
"\2\1\3\1\7\4\2\1\10\1\2\1\7\2\2\1\11\2\2\1\7\1\4\2\2\1\11\146\2\1\3\12\2\1"+
"\7\1\5\2\2\1\12\1\2\1\7\5\2\1\4\114\2\1\7\25\2\1\3\56\2\1\6\1\2\1\4\1\13\2"+
"\2\1\7\3\2\1\4\7\2\1\7\5\2\1\7\1\2\1\5\1\4\6\2\1\3\105\2\1\3\3\2\1\7\61\2"+
"\1\14\40\2");
"\2\1\7\3\2\1\4\5\2\1\7\1\2\1\7\5\2\1\7\1\2\1\5\1\4\6\2\1\3\15\2\1\7\67\2\1"+
"\3\3\2\1\7\61\2\1\14\105\2\1\7\32\2");
/* The ZZ_CMAP_A table has 832 entries */
static final char ZZ_CMAP_A[] = zzUnpackCMap(
@@ -75,20 +76,21 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
private static final int [] ZZ_ACTION = zzUnpackAction();
private static final String ZZ_ACTION_PACKED_0 =
"\15\0\1\1\1\2\1\3\1\4\1\5\1\2\1\6"+
"\1\7\1\10\2\2\1\11\1\12\4\2\1\13\1\2"+
"\1\1\1\4\2\2\1\11\1\2\1\1\1\4\4\2"+
"\1\1\1\4\2\2\1\14\1\15\1\16\10\0\1\1"+
"\1\0\1\17\1\0\2\20\2\21\2\22\6\0\1\23"+
"\2\0\1\24\1\0\2\25\4\0\2\26\1\0\1\1"+
"\1\0\1\17\3\0\1\1\4\0\1\23\1\24\1\1"+
"\3\0\1\27\14\0\1\30\1\0\1\1\2\0\1\31"+
"\3\0\1\32\1\0\1\1\5\0\1\1\2\0\2\1"+
"\2\0\2\1\2\0\1\1\2\0\1\1\1\0\1\1"+
"\3\0\2\1\1\0\4\1\1\0\1\1\2\0\1\1";
"\14\0\1\1\1\2\1\3\1\4\1\5\1\2\1\6"+
"\1\7\1\10\1\2\1\11\1\12\1\13\4\2\1\14"+
"\1\15\1\1\1\4\2\2\1\12\1\2\1\1\1\4"+
"\4\2\1\1\1\4\2\2\1\16\1\17\1\20\1\2"+
"\1\21\7\0\1\1\1\0\1\22\1\0\2\23\2\24"+
"\1\11\5\0\1\25\2\0\1\26\1\0\2\27\4\0"+
"\1\15\1\1\1\0\1\22\3\0\1\1\4\0\1\25"+
"\1\26\1\1\3\0\1\30\1\2\13\0\1\31\1\0"+
"\1\1\2\0\1\32\3\0\1\33\1\0\1\1\5\0"+
"\1\1\2\0\2\1\2\0\2\1\2\0\1\1\2\0"+
"\1\1\1\0\1\1\4\0\2\1\1\0\4\1\1\0"+
"\1\1\2\0\1\1";
private static int [] zzUnpackAction() {
int [] result = new int[168];
int [] result = new int[165];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -114,29 +116,29 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\34\0\70\0\124\0\160\0\214\0\250\0\304"+
"\0\340\0\374\0\u0118\0\u0134\0\u0150\0\u016c\0\u0188\0\u0188"+
"\0\u01a4\0\u01c0\0\u01dc\0\u0188\0\u01f8\0\u0188\0\u0214\0\u0230"+
"\0\u024c\0\u0188\0\u0268\0\u0284\0\u02a0\0\u02bc\0\u0188\0\u02d8"+
"\0\340\0\374\0\u0118\0\u0134\0\u0150\0\u016c\0\u016c\0\u0188"+
"\0\u01a4\0\u01c0\0\u016c\0\u01dc\0\u016c\0\u01f8\0\u0214\0\u0230"+
"\0\u016c\0\u024c\0\u0268\0\u0284\0\u02a0\0\u016c\0\u02bc\0\u02d8"+
"\0\u02f4\0\u0310\0\u032c\0\u0348\0\u0364\0\u0380\0\u039c\0\u03b8"+
"\0\u03d4\0\u03b8\0\u03f0\0\u040c\0\u0428\0\u0444\0\u0460\0\u0444"+
"\0\u047c\0\u0188\0\u0498\0\u04b4\0\u0188\0\u04d0\0\u04ec\0\u0508"+
"\0\u0524\0\u0540\0\u055c\0\u0578\0\u0594\0\u05b0\0\u016c\0\u0188"+
"\0\u05cc\0\u0188\0\u05e8\0\u0188\0\u0604\0\u0620\0\u063c\0\u0658"+
"\0\u0284\0\u03f0\0\u0674\0\u0690\0\u02a0\0\u040c\0\u06ac\0\u06c8"+
"\0\u0188\0\u06e4\0\u0700\0\u071c\0\u0738\0\u0754\0\u0188\0\u0770"+
"\0\u078c\0\u07a8\0\u07c4\0\u07e0\0\u02f4\0\u07fc\0\u0818\0\u0834"+
"\0\u0850\0\u03b8\0\u039c\0\u086c\0\u0188\0\u0888\0\u08a4\0\u08c0"+
"\0\u0444\0\u0428\0\u0188\0\u08dc\0\u08f8\0\u0914\0\u08dc\0\u0930"+
"\0\u094c\0\u0968\0\u0508\0\u0984\0\u09a0\0\u0540\0\u0188\0\u0188"+
"\0\u09bc\0\u09d8\0\u09f4\0\u0a10\0\u0188\0\u0a2c\0\u0a48\0\u0a64"+
"\0\u0188\0\u0a80\0\u0a9c\0\u0ab8\0\u0ad4\0\u0af0\0\u0b0c\0\u0b28"+
"\0\u0b44\0\u0b60\0\u0b7c\0\u0b98\0\u0bb4\0\u0bd0\0\u09d8\0\u0bec"+
"\0\u0c08\0\u0c24\0\u0c40\0\u0c5c\0\u0c78\0\u0c94\0\u0cb0\0\u0ccc"+
"\0\u0ce8\0\u0a9c\0\u0d04\0\u0d20\0\u0d3c\0\u0d58\0\u0b44\0\u0d74"+
"\0\u0d90\0\u0dac\0\u0dc8\0\u0de4\0\u0e00\0\u0c5c\0\u0e1c\0\u0e38";
"\0\u039c\0\u03d4\0\u03f0\0\u040c\0\u0428\0\u0444\0\u0428\0\u0460"+
"\0\u016c\0\u047c\0\u0498\0\u016c\0\u04b4\0\u016c\0\u04d0\0\u04ec"+
"\0\u0508\0\u0524\0\u0540\0\u055c\0\u0578\0\u0594\0\u0150\0\u016c"+
"\0\u05b0\0\u016c\0\u05cc\0\u016c\0\u05e8\0\u0604\0\u0268\0\u03d4"+
"\0\u0620\0\u063c\0\u0284\0\u03f0\0\u0658\0\u0674\0\u016c\0\u0690"+
"\0\u06ac\0\u06c8\0\u06e4\0\u0700\0\u016c\0\u071c\0\u0738\0\u0754"+
"\0\u02d8\0\u0770\0\u078c\0\u07a8\0\u07c4\0\u039c\0\u0380\0\u07e0"+
"\0\u016c\0\u07fc\0\u0818\0\u0834\0\u0428\0\u040c\0\u016c\0\u0850"+
"\0\u086c\0\u0888\0\u08a4\0\u086c\0\u08c0\0\u08dc\0\u08f8\0\u0508"+
"\0\u0914\0\u0930\0\u0540\0\u016c\0\u094c\0\u0968\0\u0984\0\u09a0"+
"\0\u016c\0\u09bc\0\u09d8\0\u09f4\0\u016c\0\u0a10\0\u0a2c\0\u0a48"+
"\0\u0a64\0\u0a80\0\u0a9c\0\u0ab8\0\u0ad4\0\u0af0\0\u0b0c\0\u0b28"+
"\0\u0b44\0\u0b60\0\u0968\0\u0b7c\0\u0b98\0\u0bb4\0\u0bd0\0\u0bec"+
"\0\u0c08\0\u0c24\0\u0c40\0\u0c5c\0\u0c78\0\u0a2c\0\u0c94\0\u016c"+
"\0\u0cb0\0\u0ccc\0\u0ce8\0\u0ad4\0\u0d04\0\u0d20\0\u0d3c\0\u0d58"+
"\0\u0d74\0\u0d90\0\u0bec\0\u0dac\0\u0dc8";
private static int [] zzUnpackRowMap() {
int [] result = new int[168];
int [] result = new int[165];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -159,179 +161,178 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
private static final int [] ZZ_TRANS = zzUnpackTrans();
private static final String ZZ_TRANS_PACKED_0 =
"\1\16\2\17\1\20\1\21\1\22\1\23\1\24\1\25"+
"\1\26\1\27\1\25\1\30\1\31\1\32\1\33\1\16"+
"\1\34\1\35\3\16\1\17\1\36\1\16\1\37\1\16"+
"\1\40\1\41\2\17\1\20\1\42\1\22\1\43\1\24"+
"\1\25\1\26\1\44\1\25\1\17\1\45\1\32\1\46"+
"\1\41\1\34\1\35\3\41\1\17\1\36\1\41\1\37"+
"\1\41\1\17\1\47\2\17\1\20\1\50\1\22\1\51"+
"\1\24\1\25\1\26\1\52\1\25\1\30\1\31\1\32"+
"\1\33\1\47\1\53\1\54\3\47\1\17\1\36\1\47"+
"\1\37\1\47\1\40\1\55\2\17\1\20\1\56\1\22"+
"\1\57\1\24\1\25\1\26\1\60\1\25\1\30\1\45"+
"\1\32\1\46\1\55\1\53\1\54\3\55\1\17\1\36"+
"\1\55\1\37\1\55\1\40\7\61\1\62\1\63\2\61"+
"\1\63\20\61\27\0\1\64\13\0\1\65\1\66\2\0"+
"\1\66\20\0\1\67\3\0\1\70\1\0\1\70\3\0"+
"\1\70\5\0\1\67\2\0\3\67\2\0\1\67\1\0"+
"\1\67\2\0\1\65\1\0\1\65\3\0\3\65\1\0"+
"\1\65\1\0\2\65\12\0\1\65\2\0\1\71\3\0"+
"\1\72\1\0\1\72\3\0\1\72\5\0\1\71\2\0"+
"\3\71\2\0\1\71\1\0\1\71\2\0\1\65\5\0"+
"\2\65\2\0\1\65\34\0\1\73\52\0\1\73\1\74"+
"\1\0\3\74\1\75\1\76\1\0\1\77\2\74\1\77"+
"\20\74\34\0\1\16\1\0\5\16\2\0\2\16\1\0"+
"\20\16\7\22\1\0\24\22\1\16\1\0\5\16\1\100"+
"\1\101\2\16\1\101\20\16\10\0\1\25\2\0\1\25"+
"\20\0\1\16\1\0\5\16\1\102\1\103\2\16\1\103"+
"\20\16\7\0\1\104\1\105\1\0\1\106\1\105\16\0"+
"\1\106\16\0\1\107\33\0\1\110\16\0\7\111\1\112"+
"\10\111\1\113\1\114\12\111\7\115\1\116\12\115\1\117"+
"\11\115\4\0\3\120\1\121\1\122\1\0\1\123\1\122"+
"\3\0\1\124\2\0\1\120\2\123\2\120\1\125\1\126"+
"\1\0\1\120\10\0\1\127\1\130\1\0\1\131\1\130"+
"\16\0\1\131\1\0\1\132\1\0\1\132\1\133\1\132"+
"\1\133\1\134\1\0\1\135\1\133\1\132\1\135\1\132"+
"\2\133\12\132\1\133\2\132\1\41\1\0\1\41\1\0"+
"\3\41\3\0\1\41\1\0\1\41\2\0\12\41\1\0"+
"\3\41\1\0\1\41\1\0\3\41\1\100\1\101\1\0"+
"\1\41\1\101\1\41\2\0\12\41\1\0\3\41\1\0"+
"\1\41\1\0\3\41\1\102\1\103\1\0\1\41\1\103"+
"\1\41\2\0\12\41\1\0\2\41\15\0\1\136\33\0"+
"\1\137\16\0\1\140\1\0\3\140\1\141\1\142\1\0"+
"\1\143\2\140\1\143\20\140\1\47\1\0\5\47\2\0"+
"\2\47\1\0\21\47\1\0\5\47\1\100\1\101\2\47"+
"\1\101\20\47\20\112\1\144\1\145\12\112\22\116\1\146"+
"\11\116\1\147\1\0\1\147\1\150\1\147\1\150\1\151"+
"\1\0\1\152\1\150\1\147\1\152\1\147\2\150\12\147"+
"\1\150\2\147\1\55\1\0\1\55\1\0\3\55\3\0"+
"\1\55\1\0\1\55\2\0\12\55\1\0\3\55\1\0"+
"\1\55\1\0\3\55\1\100\1\101\1\0\1\55\1\101"+
"\1\55\2\0\12\55\1\0\2\55\7\61\1\0\24\61"+
"\7\0\1\153\1\63\2\0\1\63\24\0\3\154\3\0"+
"\1\155\4\0\1\156\2\0\1\154\2\155\2\154\1\157"+
"\1\160\1\0\1\154\11\0\1\66\2\0\1\66\20\0"+
"\1\161\1\0\1\161\1\162\1\161\1\162\1\163\1\0"+
"\1\67\1\162\1\161\1\67\1\161\2\162\12\161\1\162"+
"\2\161\1\67\1\0\1\67\1\0\3\67\3\0\1\67"+
"\1\0\1\67\2\0\12\67\1\0\2\67\1\164\1\0"+
"\3\164\1\165\1\166\1\0\1\71\2\164\1\71\20\164"+
"\1\71\1\0\5\71\2\0\2\71\1\0\20\71\12\0"+
"\1\167\17\0\1\167\1\0\1\74\1\0\4\74\1\76"+
"\1\0\1\77\2\74\1\77\20\74\5\0\1\16\26\0"+
"\1\16\1\170\5\16\2\170\2\16\1\170\20\16\10\0"+
"\1\101\2\0\1\101\30\0\1\103\2\0\1\103\30\0"+
"\1\105\2\0\1\105\27\0\1\104\1\105\2\0\1\105"+
"\20\0\5\171\1\0\1\171\1\0\1\171\3\0\1\171"+
"\2\0\12\171\1\0\2\171\1\172\3\110\1\173\1\110"+
"\1\173\1\0\2\110\1\173\3\110\1\174\1\110\1\172"+
"\2\110\3\172\2\110\1\172\1\110\1\172\1\110\7\111"+
"\1\112\24\111\6\0\1\175\33\0\1\175\13\0\1\115"+
"\15\0\3\120\1\121\1\122\1\0\1\120\1\122\3\0"+
"\1\124\2\0\5\120\3\0\1\120\11\0\1\122\2\0"+
"\1\122\24\0\3\120\1\121\1\122\1\0\1\123\1\122"+
"\3\0\1\124\2\0\1\120\2\123\2\120\1\125\2\0"+
"\1\120\24\0\1\176\14\0\3\120\3\0\1\120\4\0"+
"\1\124\2\0\5\120\3\0\1\120\4\0\4\177\2\0"+
"\2\177\4\0\1\200\2\0\6\177\1\0\2\177\11\0"+
"\1\130\2\0\1\130\27\0\1\127\1\130\2\0\1\130"+
"\20\0\1\132\1\0\1\132\1\133\2\132\1\134\1\0"+
"\1\135\1\133\1\132\1\135\1\132\2\133\12\132\1\133"+
"\2\132\5\0\1\41\26\0\1\41\1\201\1\41\1\201"+
"\3\41\3\201\1\41\1\201\1\41\2\201\12\41\1\201"+
"\2\41\5\202\1\0\1\202\1\0\1\202\3\0\1\202"+
"\2\0\12\202\1\0\2\202\1\203\3\137\1\204\1\137"+
"\1\204\1\0\2\137\1\204\3\137\1\205\1\137\1\203"+
"\2\137\3\203\2\137\1\203\1\137\1\203\1\137\1\140"+
"\1\0\4\140\1\142\1\0\1\143\2\140\1\143\20\140"+
"\5\0\1\47\26\0\34\112\22\0\1\116\11\0\1\147"+
"\1\0\1\147\1\150\2\147\1\151\1\0\1\152\1\150"+
"\1\147\1\152\1\147\2\150\12\147\1\150\2\147\5\0"+
"\1\55\32\0\3\154\3\0\1\154\4\0\1\156\2\0"+
"\5\154\3\0\1\154\5\0\3\154\3\0\1\155\4\0"+
"\1\156\2\0\1\154\2\155\2\154\1\157\2\0\1\154"+
"\24\0\1\206\13\0\4\207\2\0\2\207\4\0\1\210"+
"\2\0\6\207\1\0\2\207\1\0\1\161\1\0\1\161"+
"\1\162\2\161\1\163\1\0\1\67\1\162\1\161\1\67"+
"\1\161\2\162\12\161\1\162\2\161\5\0\1\67\26\0"+
"\1\164\1\0\4\164\1\166\1\0\1\71\2\164\1\71"+
"\20\164\5\0\1\71\26\0\1\211\3\171\1\212\1\0"+
"\1\142\1\0\1\171\1\0\1\212\1\171\2\0\1\213"+
"\1\171\1\211\2\171\3\211\2\171\1\211\1\0\1\211"+
"\1\171\1\214\1\110\2\214\1\215\1\216\1\173\1\0"+
"\1\217\1\214\1\215\1\217\2\214\1\220\15\214\1\172"+
"\1\110\2\172\1\215\1\172\1\215\1\0\1\110\1\172"+
"\1\215\1\110\2\172\1\221\15\172\1\47\3\0\1\142"+
"\1\0\1\142\3\0\1\142\5\0\1\47\2\0\3\47"+
"\2\0\1\47\1\0\1\47\24\0\1\120\13\0\4\177"+
"\2\0\2\177\1\0\1\222\2\0\1\200\2\0\6\177"+
"\1\0\2\177\24\0\1\223\10\0\1\224\3\202\1\225"+
"\1\0\1\151\1\0\1\202\1\0\1\225\1\202\2\0"+
"\1\226\1\202\1\224\2\202\3\224\2\202\1\224\1\0"+
"\1\224\1\202\1\227\1\137\1\227\1\230\1\231\1\230"+
"\1\204\1\0\1\232\1\230\1\231\1\232\1\227\1\230"+
"\1\233\12\227\1\230\2\227\1\203\1\137\1\203\1\137"+
"\1\231\1\203\1\231\1\0\2\137\1\231\1\137\1\203"+
"\1\137\1\205\12\203\1\137\2\203\1\55\3\0\1\151"+
"\1\0\1\151\3\0\1\151\5\0\1\55\2\0\3\55"+
"\2\0\1\55\1\0\1\55\24\0\1\154\13\0\4\207"+
"\2\0\2\207\1\0\1\167\2\0\1\210\2\0\6\207"+
"\1\0\2\207\24\0\1\234\10\0\1\235\1\171\2\235"+
"\1\236\1\141\1\142\1\0\1\237\1\140\1\236\1\237"+
"\2\140\1\240\12\235\1\140\2\235\1\211\1\171\2\211"+
"\1\236\1\47\1\241\1\0\1\171\1\47\1\236\1\171"+
"\2\47\1\242\12\211\1\47\2\211\1\47\3\0\1\142"+
"\1\0\1\142\3\0\1\142\3\0\1\174\1\0\1\47"+
"\2\0\3\47\2\0\1\47\1\0\1\47\1\0\1\214"+
"\1\110\2\214\1\215\1\214\1\173\1\0\1\217\1\214"+
"\1\215\1\217\2\214\1\220\16\214\1\110\2\214\1\215"+
"\1\214\1\215\1\0\1\217\1\214\1\215\1\217\2\214"+
"\1\220\15\214\1\172\3\110\1\173\1\172\1\173\1\0"+
"\2\110\1\173\3\110\1\174\1\110\1\172\2\110\3\172"+
"\2\110\1\172\1\110\1\172\1\110\1\140\1\0\2\140"+
"\1\241\1\140\1\142\1\0\1\143\1\140\1\241\1\143"+
"\21\140\1\0\2\140\1\241\1\141\1\142\1\0\1\143"+
"\1\140\1\241\1\143\20\140\7\0\1\121\1\122\2\0"+
"\1\122\43\0\1\177\10\0\1\243\1\202\1\243\1\244"+
"\1\245\1\150\1\151\1\0\1\246\1\150\1\245\1\246"+
"\1\147\1\150\1\247\12\243\1\150\2\243\1\224\1\202"+
"\1\224\1\202\1\245\1\55\1\250\1\0\1\202\1\0"+
"\1\245\1\202\1\55\1\0\1\226\12\224\1\0\2\224"+
"\1\55\3\0\1\151\1\0\1\151\3\0\1\151\3\0"+
"\1\205\1\0\1\55\2\0\3\55\2\0\1\55\1\0"+
"\1\55\1\0\1\227\1\137\1\227\1\230\1\231\1\227"+
"\1\204\1\0\1\232\1\230\1\231\1\232\1\227\1\230"+
"\1\233\12\227\1\230\2\227\1\203\3\137\1\204\1\203"+
"\1\204\1\0\2\137\1\204\3\137\1\205\1\137\1\203"+
"\2\137\3\203\2\137\1\203\1\137\1\203\1\137\1\227"+
"\1\137\1\227\1\230\1\231\1\227\1\231\1\0\1\232"+
"\1\230\1\231\1\232\1\227\1\230\1\233\12\227\1\230"+
"\2\227\1\55\3\0\1\151\1\55\1\151\3\0\1\151"+
"\5\0\1\55\2\0\3\55\2\0\1\55\1\0\1\55"+
"\24\0\1\207\10\0\1\235\1\171\2\235\1\236\1\140"+
"\1\142\1\0\1\237\1\140\1\236\1\237\2\140\1\240"+
"\12\235\1\140\3\235\1\171\2\235\1\236\1\140\1\241"+
"\1\0\1\237\1\140\1\236\1\237\2\140\1\240\12\235"+
"\1\140\2\235\1\140\1\0\2\140\1\241\1\140\1\142"+
"\1\0\1\143\1\140\1\241\1\143\2\140\1\220\16\140"+
"\1\0\4\140\1\241\1\0\1\143\2\140\1\143\21\140"+
"\1\0\2\140\1\241\1\141\1\142\1\0\1\143\1\140"+
"\1\241\1\143\2\140\1\220\15\140\1\243\1\202\1\243"+
"\1\244\1\245\1\147\1\151\1\0\1\246\1\150\1\245"+
"\1\246\1\147\1\150\1\247\12\243\1\150\2\243\1\224"+
"\3\202\1\225\1\55\1\151\1\0\1\202\1\0\1\225"+
"\1\202\2\0\1\226\1\202\1\224\2\202\3\224\2\202"+
"\1\224\1\0\1\224\1\202\1\243\1\202\1\243\1\244"+
"\1\245\1\147\1\250\1\0\1\246\1\150\1\245\1\246"+
"\1\147\1\150\1\247\12\243\1\150\2\243\1\55\3\0"+
"\1\151\1\55\1\151\3\0\1\151\3\0\1\205\1\0"+
"\1\55\2\0\3\55\2\0\1\55\1\0\1\55\1\0"+
"\1\147\1\0\1\147\1\150\2\147\1\250\1\0\1\152"+
"\1\150\1\147\1\152\1\147\2\150\12\147\1\150\2\147";
"\1\15\2\16\1\17\1\20\1\21\1\22\1\23\1\24"+
"\1\25\1\26\1\24\1\27\1\30\1\31\1\32\1\15"+
"\1\33\1\34\3\15\1\16\1\35\1\15\1\36\1\15"+
"\1\37\1\40\2\16\1\17\1\41\1\21\1\42\1\23"+
"\1\24\1\25\1\43\1\24\1\16\1\44\1\31\1\45"+
"\1\40\1\33\1\34\3\40\1\16\1\35\1\40\1\36"+
"\1\40\1\16\1\46\2\16\1\17\1\47\1\21\1\50"+
"\1\23\1\24\1\25\1\51\1\24\1\27\1\30\1\31"+
"\1\32\1\46\1\52\1\53\3\46\1\16\1\35\1\46"+
"\1\36\1\46\1\37\1\54\2\16\1\17\1\55\1\21"+
"\1\56\1\23\1\24\1\25\1\57\1\24\1\27\1\44"+
"\1\31\1\45\1\54\1\52\1\53\3\54\1\16\1\35"+
"\1\54\1\36\1\54\1\37\7\60\1\61\1\62\2\60"+
"\1\62\20\60\5\63\1\21\1\63\1\64\1\24\2\63"+
"\1\24\20\63\27\0\1\65\13\0\1\66\1\67\2\0"+
"\1\67\20\0\1\70\3\0\1\71\1\0\1\71\3\0"+
"\1\71\5\0\1\70\2\0\3\70\2\0\1\70\1\0"+
"\1\70\2\0\1\66\1\0\1\66\3\0\3\66\1\0"+
"\1\66\1\0\2\66\12\0\1\66\2\0\1\72\3\0"+
"\1\73\1\0\1\73\3\0\1\73\5\0\1\72\2\0"+
"\3\72\2\0\1\72\1\0\1\72\2\0\1\66\5\0"+
"\2\66\2\0\1\66\20\0\1\74\1\0\3\74\1\75"+
"\1\76\1\0\1\77\2\74\1\77\20\74\34\0\1\15"+
"\1\0\5\15\2\0\2\15\1\0\20\15\7\21\1\0"+
"\24\21\1\15\1\0\5\15\1\100\1\101\2\15\1\101"+
"\20\15\10\0\1\24\2\0\1\24\20\0\1\15\1\0"+
"\5\15\1\102\1\103\2\15\1\103\20\15\12\0\1\104"+
"\17\0\1\104\16\0\1\105\33\0\1\106\16\0\7\107"+
"\1\110\10\107\1\111\1\112\12\107\7\113\1\114\12\113"+
"\1\115\11\113\4\0\3\116\1\117\1\120\1\0\1\121"+
"\1\120\3\0\1\122\2\0\1\116\2\121\2\116\1\123"+
"\1\124\1\0\1\116\13\0\1\125\17\0\1\125\1\0"+
"\1\126\1\0\1\126\1\127\1\126\1\127\1\130\1\0"+
"\1\131\1\127\1\126\1\131\1\126\2\127\12\126\1\127"+
"\2\126\1\40\1\0\1\40\1\0\3\40\3\0\1\40"+
"\1\0\1\40\2\0\12\40\1\0\3\40\1\0\1\40"+
"\1\0\3\40\1\100\1\101\1\0\1\40\1\101\1\40"+
"\2\0\12\40\1\0\3\40\1\0\1\40\1\0\3\40"+
"\1\102\1\103\1\0\1\40\1\103\1\40\2\0\12\40"+
"\1\0\2\40\15\0\1\132\33\0\1\133\16\0\1\134"+
"\1\0\3\134\1\135\1\136\1\0\1\137\2\134\1\137"+
"\20\134\1\46\1\0\5\46\2\0\2\46\1\0\21\46"+
"\1\0\5\46\1\100\1\101\2\46\1\101\20\46\20\110"+
"\1\140\1\141\12\110\22\114\1\142\11\114\1\143\1\0"+
"\1\143\1\144\1\143\1\144\1\145\1\0\1\146\1\144"+
"\1\143\1\146\1\143\2\144\12\143\1\144\2\143\1\54"+
"\1\0\1\54\1\0\3\54\3\0\1\54\1\0\1\54"+
"\2\0\12\54\1\0\3\54\1\0\1\54\1\0\3\54"+
"\1\100\1\101\1\0\1\54\1\101\1\54\2\0\12\54"+
"\1\0\2\54\7\60\1\0\24\60\7\0\1\147\1\62"+
"\2\0\1\62\20\0\7\63\1\0\1\150\2\63\1\150"+
"\20\63\4\0\3\151\3\0\1\152\4\0\1\153\2\0"+
"\1\151\2\152\2\151\1\154\1\155\1\0\1\151\11\0"+
"\1\67\2\0\1\67\20\0\1\156\1\0\1\156\1\157"+
"\1\156\1\157\1\160\1\0\1\70\1\157\1\156\1\70"+
"\1\156\2\157\12\156\1\157\2\156\1\70\1\0\1\70"+
"\1\0\3\70\3\0\1\70\1\0\1\70\2\0\12\70"+
"\1\0\2\70\1\161\1\0\3\161\1\162\1\163\1\0"+
"\1\72\2\161\1\72\20\161\1\72\1\0\5\72\2\0"+
"\2\72\1\0\20\72\1\74\1\0\4\74\1\76\1\0"+
"\1\77\2\74\1\77\20\74\5\0\1\15\26\0\1\15"+
"\1\164\5\15\2\164\2\15\1\164\20\15\10\0\1\101"+
"\2\0\1\101\30\0\1\103\2\0\1\103\20\0\5\165"+
"\1\0\1\165\1\0\1\165\3\0\1\165\2\0\12\165"+
"\1\0\2\165\1\166\3\106\1\167\1\106\1\167\1\0"+
"\2\106\1\167\3\106\1\170\1\106\1\166\2\106\3\166"+
"\2\106\1\166\1\106\1\166\1\106\7\107\1\110\24\107"+
"\6\0\1\171\33\0\1\171\13\0\1\113\15\0\3\116"+
"\1\117\1\120\1\0\1\116\1\120\3\0\1\122\2\0"+
"\5\116\3\0\1\116\11\0\1\120\2\0\1\120\24\0"+
"\3\116\1\117\1\120\1\0\1\121\1\120\3\0\1\122"+
"\2\0\1\116\2\121\2\116\1\123\2\0\1\116\24\0"+
"\1\172\14\0\3\116\3\0\1\116\4\0\1\122\2\0"+
"\5\116\3\0\1\116\4\0\4\173\2\0\2\173\4\0"+
"\1\174\2\0\6\173\1\0\2\173\1\0\1\126\1\0"+
"\1\126\1\127\2\126\1\130\1\0\1\131\1\127\1\126"+
"\1\131\1\126\2\127\12\126\1\127\2\126\5\0\1\40"+
"\26\0\1\40\1\175\1\40\1\175\3\40\3\175\1\40"+
"\1\175\1\40\2\175\12\40\1\175\2\40\5\176\1\0"+
"\1\176\1\0\1\176\3\0\1\176\2\0\12\176\1\0"+
"\2\176\1\177\3\133\1\200\1\133\1\200\1\0\2\133"+
"\1\200\3\133\1\201\1\133\1\177\2\133\3\177\2\133"+
"\1\177\1\133\1\177\1\133\1\134\1\0\4\134\1\136"+
"\1\0\1\137\2\134\1\137\20\134\5\0\1\46\26\0"+
"\34\110\22\0\1\114\11\0\1\143\1\0\1\143\1\144"+
"\2\143\1\145\1\0\1\146\1\144\1\143\1\146\1\143"+
"\2\144\12\143\1\144\2\143\5\0\1\54\26\0\5\63"+
"\1\0\1\63\1\0\1\150\2\63\1\150\20\63\4\0"+
"\3\151\3\0\1\151\4\0\1\153\2\0\5\151\3\0"+
"\1\151\5\0\3\151\3\0\1\152\4\0\1\153\2\0"+
"\1\151\2\152\2\151\1\154\2\0\1\151\24\0\1\202"+
"\13\0\4\203\2\0\2\203\4\0\1\204\2\0\6\203"+
"\1\0\2\203\1\0\1\156\1\0\1\156\1\157\2\156"+
"\1\160\1\0\1\70\1\157\1\156\1\70\1\156\2\157"+
"\12\156\1\157\2\156\5\0\1\70\26\0\1\161\1\0"+
"\4\161\1\163\1\0\1\72\2\161\1\72\20\161\5\0"+
"\1\72\26\0\1\205\3\165\1\206\1\0\1\136\1\0"+
"\1\165\1\0\1\206\1\165\2\0\1\207\1\165\1\205"+
"\2\165\3\205\2\165\1\205\1\0\1\205\1\165\1\210"+
"\1\106\2\210\1\211\1\212\1\167\1\0\1\213\1\210"+
"\1\211\1\213\2\210\1\214\15\210\1\166\1\106\2\166"+
"\1\211\1\166\1\211\1\0\1\106\1\166\1\211\1\106"+
"\2\166\1\215\15\166\1\46\3\0\1\136\1\0\1\136"+
"\3\0\1\136\5\0\1\46\2\0\3\46\2\0\1\46"+
"\1\0\1\46\24\0\1\116\13\0\4\173\2\0\2\173"+
"\1\0\1\216\2\0\1\174\2\0\6\173\1\0\2\173"+
"\24\0\1\217\10\0\1\220\3\176\1\221\1\0\1\145"+
"\1\0\1\176\1\0\1\221\1\176\2\0\1\222\1\176"+
"\1\220\2\176\3\220\2\176\1\220\1\0\1\220\1\176"+
"\1\223\1\133\1\223\1\224\1\225\1\224\1\200\1\0"+
"\1\226\1\224\1\225\1\226\1\223\1\224\1\227\12\223"+
"\1\224\2\223\1\177\1\133\1\177\1\133\1\225\1\177"+
"\1\225\1\0\2\133\1\225\1\133\1\177\1\133\1\201"+
"\12\177\1\133\2\177\1\54\3\0\1\145\1\0\1\145"+
"\3\0\1\145\5\0\1\54\2\0\3\54\2\0\1\54"+
"\1\0\1\54\24\0\1\151\13\0\4\203\2\0\2\203"+
"\1\0\1\230\2\0\1\204\2\0\6\203\1\0\2\203"+
"\24\0\1\231\10\0\1\232\1\165\2\232\1\233\1\135"+
"\1\136\1\0\1\234\1\134\1\233\1\234\2\134\1\235"+
"\12\232\1\134\2\232\1\205\1\165\2\205\1\233\1\46"+
"\1\236\1\0\1\165\1\46\1\233\1\165\2\46\1\237"+
"\12\205\1\46\2\205\1\46\3\0\1\136\1\0\1\136"+
"\3\0\1\136\3\0\1\170\1\0\1\46\2\0\3\46"+
"\2\0\1\46\1\0\1\46\1\0\1\210\1\106\2\210"+
"\1\211\1\210\1\167\1\0\1\213\1\210\1\211\1\213"+
"\2\210\1\214\16\210\1\106\2\210\1\211\1\210\1\211"+
"\1\0\1\213\1\210\1\211\1\213\2\210\1\214\15\210"+
"\1\166\3\106\1\167\1\166\1\167\1\0\2\106\1\167"+
"\3\106\1\170\1\106\1\166\2\106\3\166\2\106\1\166"+
"\1\106\1\166\1\106\1\134\1\0\2\134\1\236\1\134"+
"\1\136\1\0\1\137\1\134\1\236\1\137\21\134\1\0"+
"\2\134\1\236\1\135\1\136\1\0\1\137\1\134\1\236"+
"\1\137\20\134\7\0\1\117\1\120\2\0\1\120\43\0"+
"\1\173\10\0\1\240\1\176\1\240\1\241\1\242\1\144"+
"\1\145\1\0\1\243\1\144\1\242\1\243\1\143\1\144"+
"\1\244\12\240\1\144\2\240\1\220\1\176\1\220\1\176"+
"\1\242\1\54\1\245\1\0\1\176\1\0\1\242\1\176"+
"\1\54\1\0\1\222\12\220\1\0\2\220\1\54\3\0"+
"\1\145\1\0\1\145\3\0\1\145\3\0\1\201\1\0"+
"\1\54\2\0\3\54\2\0\1\54\1\0\1\54\1\0"+
"\1\223\1\133\1\223\1\224\1\225\1\223\1\200\1\0"+
"\1\226\1\224\1\225\1\226\1\223\1\224\1\227\12\223"+
"\1\224\2\223\1\177\3\133\1\200\1\177\1\200\1\0"+
"\2\133\1\200\3\133\1\201\1\133\1\177\2\133\3\177"+
"\2\133\1\177\1\133\1\177\1\133\1\223\1\133\1\223"+
"\1\224\1\225\1\223\1\225\1\0\1\226\1\224\1\225"+
"\1\226\1\223\1\224\1\227\12\223\1\224\2\223\1\54"+
"\3\0\1\145\1\54\1\145\3\0\1\145\5\0\1\54"+
"\2\0\3\54\2\0\1\54\1\0\1\54\24\0\1\203"+
"\10\0\1\232\1\165\2\232\1\233\1\134\1\136\1\0"+
"\1\234\1\134\1\233\1\234\2\134\1\235\12\232\1\134"+
"\3\232\1\165\2\232\1\233\1\134\1\236\1\0\1\234"+
"\1\134\1\233\1\234\2\134\1\235\12\232\1\134\2\232"+
"\1\134\1\0\2\134\1\236\1\134\1\136\1\0\1\137"+
"\1\134\1\236\1\137\2\134\1\214\16\134\1\0\4\134"+
"\1\236\1\0\1\137\2\134\1\137\21\134\1\0\2\134"+
"\1\236\1\135\1\136\1\0\1\137\1\134\1\236\1\137"+
"\2\134\1\214\15\134\1\240\1\176\1\240\1\241\1\242"+
"\1\143\1\145\1\0\1\243\1\144\1\242\1\243\1\143"+
"\1\144\1\244\12\240\1\144\2\240\1\220\3\176\1\221"+
"\1\54\1\145\1\0\1\176\1\0\1\221\1\176\2\0"+
"\1\222\1\176\1\220\2\176\3\220\2\176\1\220\1\0"+
"\1\220\1\176\1\240\1\176\1\240\1\241\1\242\1\143"+
"\1\245\1\0\1\243\1\144\1\242\1\243\1\143\1\144"+
"\1\244\12\240\1\144\2\240\1\54\3\0\1\145\1\54"+
"\1\145\3\0\1\145\3\0\1\201\1\0\1\54\2\0"+
"\3\54\2\0\1\54\1\0\1\54\1\0\1\143\1\0"+
"\1\143\1\144\2\143\1\245\1\0\1\146\1\144\1\143"+
"\1\146\1\143\2\144\12\143\1\144\2\143";
private static int [] zzUnpackTrans() {
int [] result = new int[3668];
int [] result = new int[3556];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -369,20 +370,20 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\15\0\1\1\2\11\3\1\1\11\1\1\1\11\3\1"+
"\14\0\1\1\2\11\3\1\1\11\1\1\1\11\3\1"+
"\1\11\4\1\1\11\22\1\1\11\2\1\1\11\1\1"+
"\4\0\2\1\1\0\1\1\1\0\1\11\1\1\1\11"+
"\1\1\1\11\1\1\6\0\1\1\2\0\1\1\1\0"+
"\1\11\1\1\4\0\1\11\1\1\1\0\1\1\1\0"+
"\1\1\3\0\1\1\4\0\1\11\2\1\3\0\1\11"+
"\2\1\5\0\1\1\2\0\1\1\2\11\1\0\1\1"+
"\2\0\1\11\3\0\1\11\1\0\1\1\5\0\1\1"+
"\2\0\2\1\2\0\2\1\2\0\1\1\2\0\1\1"+
"\1\0\1\1\3\0\2\1\1\0\4\1\1\0\1\1"+
"\2\0\1\1";
"\1\11\1\1\4\0\1\1\1\0\1\1\1\0\1\11"+
"\1\1\1\11\1\1\1\11\5\0\1\1\2\0\1\1"+
"\1\0\1\11\1\1\4\0\1\11\1\1\1\0\1\1"+
"\3\0\1\1\4\0\1\11\2\1\3\0\1\11\3\1"+
"\5\0\1\1\2\0\1\1\1\11\1\0\1\1\2\0"+
"\1\11\3\0\1\11\1\0\1\1\5\0\1\1\2\0"+
"\2\1\2\0\2\1\2\0\1\1\2\0\1\1\1\0"+
"\1\1\2\0\1\11\1\0\2\1\1\0\4\1\1\0"+
"\1\1\2\0\1\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[168];
int [] result = new int[165];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -773,12 +774,14 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 1:
{ return tokenOrForbidden(TEXT);
}
case 27: break;
}
// fall through
case 28: break;
case 2:
{ return TEXT;
}
case 28: break;
}
// fall through
case 29: break;
case 3:
{ if (braceCount > 0) {
yyBegin(BRACES);
@@ -786,30 +789,36 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
}
yyBegin(VALUE);
return TEXT;
}
case 29: break;
}
// fall through
case 30: break;
case 4:
{ return QUESTION;
}
case 30: break;
}
// fall through
case 31: break;
case 5:
{ // YAML spec: when a comment follows another syntax element,
// it must be separated from it by space characters.
// See http://www.yaml.org/spec/1.2/spec.html#comment
return (isAfterEol() || isAfterSpace()) ? COMMENT : TEXT;
}
case 31: break;
}
// fall through
case 32: break;
case 6:
{ if (braceCount == 0) {
yyBegin(YYINITIAL);
}
currentLineIndent = 0;
return EOL;
}
case 32: break;
}
// fall through
case 33: break;
case 7:
{ return getWhitespaceTypeAndUpdateIndent();
}
case 33: break;
}
// fall through
case 34: break;
case 8:
{ if (braceCount == 0) {
yyBegin(VALUE);
@@ -820,18 +829,27 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
yyBegin(previousState);
}
return RBRACKET;
}
case 34: break;
}
// fall through
case 35: break;
case 9:
{ yyBegin(SB_HEADER_TAIL);
valueTokenType = SCALAR_TEXT;
return valueTokenType;
}
// fall through
case 36: break;
case 10:
{ braceCount++;
if (braceCount != 0 && yystate() != BRACES) {
previousState = yystate();
}
yyBegin(braceCount == 0 ? previousState: BRACES);
return LBRACE;
}
case 35: break;
case 10:
}
// fall through
case 37: break;
case 11:
{ if (braceCount == 0) {
yyBegin(VALUE);
return TEXT;
@@ -841,18 +859,27 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
yyBegin(previousState);
}
return RBRACE;
}
case 36: break;
case 11:
}
// fall through
case 38: break;
case 12:
{ braceCount++;
if (braceCount != 0 && yystate() != BRACES) {
previousState = yystate();
}
yyBegin(braceCount == 0 ? previousState: BRACES);
return LBRACKET;
}
case 37: break;
case 12:
}
// fall through
case 39: break;
case 13:
{ yyBegin(SB_HEADER_TAIL);
valueTokenType = SCALAR_LIST;
return valueTokenType;
}
// fall through
case 40: break;
case 14:
{ if (currentLineIndent <= valueIndent) {
yypushback(yylength());
yyBegin(YYINITIAL);
@@ -860,87 +887,70 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
} else {
return valueTokenType;
}
}
case 38: break;
case 13:
}
// fall through
case 41: break;
case 15:
{ currentLineIndent = 0;
return EOL;
}
case 39: break;
case 14:
}
// fall through
case 42: break;
case 16:
{ IElementType type = getWhitespaceTypeAndUpdateIndent();
if (currentLineIndent <= valueIndent) {
yyBegin(YYINITIAL);
}
return type;
}
case 40: break;
case 15:
}
// fall through
case 43: break;
case 17:
{ yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
return EOL;
}
// fall through
case 44: break;
case 18:
{ if (zzMarkedPos == zzEndRead){
return SCALAR_KEY;
}
yyBegin(VALUE);
return tokenOrForbidden(TEXT);
}
case 41: break;
case 16:
}
// fall through
case 45: break;
case 19:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ return COLON;
}
case 42: break;
case 17:
}
// fall through
case 46: break;
case 20:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ yyBegin(VALUE_OR_KEY);
return SEQUENCE_MARKER;
}
case 43: break;
case 18:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 11;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
while (zzFState != -1 && zzFPos < zzMarkedPos) {
zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1);
zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/);
zzFPos += Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
}
if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); }
while (zzFPos <= zzMarkedPos) {
zzFinL[zzFPos++] = false;
}
zzFState = 6;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
zzFPos -= Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
};
zzMarkedPos = zzFPos;
}
{ yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
valueTokenType = SCALAR_TEXT;
return valueTokenType;
}
case 44: break;
case 19:
{ return SCALAR_DSTRING;
}
case 45: break;
case 20:
{ return SCALAR_STRING;
}
case 46: break;
}
// fall through
case 47: break;
case 21:
{ return SCALAR_DSTRING;
}
// fall through
case 48: break;
case 22:
{ return SCALAR_STRING;
}
// fall through
case 49: break;
case 23:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 5;
{ int zzFState = 6;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
@@ -955,7 +965,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
zzFinL[zzFPos++] = false;
}
zzFState = 6;
zzFState = 7;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
@@ -965,50 +975,20 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
zzMarkedPos = zzFPos;
}
{ return TAG;
}
case 47: break;
case 22:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 12;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
while (zzFState != -1 && zzFPos < zzMarkedPos) {
zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1);
zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/);
zzFPos += Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
}
if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); }
while (zzFPos <= zzMarkedPos) {
zzFinL[zzFPos++] = false;
}
zzFState = 6;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
zzFPos -= Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
};
zzMarkedPos = zzFPos;
}
{ yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
valueTokenType = SCALAR_LIST;
return valueTokenType;
}
case 48: break;
case 23:
}
// fall through
case 50: break;
case 24:
// lookahead expression with fixed lookahead length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzMarkedPos, -1);
{ return getWhitespaceTypeAndUpdateIndent();
}
case 49: break;
case 24:
}
// fall through
case 51: break;
case 25:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 9;
{ int zzFState = 10;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
@@ -1023,7 +1003,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
zzFinL[zzFPos++] = false;
}
zzFState = 10;
zzFState = 11;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
@@ -1034,15 +1014,17 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
}
{ yyBegin(VALUE);
return SCALAR_KEY;
}
case 50: break;
case 25:
{ return SCALAR_KEY;
}
case 51: break;
}
// fall through
case 52: break;
case 26:
{ return SCALAR_KEY;
}
// fall through
case 53: break;
case 27:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 7;
{ int zzFState = 8;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
@@ -1057,7 +1039,7 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
zzFinL[zzFPos++] = false;
}
zzFState = 8;
zzFState = 9;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
@@ -1068,8 +1050,9 @@ public class _YAMLLexer implements FlexLexer, YAMLTokenTypes {
}
{ yyBegin(VALUE_BRACE);
return SCALAR_KEY;
}
case 52: break;
}
// fall through
case 54: break;
default:
zzScanError(ZZ_NO_MATCH);
}
@@ -159,24 +159,29 @@ C_TAG_HANDLE = "!" {NS_WORD_CHAR}+ "!" | "!" "!" | "!"
C_NS_SHORTHAND_TAG = {C_TAG_HANDLE} {NS_TAG_CHAR}+
C_NON_SPECIFIC_TAG = "!"
C_NS_TAG_PROPERTY = {C_VERBATIM_TAG} | {C_NS_SHORTHAND_TAG} | {C_NON_SPECIFIC_TAG}
SCALAR_BLOCK_ERR_WORD = [^ \t#\n] [^ \t\n]*
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// STATES DECLARATIONS //////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
%xstate BRACES, VALUE, VALUE_OR_KEY, VALUE_BRACE, INDENT_VALUE
%xstate BRACES, VALUE, VALUE_OR_KEY, VALUE_BRACE, INDENT_VALUE, SB_HEADER_TAIL
%%
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////// RULES declarations ////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<YYINITIAL, BRACES, VALUE, VALUE_BRACE, VALUE_OR_KEY> {
<YYINITIAL, BRACES, VALUE, VALUE_BRACE, VALUE_OR_KEY, SB_HEADER_TAIL> {
{COMMENT} {
// YAML spec: when a comment follows another syntax element,
// it must be separated from it by space characters.
// See http://www.yaml.org/spec/1.2/spec.html#comment
return (isAfterEol() || isAfterSpace()) ? COMMENT : TEXT;
}
}
<YYINITIAL, BRACES, VALUE, VALUE_BRACE, VALUE_OR_KEY> {
{EOL} { if (braceCount == 0) {
yyBegin(YYINITIAL);
@@ -247,7 +252,7 @@ C_NS_TAG_PROPERTY = {C_VERBATIM_TAG} | {C_NS_SHORTHAND_TAG} | {C_NON_SPECIFIC_TA
}
}
<YYINITIAL, BRACES, VALUE, VALUE_BRACE, VALUE_OR_KEY> {
<YYINITIAL, BRACES, VALUE, VALUE_BRACE, VALUE_OR_KEY, SB_HEADER_TAIL> {
{WHITE_SPACE} { return getWhitespaceTypeAndUpdateIndent(); }
@@ -284,22 +289,27 @@ C_NS_TAG_PROPERTY = {C_VERBATIM_TAG} | {C_NS_SHORTHAND_TAG} | {C_NON_SPECIFIC_TA
<YYINITIAL, VALUE, VALUE_BRACE, VALUE_OR_KEY>{
">"("-"|"+")? / ({WHITE_SPACE} | {EOL}) {
yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
">"("-"|"+")? { yyBegin(SB_HEADER_TAIL);
valueTokenType = SCALAR_TEXT;
return valueTokenType;
}
"|"("-"|"+")? / ({WHITE_SPACE} | {EOL})
{ yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
"|"("-"|"+")? { yyBegin(SB_HEADER_TAIL);
valueTokenType = SCALAR_LIST;
return valueTokenType;
}
}
<SB_HEADER_TAIL>{
([^ \t#\n] [^ \t\n]* [ \t]* )+ { return TEXT; }
{EOL} { yyBegin(INDENT_VALUE);
valueIndent = currentLineIndent;
return EOL;
}
}
<YYINITIAL, VALUE, VALUE_OR_KEY> {
{INJECTION}? {NS_PLAIN_ONE_LINE_block} {
return tokenOrForbidden(TEXT);
@@ -215,33 +215,37 @@ public class YAMLParser implements PsiParser, YAMLTokenTypes {
@NotNull
private IElementType parseMultiLineScalar(final IElementType tokenType) {
int indent = -1;
assert tokenType == getTokenType();
// Accept header token: '|' or '>'
advanceLexer();
// Parse header tail: TEXT is used as placeholder for invalid symbols in this context
if (getTokenType() == TEXT) {
advanceLexer();
}
PsiBuilder.Marker endOfValue = myBuilder.mark();
IElementType type = getTokenType();
PsiBuilder.Marker endOfValue = null;
while (type == tokenType || type == INDENT || type == EOL) {
int length = getCurrentTokenLength();
if (indent == -1 && type == INDENT) {
indent = getCurrentTokenLength();
indent = length;
}
if (type == tokenType || type == INDENT && getCurrentTokenLength() > indent) {
advanceLexer();
if (endOfValue != null) {
endOfValue.drop();
}
advanceLexer();
if (type == tokenType || type == INDENT && length > indent) {
endOfValue.drop();
endOfValue = myBuilder.mark();
}
else {
advanceLexer();
}
type = getTokenType();
}
if (endOfValue == null) {
rollBackToEol();
}
else {
dropEolMarker();
endOfValue.rollbackTo();
}
dropEolMarker();
endOfValue.rollbackTo();
return tokenType == SCALAR_LIST ? YAMLElementTypes.SCALAR_LIST_VALUE : YAMLElementTypes.SCALAR_TEXT_VALUE;
}
@@ -228,4 +228,8 @@ public class YAMLParserTest extends ParsingTestCase {
public void testScalarsWithNewlines() {
doTest(true);
}
public void testCommentInBlockScalarHeader() {
doTest(true);
}
}
@@ -0,0 +1,30 @@
YAML file
YAML document
YAML sequence
YAML sequence item
PsiElement(-)('-')
PsiWhiteSpace(' ')
YAML scalar text
PsiElement(scalar text)('>')
PsiWhiteSpace(' ')
PsiComment(comment)('# comment in folded style block scalar header')
PsiElement(Eol)('\n')
PsiElement(indent)(' ')
PsiElement(scalar text)('hello')
PsiElement(Eol)('\n')
PsiElement(indent)(' ')
PsiElement(scalar text)('world')
PsiElement(Eol)('\n')
YAML sequence item
PsiElement(-)('-')
PsiWhiteSpace(' ')
YAML scalar list
PsiElement(scalar list)('|')
PsiWhiteSpace(' ')
PsiComment(comment)('# comment in literal style block scalar header')
PsiElement(Eol)('\n')
PsiElement(indent)(' ')
PsiElement(scalar list)('forever')
PsiElement(Eol)('\n')
PsiElement(indent)(' ')
PsiElement(scalar list)('young')
@@ -0,0 +1,6 @@
- > # comment in folded style block scalar header
hello
world
- | # comment in literal style block scalar header
forever
young
@@ -46,6 +46,17 @@ public class YAMLScalarContentTest extends LightPlatformCodeInsightFixtureTestCa
doTest();
}
// Test presence of comment in literal style block scalar header
public void testLiteralStyleCommentInHeader() {
doTest();
}
// Test scalar value in case of invalid symbols in literal style block scalar header
// Now invalid symbols will be ignored in scalar value calculation
public void testLiteralStyleHeaderError() {
doTest();
}
public void testFoldedStyle1() {
doTest();
}
@@ -74,6 +85,17 @@ public class YAMLScalarContentTest extends LightPlatformCodeInsightFixtureTestCa
doTest();
}
// Test presence of comment in folded style block scalar header
public void testFoldedStyleCommentInHeader() {
doTest();
}
// Test scalar value in case of invalid symbols in literal style block scalar header
// Now invalid symbols will be ignored in scalar value calculation
public void testFoldedStyleHeaderError() {
doTest();
}
public void testSingleQuote1() {
doTest();
}
@@ -66,6 +66,11 @@ public class YAMLScalarLiteralEscaperTest extends LightPlatformCodeInsightFixtur
doTest();
}
// Test presence of comment in literal style block scalar header
public void testLiteralStyleCommentInHeader() {
doTest();
}
public void testFoldedStyle1() {
doTest();
}
@@ -86,6 +91,11 @@ public class YAMLScalarLiteralEscaperTest extends LightPlatformCodeInsightFixtur
doTest();
}
// Test presence of comment in folded style block scalar header
public void testFoldedStyleCommentInHeader() {
doTest();
}
public void testSingleQuote1() {
doTest();
}
@@ -0,0 +1,15 @@
[21, 22, 23, 24, 25, 26, 30, 31, 32, 33, 34, 35, 35]
h->h
e->e
l->l
l->l
o->o
->
w->w
o->o
r->r
l->l
d->d
->
@@ -0,0 +1 @@
hello world
@@ -0,0 +1,3 @@
> # some comment
hello
world
@@ -0,0 +1 @@
hello world
@@ -0,0 +1,3 @@
> invalid words in this context
hello
world
@@ -0,0 +1,17 @@
[20, 21, 22, 23, 24, 25, 29, 30, 31, 32, 33, 34, 35, 35]
h->h
e->e
l->l
l->l
o->o
->
->
w->w
o->o
r->r
l->l
d->d
->
@@ -0,0 +1,2 @@
hello
world
@@ -0,0 +1,3 @@
| # some comment
hello<caret>
world
@@ -0,0 +1,2 @@
hello
world
@@ -0,0 +1,3 @@
| invalid w#ords in this context #comments starts here
hello<caret>
world