Lexer: support underscores in numeric literals
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 5/19/16 4:06 PM */
|
||||
/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */
|
||||
|
||||
package org.jetbrains.kotlin.kdoc.lexer;
|
||||
|
||||
@@ -11,25 +11,28 @@ import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag;
|
||||
|
||||
|
||||
/**
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
|
||||
* on 5/19/16 4:06 PM from the specification file
|
||||
* <tt>/home/dzharkov/work/kotlin/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex</tt>
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.7.0-SNAPSHOT
|
||||
* from the specification file <tt>/Users/endermz/projects/kotlin/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex</tt>
|
||||
*/
|
||||
class _KDocLexer implements FlexLexer {
|
||||
|
||||
/** This character denotes the end of file */
|
||||
public static final int YYEOF = -1;
|
||||
|
||||
/** initial size of the lookahead buffer */
|
||||
private static final int ZZ_BUFFERSIZE = 16384;
|
||||
|
||||
/** lexical states */
|
||||
public static final int CODE_BLOCK_CONTENTS_BEGINNING = 16;
|
||||
public static final int TAG_TEXT_BEGINNING = 8;
|
||||
public static final int CODE_BLOCK = 12;
|
||||
public static final int CODE_BLOCK_LINE_BEGINNING = 14;
|
||||
public static final int CONTENTS_BEGINNING = 4;
|
||||
public static final int CONTENTS = 10;
|
||||
public static final int YYINITIAL = 0;
|
||||
public static final int LINE_BEGINNING = 2;
|
||||
public static final int CONTENTS_BEGINNING = 4;
|
||||
public static final int TAG_BEGINNING = 6;
|
||||
public static final int TAG_TEXT_BEGINNING = 8;
|
||||
public static final int CONTENTS = 10;
|
||||
public static final int CODE_BLOCK = 12;
|
||||
public static final int CODE_BLOCK_LINE_BEGINNING = 14;
|
||||
public static final int CODE_BLOCK_CONTENTS_BEGINNING = 16;
|
||||
|
||||
/**
|
||||
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
|
||||
@@ -37,103 +40,111 @@ class _KDocLexer implements FlexLexer {
|
||||
* at the beginning of a line
|
||||
* 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, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
|
||||
private static final int ZZ_LEXSTATE[] = {
|
||||
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
|
||||
8, 8
|
||||
};
|
||||
|
||||
/**
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
* Chosen bits are [11, 6, 4]
|
||||
* Total runtime size is 12064 bytes
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\0\1\1\1\11\1\0\1\1\23\0\1\1\3\0\1\3\3\0"+
|
||||
"\1\16\1\17\1\13\3\0\1\4\1\12\12\2\6\0\1\14\32\3"+
|
||||
"\1\5\1\15\1\6\1\0\1\3\1\7\32\3\3\0\1\10\43\0"+
|
||||
"\4\3\4\0\1\3\12\0\1\3\4\0\1\3\5\0\27\3\1\0"+
|
||||
"\37\3\1\0\u01ca\3\4\0\14\3\16\0\5\3\7\0\1\3\1\0"+
|
||||
"\1\3\201\0\5\3\1\0\2\3\2\0\4\3\10\0\1\3\1\0"+
|
||||
"\3\3\1\0\1\3\1\0\24\3\1\0\123\3\1\0\213\3\10\0"+
|
||||
"\236\3\11\0\46\3\2\0\1\3\7\0\47\3\7\0\1\3\100\0"+
|
||||
"\33\3\5\0\3\3\30\0\1\3\24\0\53\3\43\0\2\3\1\0"+
|
||||
"\143\3\1\0\1\3\17\0\2\3\7\0\2\3\12\0\3\3\2\0"+
|
||||
"\1\3\20\0\1\3\1\0\36\3\35\0\131\3\13\0\1\3\30\0"+
|
||||
"\41\3\11\0\2\3\4\0\1\3\5\0\26\3\4\0\1\3\11\0"+
|
||||
"\1\3\3\0\1\3\27\0\31\3\107\0\1\3\1\0\13\3\127\0"+
|
||||
"\66\3\3\0\1\3\22\0\1\3\7\0\12\3\17\0\7\3\1\0"+
|
||||
"\7\3\5\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+
|
||||
"\1\3\3\0\4\3\3\0\1\3\20\0\1\3\15\0\2\3\1\0"+
|
||||
"\3\3\16\0\4\3\7\0\1\3\11\0\6\3\4\0\2\3\2\0"+
|
||||
"\26\3\1\0\7\3\1\0\2\3\1\0\2\3\1\0\2\3\37\0"+
|
||||
"\4\3\1\0\1\3\23\0\3\3\20\0\11\3\1\0\3\3\1\0"+
|
||||
"\26\3\1\0\7\3\1\0\2\3\1\0\5\3\3\0\1\3\22\0"+
|
||||
"\1\3\17\0\2\3\17\0\1\3\23\0\10\3\2\0\2\3\2\0"+
|
||||
"\26\3\1\0\7\3\1\0\2\3\1\0\5\3\3\0\1\3\36\0"+
|
||||
"\2\3\1\0\3\3\17\0\1\3\21\0\1\3\1\0\6\3\3\0"+
|
||||
"\3\3\1\0\4\3\3\0\2\3\1\0\1\3\1\0\2\3\3\0"+
|
||||
"\2\3\3\0\3\3\3\0\14\3\26\0\1\3\50\0\1\3\13\0"+
|
||||
"\10\3\1\0\3\3\1\0\27\3\1\0\12\3\1\0\5\3\3\0"+
|
||||
"\1\3\32\0\2\3\6\0\2\3\43\0\10\3\1\0\3\3\1\0"+
|
||||
"\27\3\1\0\12\3\1\0\5\3\3\0\1\3\40\0\1\3\1\0"+
|
||||
"\2\3\17\0\2\3\22\0\10\3\1\0\3\3\1\0\51\3\2\0"+
|
||||
"\1\3\20\0\1\3\21\0\2\3\30\0\6\3\5\0\22\3\3\0"+
|
||||
"\30\3\1\0\11\3\1\0\1\3\2\0\7\3\72\0\60\3\1\0"+
|
||||
"\2\3\13\0\10\3\72\0\2\3\1\0\1\3\2\0\2\3\1\0"+
|
||||
"\1\3\2\0\1\3\6\0\4\3\1\0\7\3\1\0\3\3\1\0"+
|
||||
"\1\3\1\0\1\3\2\0\2\3\1\0\4\3\1\0\2\3\11\0"+
|
||||
"\1\3\2\0\5\3\1\0\1\3\25\0\4\3\40\0\1\3\77\0"+
|
||||
"\10\3\1\0\44\3\33\0\5\3\163\0\53\3\24\0\1\3\20\0"+
|
||||
"\6\3\4\0\4\3\3\0\1\3\3\0\2\3\7\0\3\3\4\0"+
|
||||
"\15\3\14\0\1\3\21\0\46\3\1\0\1\3\5\0\1\3\2\0"+
|
||||
"\53\3\1\0\u014d\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0"+
|
||||
"\4\3\2\0\51\3\1\0\4\3\2\0\41\3\1\0\4\3\2\0"+
|
||||
"\7\3\1\0\1\3\1\0\4\3\2\0\17\3\1\0\71\3\1\0"+
|
||||
"\4\3\2\0\103\3\45\0\20\3\20\0\125\3\14\0\u026c\3\2\0"+
|
||||
"\21\3\1\0\32\3\5\0\113\3\3\0\3\3\17\0\15\3\1\0"+
|
||||
"\4\3\16\0\22\3\16\0\22\3\16\0\15\3\1\0\3\3\17\0"+
|
||||
"\64\3\43\0\1\3\3\0\2\3\103\0\130\3\10\0\51\3\1\0"+
|
||||
"\1\3\5\0\106\3\12\0\35\3\63\0\36\3\2\0\5\3\13\0"+
|
||||
"\54\3\25\0\7\3\70\0\27\3\11\0\65\3\122\0\1\3\135\0"+
|
||||
"\57\3\21\0\7\3\67\0\36\3\15\0\2\3\12\0\54\3\32\0"+
|
||||
"\44\3\51\0\3\3\12\0\44\3\153\0\4\3\1\0\4\3\3\0"+
|
||||
"\2\3\11\0\300\3\100\0\u0116\3\2\0\6\3\2\0\46\3\2\0"+
|
||||
"\6\3\2\0\10\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0"+
|
||||
"\37\3\2\0\65\3\1\0\7\3\1\0\1\3\3\0\3\3\1\0"+
|
||||
"\7\3\3\0\4\3\2\0\6\3\4\0\15\3\5\0\3\3\1\0"+
|
||||
"\7\3\102\0\2\3\23\0\1\3\34\0\1\3\15\0\1\3\20\0"+
|
||||
"\15\3\3\0\33\3\107\0\1\3\4\0\1\3\2\0\12\3\1\0"+
|
||||
"\1\3\3\0\5\3\6\0\1\3\1\0\1\3\1\0\1\3\1\0"+
|
||||
"\4\3\1\0\13\3\2\0\4\3\5\0\5\3\4\0\1\3\21\0"+
|
||||
"\51\3\u0a77\0\57\3\1\0\57\3\1\0\205\3\6\0\4\3\3\0"+
|
||||
"\2\3\14\0\46\3\1\0\1\3\5\0\1\3\2\0\70\3\7\0"+
|
||||
"\1\3\20\0\27\3\11\0\7\3\1\0\7\3\1\0\7\3\1\0"+
|
||||
"\7\3\1\0\7\3\1\0\7\3\1\0\7\3\1\0\7\3\120\0"+
|
||||
"\1\3\u01d5\0\3\3\31\0\11\3\7\0\5\3\2\0\5\3\4\0"+
|
||||
"\126\3\6\0\3\3\1\0\132\3\1\0\4\3\5\0\51\3\3\0"+
|
||||
"\136\3\21\0\33\3\65\0\20\3\u0200\0\u19b6\3\112\0\u51cd\3\63\0"+
|
||||
"\u048d\3\103\0\56\3\2\0\u010d\3\3\0\20\3\12\0\2\3\24\0"+
|
||||
"\57\3\20\0\31\3\10\0\120\3\47\0\11\3\2\0\147\3\2\0"+
|
||||
"\4\3\1\0\4\3\14\0\13\3\115\0\12\3\1\0\3\3\1\0"+
|
||||
"\4\3\1\0\27\3\25\0\1\3\7\0\64\3\16\0\62\3\76\0"+
|
||||
"\6\3\3\0\1\3\16\0\34\3\12\0\27\3\31\0\35\3\7\0"+
|
||||
"\57\3\34\0\1\3\60\0\51\3\27\0\3\3\1\0\10\3\24\0"+
|
||||
"\27\3\3\0\1\3\5\0\60\3\1\0\1\3\3\0\2\3\2\0"+
|
||||
"\5\3\2\0\1\3\1\0\1\3\30\0\3\3\2\0\13\3\7\0"+
|
||||
"\3\3\14\0\6\3\2\0\6\3\2\0\6\3\11\0\7\3\1\0"+
|
||||
"\7\3\221\0\43\3\35\0\u2ba4\3\14\0\27\3\4\0\61\3\u2104\0"+
|
||||
"\u016e\3\2\0\152\3\46\0\7\3\14\0\5\3\5\0\1\3\1\0"+
|
||||
"\12\3\1\0\15\3\1\0\5\3\1\0\1\3\1\0\2\3\1\0"+
|
||||
"\2\3\1\0\154\3\41\0\u016b\3\22\0\100\3\2\0\66\3\50\0"+
|
||||
"\15\3\66\0\2\3\30\0\3\3\31\0\1\3\6\0\5\3\1\0"+
|
||||
"\207\3\7\0\1\3\34\0\32\3\4\0\1\3\1\0\32\3\13\0"+
|
||||
"\131\3\3\0\6\3\2\0\6\3\2\0\6\3\2\0\3\3\3\0"+
|
||||
"\2\3\3\0\2\3\31\0";
|
||||
public static int ZZ_CMAP(int ch) {
|
||||
return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
|
||||
/* The ZZ_CMAP_Z table has 1088 entries */
|
||||
static final char ZZ_CMAP_Z[] = zzUnpackCMap(
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+
|
||||
"\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\3\11\1"+
|
||||
"\31\1\32\2\11\1\14\1\33\14\11\1\34\21\11\1\35\10\11\1\36\12\11\51\14\1\37"+
|
||||
"\3\14\1\40\1\41\17\11\1\42\u0381\11");
|
||||
|
||||
/**
|
||||
/* The ZZ_CMAP_Y table has 2240 entries */
|
||||
static final char ZZ_CMAP_Y[] = zzUnpackCMap(
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+
|
||||
"\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\11\13\1\25"+
|
||||
"\1\26\1\13\1\27\1\26\1\13\1\25\4\1\1\13\1\30\1\31\1\32\1\1\2\13\1\30\1\1\1"+
|
||||
"\33\1\26\5\13\1\34\1\35\1\36\1\1\1\37\1\13\1\1\1\40\5\13\1\41\1\42\1\43\1"+
|
||||
"\13\1\30\1\44\1\13\1\45\1\46\1\1\1\13\1\47\12\1\1\50\2\13\1\51\1\1\1\52\1"+
|
||||
"\16\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\16\1\62\1\63\1\55\1\56\1\64\1\1\1"+
|
||||
"\65\1\1\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\16\1\42\1\54\1\55\1\56\1\70\1"+
|
||||
"\1\1\61\1\16\1\42\1\72\1\73\1\74\1\75\1\1\1\71\1\1\1\76\1\77\1\37\1\56\1\100"+
|
||||
"\1\1\1\101\1\16\1\1\1\77\1\37\1\56\1\100\1\1\1\60\1\16\1\102\1\77\1\37\1\13"+
|
||||
"\1\103\1\60\1\1\1\16\1\43\1\104\1\105\1\13\1\106\1\107\3\1\1\26\2\13\1\110"+
|
||||
"\1\107\3\1\1\111\1\112\1\113\1\114\1\115\1\116\2\1\1\71\3\1\1\117\1\13\1\120"+
|
||||
"\1\1\1\121\7\1\2\13\1\30\1\122\1\1\1\123\1\124\1\125\1\126\1\1\2\13\1\41\2"+
|
||||
"\13\1\127\24\13\1\130\1\131\2\13\1\130\2\13\1\132\1\133\1\14\3\13\1\133\3"+
|
||||
"\13\1\30\2\1\1\13\1\1\5\13\1\134\1\26\45\13\1\135\1\13\1\26\1\30\4\13\1\136"+
|
||||
"\1\71\1\137\1\16\1\13\1\16\1\13\1\16\1\137\1\71\3\13\1\140\1\1\1\141\4\1\5"+
|
||||
"\13\1\25\2\13\1\142\4\13\1\41\1\13\1\120\3\1\1\13\1\143\1\134\2\13\1\144\1"+
|
||||
"\1\1\145\3\1\1\13\1\107\3\13\1\134\4\1\1\146\5\1\1\104\2\13\1\140\1\147\3"+
|
||||
"\1\1\150\1\13\1\151\1\1\2\13\1\41\1\1\2\13\1\140\1\1\1\40\1\43\1\13\1\143"+
|
||||
"\6\1\1\152\1\16\14\13\4\1\21\13\1\153\2\13\1\153\1\154\1\13\1\143\3\13\1\155"+
|
||||
"\1\156\1\157\1\120\1\156\2\1\1\160\1\122\1\71\1\161\1\1\1\162\1\1\1\120\1"+
|
||||
"\13\1\75\4\1\1\163\1\164\1\165\1\166\1\167\1\1\2\13\1\47\147\1\2\13\1\170"+
|
||||
"\2\13\1\170\10\13\1\171\1\1\2\13\1\41\3\13\1\172\1\1\1\13\1\107\4\173\4\1"+
|
||||
"\1\122\35\1\1\174\1\1\1\175\1\176\1\26\4\13\1\177\1\26\4\13\1\200\1\104\1"+
|
||||
"\13\1\143\1\26\4\13\1\170\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\41\4\1\134"+
|
||||
"\13\1\144\3\1\10\13\1\120\4\1\2\13\1\143\20\13\1\120\1\13\1\201\1\1\2\13\1"+
|
||||
"\170\1\122\1\13\1\25\5\13\2\1\1\202\1\203\5\13\1\204\1\16\1\75\4\1\1\43\1"+
|
||||
"\205\1\13\1\31\1\206\3\13\1\140\1\203\2\13\1\140\3\1\1\207\1\43\1\13\1\41"+
|
||||
"\1\13\1\107\1\1\1\13\1\120\1\50\2\13\1\31\1\122\3\1\2\13\1\47\1\1\1\210\1"+
|
||||
"\1\1\13\1\211\3\13\1\212\1\213\1\214\2\1\1\215\1\216\1\173\11\1\2\13\1\31"+
|
||||
"\1\1\72\13\1\140\1\13\1\217\2\13\1\144\20\1\22\13\1\143\3\13\1\143\6\13\1"+
|
||||
"\75\2\1\1\107\1\220\1\56\1\221\1\222\6\13\1\16\1\1\1\150\25\13\1\143\1\1\4"+
|
||||
"\13\1\203\2\13\1\25\2\1\1\120\3\1\1\223\1\40\1\1\1\76\1\224\7\13\1\120\1\161"+
|
||||
"\1\1\1\26\1\225\1\26\1\30\1\226\4\13\1\170\1\227\1\230\1\231\1\1\1\232\1\13"+
|
||||
"\1\14\1\233\2\143\2\1\7\13\1\30\4\1\3\13\1\134\20\1\1\13\1\120\3\13\1\71\2"+
|
||||
"\1\1\13\1\170\1\1\1\13\1\30\3\1\1\13\1\143\2\13\1\234\1\235\2\1\11\13\1\143"+
|
||||
"\66\1\1\236\2\13\1\237\1\13\1\41\12\1\1\13\1\41\1\13\1\75\14\1\1\71\1\240"+
|
||||
"\1\13\1\140\2\1\1\13\1\120\10\1\3\13\1\41\1\13\1\41\1\13\1\31\10\1\4\13\1"+
|
||||
"\47\73\1\1\150\2\13\1\25\4\1\1\150\2\13\65\1\66\13\1\170\11\1\6\13\1\31\71"+
|
||||
"\1\2\13\1\170\75\1\43\13\1\47\34\1\1\16\77\1\5\13\1\224\3\13\1\137\1\241\1"+
|
||||
"\242\1\243\3\13\1\244\1\245\1\13\1\246\1\247\1\37\24\13\1\250\1\13\1\37\1"+
|
||||
"\200\1\13\1\200\1\13\1\224\1\13\1\224\1\170\1\13\1\170\1\13\1\56\1\13\1\56"+
|
||||
"\1\13\1\210\3\1\55\13\1\107\2\1\103\13\1\134\15\13\1\143\76\1\41\13\1\143"+
|
||||
"\36\1");
|
||||
|
||||
/* The ZZ_CMAP_A table has 2704 entries */
|
||||
static final char ZZ_CMAP_A[] = zzUnpackCMap(
|
||||
"\11\0\1\1\1\11\1\12\1\13\1\12\22\0\1\1\3\0\1\3\3\0\1\20\1\21\1\15\3\0\1\4"+
|
||||
"\1\14\12\2\6\0\1\16\32\3\1\5\1\17\1\6\1\0\1\3\1\7\32\3\3\0\1\10\6\0\1\12\14"+
|
||||
"\0\4\3\4\0\1\3\12\0\1\3\4\0\1\3\5\0\27\3\1\0\12\3\4\0\14\3\16\0\5\3\7\0\1"+
|
||||
"\3\1\0\1\3\1\0\5\3\1\0\2\3\2\0\4\3\10\0\1\3\1\0\3\3\1\0\1\3\1\0\4\3\1\0\23"+
|
||||
"\3\1\0\13\3\10\0\16\3\11\0\26\3\2\0\1\3\6\0\13\3\5\0\3\3\30\0\1\3\22\0\6\3"+
|
||||
"\1\0\1\3\17\0\2\3\7\0\2\3\12\0\3\3\2\0\2\3\1\0\16\3\15\0\11\3\13\0\1\3\30"+
|
||||
"\0\6\3\4\0\2\3\4\0\1\3\5\0\6\3\4\0\1\3\11\0\1\3\3\0\1\3\7\0\11\3\13\0\26\3"+
|
||||
"\3\0\1\3\2\0\1\3\7\0\10\3\1\0\7\3\1\0\7\3\5\0\10\3\2\0\2\3\2\0\26\3\1\0\7"+
|
||||
"\3\1\0\1\3\3\0\4\3\3\0\1\3\20\0\1\3\15\0\2\3\1\0\5\3\7\0\1\3\11\0\6\3\4\0"+
|
||||
"\2\3\1\0\2\3\1\0\2\3\1\0\2\3\17\0\4\3\1\0\1\3\3\0\3\3\20\0\11\3\1\0\2\3\1"+
|
||||
"\0\2\3\1\0\5\3\3\0\1\3\2\0\1\3\22\0\1\3\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1"+
|
||||
"\0\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\14\3\17\0\1\3\13\0\10\3\1\0\6\3\1\0\5\3"+
|
||||
"\3\0\1\3\12\0\2\3\7\0\2\3\15\0\13\3\2\0\1\3\7\0\22\3\3\0\10\3\1\0\11\3\1\0"+
|
||||
"\1\3\2\0\7\3\11\0\1\3\1\0\2\3\13\0\1\3\1\0\2\3\1\0\1\3\2\0\2\3\1\0\1\3\2\0"+
|
||||
"\1\3\6\0\4\3\1\0\7\3\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\4\3\1\0\2\3\11\0"+
|
||||
"\1\3\2\0\5\3\1\0\1\3\25\0\2\3\2\0\10\3\1\0\24\3\13\0\5\3\22\0\7\3\4\0\4\3"+
|
||||
"\3\0\1\3\3\0\2\3\7\0\3\3\4\0\15\3\14\0\1\3\1\0\13\3\1\0\1\3\3\0\11\3\1\0\4"+
|
||||
"\3\2\0\7\3\1\0\1\3\1\0\4\3\2\0\1\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0\4\3\2\0\15"+
|
||||
"\3\13\0\15\3\2\0\14\3\3\0\17\3\1\0\6\3\23\0\1\3\3\0\2\3\3\0\11\3\1\0\1\3\5"+
|
||||
"\0\16\3\2\0\14\3\5\0\7\3\17\0\1\3\15\0\7\3\7\0\16\3\15\0\2\3\11\0\4\3\1\0"+
|
||||
"\10\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0\6\3\1\0\7\3\1\0\1\3\3\0"+
|
||||
"\3\3\1\0\7\3\3\0\4\3\2\0\6\3\14\0\2\12\12\0\1\3\14\0\1\3\15\0\1\3\2\0\1\3"+
|
||||
"\4\0\1\3\2\0\12\3\1\0\1\3\3\0\5\3\6\0\1\3\1\0\1\3\1\0\1\3\1\0\4\3\1\0\13\3"+
|
||||
"\2\0\4\3\5\0\5\3\4\0\1\3\1\0\17\3\1\0\5\3\6\0\4\3\1\0\6\3\11\0\10\3\1\0\7"+
|
||||
"\3\6\0\3\3\11\0\11\3\7\0\5\3\2\0\5\3\3\0\7\3\6\0\16\3\1\0\4\3\12\0\2\3\13"+
|
||||
"\0\11\3\2\0\27\3\2\0\4\3\1\0\2\3\1\0\3\3\1\0\4\3\1\0\4\3\10\0\1\3\11\0\6\3"+
|
||||
"\3\0\1\3\4\0\3\3\1\0\10\3\4\0\7\3\3\0\1\3\6\0\1\3\3\0\2\3\2\0\5\3\2\0\1\3"+
|
||||
"\1\0\1\3\30\0\3\3\3\0\6\3\2\0\6\3\2\0\6\3\11\0\7\3\4\0\5\3\3\0\5\3\5\0\1\3"+
|
||||
"\1\0\10\3\1\0\5\3\1\0\1\3\1\0\2\3\1\0\2\3\1\0\12\3\3\0\2\3\13\0\5\3\1\0\25"+
|
||||
"\3\4\0\1\3\6\0\12\3\2\0\6\3\2\0\6\3\2\0\6\3\2\0\3\3\3\0\2\3\3\0\2\3\11\0\14"+
|
||||
"\3\1\0\16\3\1\0\2\3\1\0\5\3\4\0\10\3\1\0\5\3\12\0\6\3\2\0\1\3\1\0\14\3\1\0"+
|
||||
"\2\3\3\0\1\3\2\0\5\3\1\0\3\3\1\0\7\3\2\0\1\3\2\0\2\3\2\0\4\3\1\0\14\3\1\0"+
|
||||
"\1\3\1\0\7\3\1\0\21\3\1\0\4\3\2\0\10\3\1\0\7\3\1\0\14\3\1\0\4\3\1\0\5\3\1"+
|
||||
"\0\1\3\3\0\14\3\2\0\10\3");
|
||||
|
||||
/**
|
||||
* Translates DFA states to action switch labels.
|
||||
*/
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
@@ -164,20 +175,20 @@ class _KDocLexer implements FlexLexer {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Translates a state to a row index in the transition table
|
||||
*/
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\20\0\40\0\60\0\100\0\120\0\140\0\160"+
|
||||
"\0\200\0\220\0\240\0\260\0\220\0\300\0\320\0\340"+
|
||||
"\0\360\0\u0100\0\u0110\0\260\0\u0120\0\220\0\u0130\0\u0140"+
|
||||
"\0\u0150\0\260\0\u0160\0\220\0\u0170\0\260\0\u0180\0\u0190"+
|
||||
"\0\u01a0\0\u01b0\0\220\0\260\0\u01c0\0\u01d0\0\u01e0\0\u01f0"+
|
||||
"\0\u0200\0\220\0\u0210\0\u0220\0\u0230\0\u0240\0\u0250\0\220"+
|
||||
"\0\u0260\0\u0270\0\u0280\0\220\0\220\0\u0290\0\u01c0\0\u01e0"+
|
||||
"\0\u02a0\0\u01c0\0\u02b0\0\220";
|
||||
"\0\0\0\22\0\44\0\66\0\110\0\132\0\154\0\176"+
|
||||
"\0\220\0\242\0\264\0\306\0\242\0\330\0\352\0\374"+
|
||||
"\0\u010e\0\u0120\0\u0132\0\306\0\u0144\0\242\0\u0156\0\u0168"+
|
||||
"\0\u017a\0\306\0\u018c\0\242\0\u019e\0\306\0\u01b0\0\u01c2"+
|
||||
"\0\u01d4\0\u01e6\0\242\0\306\0\u01f8\0\u020a\0\u021c\0\u022e"+
|
||||
"\0\u0240\0\242\0\u0252\0\u0264\0\u0276\0\u0288\0\u029a\0\242"+
|
||||
"\0\u02ac\0\u02be\0\u02d0\0\242\0\242\0\u02e2\0\u01f8\0\u021c"+
|
||||
"\0\u02f4\0\u01f8\0\u0306\0\242";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[60];
|
||||
@@ -197,39 +208,43 @@ class _KDocLexer implements FlexLexer {
|
||||
return j;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* The transition table of the DFA
|
||||
*/
|
||||
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\11\12\1\0\1\13\1\14\4\12\1\15\1\16\3\15"+
|
||||
"\1\17\1\15\1\20\1\21\1\16\1\15\1\22\1\15"+
|
||||
"\1\23\3\15\1\16\3\15\1\17\1\15\1\20\1\21"+
|
||||
"\1\16\1\15\1\24\1\25\1\23\2\15\1\26\1\27"+
|
||||
"\1\26\1\30\1\26\1\31\3\26\1\27\1\26\1\32"+
|
||||
"\5\26\1\27\3\26\1\33\3\26\1\27\1\26\1\32"+
|
||||
"\11\12\3\0\1\13\1\14\4\12\1\15\1\16\3\15"+
|
||||
"\1\17\1\15\1\20\1\21\1\16\1\0\1\16\1\15"+
|
||||
"\1\22\1\15\1\23\3\15\1\16\3\15\1\17\1\15"+
|
||||
"\1\20\1\21\1\16\1\0\1\16\1\15\1\24\1\25"+
|
||||
"\1\23\2\15\1\26\1\27\1\26\1\30\1\26\1\31"+
|
||||
"\3\26\1\27\1\0\1\27\1\26\1\32\5\26\1\27"+
|
||||
"\3\26\1\33\3\26\1\27\1\0\1\27\1\26\1\32"+
|
||||
"\4\26\1\15\1\16\3\15\1\17\1\15\1\20\1\21"+
|
||||
"\1\16\1\15\1\24\1\15\1\23\2\15\1\34\1\35"+
|
||||
"\7\34\1\35\1\34\1\36\5\34\1\35\5\34\1\37"+
|
||||
"\1\40\1\35\1\34\1\41\5\34\1\35\5\34\1\37"+
|
||||
"\1\40\1\35\1\34\1\36\4\34\33\0\1\42\16\0"+
|
||||
"\1\43\1\44\5\0\1\16\7\0\1\16\6\0\3\45"+
|
||||
"\1\46\1\45\1\0\1\47\11\45\7\0\1\50\20\0"+
|
||||
"\1\51\21\0\1\43\1\22\11\0\2\52\14\0\1\53"+
|
||||
"\15\0\1\27\7\0\1\27\10\0\3\30\16\0\1\54"+
|
||||
"\17\0\1\55\15\0\1\35\7\0\1\35\15\0\1\56"+
|
||||
"\20\0\1\57\21\0\1\43\1\41\17\0\1\60\4\0"+
|
||||
"\5\45\1\0\1\47\13\45\3\46\1\0\1\61\16\45"+
|
||||
"\1\0\1\47\7\45\1\62\1\45\7\0\1\63\20\0"+
|
||||
"\1\63\11\0\2\53\16\0\3\54\1\0\1\64\13\0"+
|
||||
"\3\55\1\0\1\65\20\0\1\66\20\0\1\66\7\0"+
|
||||
"\5\67\1\0\1\70\7\67\1\62\1\67\5\62\1\71"+
|
||||
"\11\62\1\72\11\63\1\0\6\63\1\0\1\66\7\0"+
|
||||
"\1\73\6\0\17\71\1\74\1\0\1\73\16\0";
|
||||
"\1\16\1\0\1\16\1\15\1\24\1\15\1\23\2\15"+
|
||||
"\1\34\1\35\7\34\1\35\1\0\1\35\1\34\1\36"+
|
||||
"\5\34\1\35\5\34\1\37\1\40\1\35\1\0\1\35"+
|
||||
"\1\34\1\41\5\34\1\35\5\34\1\37\1\40\1\35"+
|
||||
"\1\0\1\35\1\34\1\36\4\34\37\0\1\42\20\0"+
|
||||
"\1\43\1\44\5\0\1\16\7\0\1\16\1\0\1\16"+
|
||||
"\6\0\3\45\1\46\1\45\1\0\1\47\13\45\7\0"+
|
||||
"\1\50\22\0\1\51\25\0\1\43\1\22\11\0\2\52"+
|
||||
"\16\0\1\53\17\0\1\27\7\0\1\27\1\0\1\27"+
|
||||
"\10\0\3\30\20\0\1\54\21\0\1\55\17\0\1\35"+
|
||||
"\7\0\1\35\1\0\1\35\15\0\1\56\22\0\1\57"+
|
||||
"\25\0\1\43\1\41\21\0\1\60\4\0\5\45\1\0"+
|
||||
"\1\47\15\45\3\46\1\0\1\61\20\45\1\0\1\47"+
|
||||
"\11\45\1\62\1\45\7\0\1\63\22\0\1\63\13\0"+
|
||||
"\2\53\20\0\3\54\1\0\1\64\15\0\3\55\1\0"+
|
||||
"\1\65\22\0\1\66\22\0\1\66\11\0\5\67\1\0"+
|
||||
"\1\70\11\67\1\62\1\67\5\62\1\71\13\62\1\72"+
|
||||
"\11\63\3\0\6\63\1\0\1\66\7\0\1\73\1\0"+
|
||||
"\1\66\6\0\21\71\1\74\1\0\1\73\11\0\1\73"+
|
||||
"\6\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[704];
|
||||
int [] result = new int[792];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -253,13 +268,10 @@ class _KDocLexer implements FlexLexer {
|
||||
private static final int ZZ_UNKNOWN_ERROR = 0;
|
||||
private static final int ZZ_NO_MATCH = 1;
|
||||
private static final int ZZ_PUSHBACK_2BIG = 2;
|
||||
private static final char[] EMPTY_BUFFER = new char[0];
|
||||
private static final int YYEOF = -1;
|
||||
private static java.io.Reader zzReader = null; // Fake
|
||||
|
||||
/* error messages for the codes above */
|
||||
private static final String ZZ_ERROR_MSG[] = {
|
||||
"Unkown internal scanner error",
|
||||
private static final String[] ZZ_ERROR_MSG = {
|
||||
"Unknown internal scanner error",
|
||||
"Error: could not match input",
|
||||
"Error: pushback value was too large"
|
||||
};
|
||||
@@ -293,6 +305,9 @@ class _KDocLexer implements FlexLexer {
|
||||
return j;
|
||||
}
|
||||
|
||||
/** the input device */
|
||||
private java.io.Reader zzReader;
|
||||
|
||||
/** the current state of the DFA */
|
||||
private int zzState;
|
||||
|
||||
@@ -303,15 +318,9 @@ class _KDocLexer implements FlexLexer {
|
||||
the source of the yytext() string */
|
||||
private CharSequence zzBuffer = "";
|
||||
|
||||
/** this buffer may contains the current text array to be matched when it is cheap to acquire it */
|
||||
private char[] zzBufferArray;
|
||||
|
||||
/** the textposition at the last accepting state */
|
||||
private int zzMarkedPos;
|
||||
|
||||
/** the textposition at the last state to be included in yytext */
|
||||
private int zzPushbackPos;
|
||||
|
||||
/** the current text position in the buffer */
|
||||
private int zzCurrentPos;
|
||||
|
||||
@@ -365,17 +374,21 @@ class _KDocLexer implements FlexLexer {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Unpacks the compressed character translation table.
|
||||
*
|
||||
* @param packed the packed character translation table
|
||||
* @return the unpacked character translation table
|
||||
*/
|
||||
private static char [] zzUnpackCMap(String packed) {
|
||||
char [] map = new char[0x10000];
|
||||
int size = 0;
|
||||
for (int i = 0, length = packed.length(); i < length; i += 2) {
|
||||
size += packed.charAt(i);
|
||||
}
|
||||
char[] map = new char[size];
|
||||
int i = 0; /* index in packed string */
|
||||
int j = 0; /* index in unpacked array */
|
||||
while (i < 1608) {
|
||||
while (i < packed.length()) {
|
||||
int count = packed.charAt(i++);
|
||||
char value = packed.charAt(i++);
|
||||
do map[j++] = value; while (--count > 0);
|
||||
@@ -383,19 +396,17 @@ class _KDocLexer implements FlexLexer {
|
||||
return map;
|
||||
}
|
||||
|
||||
public final int getTokenStart(){
|
||||
public final int getTokenStart() {
|
||||
return zzStartRead;
|
||||
}
|
||||
|
||||
public final int getTokenEnd(){
|
||||
public final int getTokenEnd() {
|
||||
return getTokenStart() + yylength();
|
||||
}
|
||||
|
||||
public void reset(CharSequence buffer, int start, int end,int initialState){
|
||||
public void reset(CharSequence buffer, int start, int end, int initialState) {
|
||||
zzBuffer = buffer;
|
||||
zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
|
||||
zzCurrentPos = zzMarkedPos = zzStartRead = start;
|
||||
zzPushbackPos = 0;
|
||||
zzAtEOF = false;
|
||||
zzAtBOL = true;
|
||||
zzEndRead = end;
|
||||
@@ -452,7 +463,7 @@ class _KDocLexer implements FlexLexer {
|
||||
* @return the character at position pos
|
||||
*/
|
||||
public final char yycharat(int pos) {
|
||||
return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
|
||||
return zzBuffer.charAt(zzStartRead+pos);
|
||||
}
|
||||
|
||||
|
||||
@@ -536,8 +547,6 @@ class _KDocLexer implements FlexLexer {
|
||||
int zzMarkedPosL;
|
||||
int zzEndReadL = zzEndRead;
|
||||
CharSequence zzBufferL = zzBuffer;
|
||||
char[] zzBufferArrayL = zzBufferArray;
|
||||
char [] zzCMapL = ZZ_CMAP;
|
||||
|
||||
int [] zzTransL = ZZ_TRANS;
|
||||
int [] zzRowMapL = ZZ_ROWMAP;
|
||||
@@ -552,12 +561,20 @@ class _KDocLexer implements FlexLexer {
|
||||
|
||||
zzState = ZZ_LEXSTATE[zzLexicalState];
|
||||
|
||||
// set up zzAction for empty match case:
|
||||
int zzAttributes = zzAttrL[zzState];
|
||||
if ( (zzAttributes & 1) == 1 ) {
|
||||
zzAction = zzState;
|
||||
}
|
||||
|
||||
|
||||
zzForAction: {
|
||||
while (true) {
|
||||
|
||||
if (zzCurrentPosL < zzEndReadL)
|
||||
zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
|
||||
if (zzCurrentPosL < zzEndReadL) {
|
||||
zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
|
||||
zzCurrentPosL += Character.charCount(zzInput);
|
||||
}
|
||||
else if (zzAtEOF) {
|
||||
zzInput = YYEOF;
|
||||
break zzForAction;
|
||||
@@ -577,14 +594,15 @@ class _KDocLexer implements FlexLexer {
|
||||
break zzForAction;
|
||||
}
|
||||
else {
|
||||
zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
|
||||
zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
|
||||
zzCurrentPosL += Character.charCount(zzInput);
|
||||
}
|
||||
}
|
||||
int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
|
||||
int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ];
|
||||
if (zzNext == -1) break zzForAction;
|
||||
zzState = zzNext;
|
||||
|
||||
int zzAttributes = zzAttrL[zzState];
|
||||
zzAttributes = zzAttrL[zzState];
|
||||
if ( (zzAttributes & 1) == 1 ) {
|
||||
zzAction = zzState;
|
||||
zzMarkedPosL = zzCurrentPosL;
|
||||
@@ -597,129 +615,131 @@ class _KDocLexer implements FlexLexer {
|
||||
// store back cached position
|
||||
zzMarkedPos = zzMarkedPosL;
|
||||
|
||||
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
||||
case 15:
|
||||
{ yybegin(CODE_BLOCK_LINE_BEGINNING);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 21: break;
|
||||
case 10:
|
||||
{ yybegin(CODE_BLOCK_CONTENTS_BEGINNING);
|
||||
return KDocTokens.LEADING_ASTERISK;
|
||||
}
|
||||
case 22: break;
|
||||
case 1:
|
||||
{ return TokenType.BAD_CHARACTER;
|
||||
}
|
||||
case 23: break;
|
||||
case 14:
|
||||
{ yybegin(CONTENTS_BEGINNING);
|
||||
return KDocTokens.START;
|
||||
}
|
||||
case 24: break;
|
||||
case 2:
|
||||
{ yybegin(CONTENTS);
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
zzDoEOF();
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
||||
case 1:
|
||||
{ return TokenType.BAD_CHARACTER;
|
||||
}
|
||||
case 21: break;
|
||||
case 2:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 25: break;
|
||||
case 20:
|
||||
// lookahead expression with fixed base length
|
||||
zzMarkedPos = zzStartRead + 3;
|
||||
{ // Code fence end
|
||||
yybegin(CONTENTS);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 26: break;
|
||||
case 19:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_INLINE_LINK;
|
||||
}
|
||||
case 27: break;
|
||||
case 5:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 28: break;
|
||||
case 12:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_ESCAPED_CHAR;
|
||||
}
|
||||
case 29: break;
|
||||
case 16:
|
||||
{ yybegin(TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 30: break;
|
||||
case 4:
|
||||
{ yybegin(CONTENTS_BEGINNING);
|
||||
return KDocTokens.LEADING_ASTERISK;
|
||||
}
|
||||
case 31: break;
|
||||
case 9:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
yybegin(CODE_BLOCK_LINE_BEGINNING);
|
||||
return TokenType.WHITE_SPACE;
|
||||
}
|
||||
return KDocTokens.CODE_BLOCK_TEXT;
|
||||
}
|
||||
case 32: break;
|
||||
case 3:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
}
|
||||
case 22: break;
|
||||
case 3:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
yybegin(LINE_BEGINNING);
|
||||
return TokenType.WHITE_SPACE;
|
||||
} else {
|
||||
yybegin(yystate() == CONTENTS_BEGINNING? CONTENTS_BEGINNING:CONTENTS);
|
||||
return KDocTokens.TEXT; // internal white space
|
||||
}
|
||||
}
|
||||
case 33: break;
|
||||
case 18:
|
||||
// lookahead expression with fixed lookahead length
|
||||
yypushback(1);
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 34: break;
|
||||
case 17:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 35: break;
|
||||
case 11:
|
||||
{ if (isLastToken()) return KDocTokens.END;
|
||||
else return KDocTokens.TEXT;
|
||||
}
|
||||
case 36: break;
|
||||
case 7:
|
||||
{ yybegin(TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 37: break;
|
||||
case 13:
|
||||
{ KDocKnownTag tag = KDocKnownTag.Companion.findByTagName(zzBuffer.subSequence(zzStartRead, zzMarkedPos));
|
||||
yybegin(tag != null && tag.isReferenceRequired() ? TAG_BEGINNING : TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.TAG_NAME;
|
||||
}
|
||||
case 38: break;
|
||||
case 6:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
}
|
||||
case 23: break;
|
||||
case 4:
|
||||
{ yybegin(CONTENTS_BEGINNING);
|
||||
return KDocTokens.LEADING_ASTERISK;
|
||||
}
|
||||
case 24: break;
|
||||
case 5:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 25: break;
|
||||
case 6:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
yybegin(LINE_BEGINNING);
|
||||
}
|
||||
return TokenType.WHITE_SPACE;
|
||||
}
|
||||
case 39: break;
|
||||
case 8:
|
||||
{ yybegin(CODE_BLOCK);
|
||||
}
|
||||
case 26: break;
|
||||
case 7:
|
||||
{ yybegin(TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 27: break;
|
||||
case 8:
|
||||
{ yybegin(CODE_BLOCK);
|
||||
return KDocTokens.CODE_BLOCK_TEXT;
|
||||
}
|
||||
case 40: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
zzDoEOF();
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
}
|
||||
case 28: break;
|
||||
case 9:
|
||||
{ if (yytextContainLineBreaks()) {
|
||||
yybegin(CODE_BLOCK_LINE_BEGINNING);
|
||||
return TokenType.WHITE_SPACE;
|
||||
}
|
||||
return KDocTokens.CODE_BLOCK_TEXT;
|
||||
}
|
||||
case 29: break;
|
||||
case 10:
|
||||
{ yybegin(CODE_BLOCK_CONTENTS_BEGINNING);
|
||||
return KDocTokens.LEADING_ASTERISK;
|
||||
}
|
||||
case 30: break;
|
||||
case 11:
|
||||
{ if (isLastToken()) return KDocTokens.END;
|
||||
else return KDocTokens.TEXT;
|
||||
}
|
||||
case 31: break;
|
||||
case 12:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_ESCAPED_CHAR;
|
||||
}
|
||||
case 32: break;
|
||||
case 13:
|
||||
{ KDocKnownTag tag = KDocKnownTag.Companion.findByTagName(zzBuffer.subSequence(zzStartRead, zzMarkedPos));
|
||||
yybegin(tag != null && tag.isReferenceRequired() ? TAG_BEGINNING : TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.TAG_NAME;
|
||||
}
|
||||
case 33: break;
|
||||
case 14:
|
||||
{ yybegin(CONTENTS_BEGINNING);
|
||||
return KDocTokens.START;
|
||||
}
|
||||
case 34: break;
|
||||
case 15:
|
||||
{ yybegin(CODE_BLOCK_LINE_BEGINNING);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 35: break;
|
||||
case 16:
|
||||
{ yybegin(TAG_TEXT_BEGINNING);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 36: break;
|
||||
case 17:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 37: break;
|
||||
case 18:
|
||||
// lookahead expression with fixed lookahead length
|
||||
zzMarkedPos = Character.offsetByCodePoints
|
||||
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzMarkedPos, -1);
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_LINK;
|
||||
}
|
||||
case 38: break;
|
||||
case 19:
|
||||
{ yybegin(CONTENTS);
|
||||
return KDocTokens.MARKDOWN_INLINE_LINK;
|
||||
}
|
||||
case 39: break;
|
||||
case 20:
|
||||
// lookahead expression with fixed base length
|
||||
zzMarkedPos = Character.offsetByCodePoints
|
||||
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 3);
|
||||
{ // Code fence end
|
||||
yybegin(CONTENTS);
|
||||
return KDocTokens.TEXT;
|
||||
}
|
||||
case 40: break;
|
||||
default:
|
||||
zzScanError(ZZ_NO_MATCH);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,10 @@ import org.jetbrains.kotlin.lexer.KtTokens;
|
||||
%state LONG_TEMPLATE_ENTRY
|
||||
|
||||
DIGIT=[0-9]
|
||||
DIGIT_OR_UNDERSCORE = [_0-9]
|
||||
DIGITS = {DIGIT} {DIGIT_OR_UNDERSCORE}*
|
||||
HEX_DIGIT=[0-9A-Fa-f]
|
||||
HEX_DIGIT_OR_UNDERSCORE = [_0-9A-Fa-f]
|
||||
WHITE_SPACE_CHAR=[\ \n\t\f]
|
||||
|
||||
// TODO: prohibit '$' in identifiers?
|
||||
@@ -89,20 +92,20 @@ EOL_COMMENT="/""/"[^\n]*
|
||||
SHEBANG_COMMENT="#!"[^\n]*
|
||||
|
||||
INTEGER_LITERAL={DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BIN_INTEGER_LITERAL}
|
||||
DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT})*))({LONG_SUFFIX})?
|
||||
HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT})*({LONG_SUFFIX})?
|
||||
BIN_INTEGER_LITERAL=0[Bb]({DIGIT})*({LONG_SUFFIX})?
|
||||
DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT_OR_UNDERSCORE})*))({LONG_SUFFIX})?
|
||||
HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX})?
|
||||
BIN_INTEGER_LITERAL=0[Bb]({DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX})?
|
||||
LONG_SUFFIX=[Ll]
|
||||
|
||||
//FLOAT_LITERAL=(({FLOATING_POINT_LITERAL1})[Ff])|(({FLOATING_POINT_LITERAL2})[Ff])|(({FLOATING_POINT_LITERAL3})[Ff])|(({FLOATING_POINT_LITERAL4})[Ff])
|
||||
//DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Dd]?)|(({FLOATING_POINT_LITERAL2})[Dd]?)|(({FLOATING_POINT_LITERAL3})[Dd]?)|(({FLOATING_POINT_LITERAL4})[Dd])
|
||||
DOUBLE_LITERAL={FLOATING_POINT_LITERAL1}|{FLOATING_POINT_LITERAL2}|{FLOATING_POINT_LITERAL3}|{FLOATING_POINT_LITERAL4}
|
||||
FLOATING_POINT_LITERAL1=({DIGIT})+"."({DIGIT})+({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL2="."({DIGIT})+({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL3=({DIGIT})+({EXPONENT_PART})({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL4=({DIGIT})+({FLOATING_POINT_LITERAL_SUFFIX})
|
||||
FLOATING_POINT_LITERAL1=({DIGITS})"."({DIGIT_OR_UNDERSCORE})+({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL2="."({DIGITS})({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL3=({DIGITS})({EXPONENT_PART})({FLOATING_POINT_LITERAL_SUFFIX})?
|
||||
FLOATING_POINT_LITERAL4=({DIGITS})({FLOATING_POINT_LITERAL_SUFFIX})
|
||||
FLOATING_POINT_LITERAL_SUFFIX=[Ff]
|
||||
EXPONENT_PART=[Ee]["+""-"]?({DIGIT})*
|
||||
EXPONENT_PART=[Ee]["+""-"]?({DIGIT_OR_UNDERSCORE})*
|
||||
|
||||
CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
|
||||
// TODO: introduce symbols (e.g. 'foo) as another way to write string literals
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+10
-1
@@ -16,5 +16,14 @@ val array = array<Any>(
|
||||
1e1f,
|
||||
1.0e1f,
|
||||
1e-1f,
|
||||
1.0e-1f
|
||||
1.0e-1f,
|
||||
.1_1,
|
||||
3.141_592,
|
||||
1e1__3_7,
|
||||
1_0f,
|
||||
1e1_2f,
|
||||
2_2.0f,
|
||||
.3_3f,
|
||||
3.14_16f,
|
||||
6.022___137e+2_3f
|
||||
)
|
||||
+46
-1
@@ -112,5 +112,50 @@ JetFile: FloatingPointLiteral.kt
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('1.0e-1f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('.1_1')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('3.141_592')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('1e1__3_7')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('1_0f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('1e1_2f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('2_2.0f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('.3_3f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('3.14_16f')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
FLOAT_CONSTANT
|
||||
PsiElement(FLOAT_CONSTANT)('6.022___137e+2_3f')
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiElement(RPAR)(')')
|
||||
+13
-1
@@ -14,7 +14,19 @@ val array = array<Any>(
|
||||
0X1l,
|
||||
0b1l,
|
||||
0B1l,
|
||||
0
|
||||
0,
|
||||
1_2,
|
||||
12__34,
|
||||
0x1_2_3_4,
|
||||
0B0,
|
||||
0b0001_0010_0100_1000,
|
||||
1_2L,
|
||||
12__34l,
|
||||
0x1_2_3_4L,
|
||||
0B0L,
|
||||
0b0001_0010_0100_1000l,
|
||||
0xa_af1,
|
||||
0xa_af_1
|
||||
)
|
||||
|
||||
val a = 01
|
||||
+61
-1
@@ -102,6 +102,66 @@ JetFile: IntegerLiteral.kt
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1_2')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('12__34')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0x1_2_3_4')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0B0')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0b0001_0010_0100_1000')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1_2L')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('12__34l')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0x1_2_3_4L')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0B0L')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0b0001_0010_0100_1000l')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0xa_af1')
|
||||
PsiElement(COMMA)(',')
|
||||
PsiWhiteSpace('\n ')
|
||||
VALUE_ARGUMENT
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0xa_af_1')
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace('\n\n')
|
||||
@@ -115,4 +175,4 @@ JetFile: IntegerLiteral.kt
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('0')
|
||||
PsiErrorElement:Property getter or setter expected
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
Reference in New Issue
Block a user