fix PyMultiFileResolveTest: ellipsis must be handled by parser, not by lexer

This commit is contained in:
Dmitry Jemerov
2010-01-25 20:50:32 +03:00
parent 26054cefba
commit 7d260f1cbc
5 changed files with 302 additions and 299 deletions

View File

@@ -94,7 +94,6 @@ public class PyTokenTypes {
public static final PyElementType EQEQ = new PyElementType("EQEQ");// ==
public static final PyElementType NE = new PyElementType("NE");// !=
public static final PyElementType NE_OLD = new PyElementType("NE_OLD");// <>
public static final PyElementType ELLIPSIS = new PyElementType("ELLIPSIS"); // ...
// Delimiters
public static final PyElementType LPAR = new PyElementType("LPAR");// (

View File

@@ -151,7 +151,6 @@ TRIPLE_APOS_LITERAL = {THREE_APOS} {STRING_3CHAR_APOS}* {THREE_APOS}
"@" { return PyTokenTypes.AT; }
"," { return PyTokenTypes.COMMA; }
":" { return PyTokenTypes.COLON; }
"..." { return PyTokenTypes.ELLIPSIS; }
"." { return PyTokenTypes.DOT; }
"`" { return PyTokenTypes.TICK; }
"=" { return PyTokenTypes.EQ; }

View File

@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.4.3 on 25.01.10 15:43 */
/* The following code was generated by JFlex 1.4.3 on 25.01.10 20:44 */
/* It's an automatically generated code. Do not modify it. */
package com.jetbrains.python.lexer;
@@ -11,7 +11,7 @@ import com.jetbrains.python.PyTokenTypes;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 25.01.10 15:43 from the specification file
* on 25.01.10 20:44 from the specification file
* <tt>C:/JetBrains/IDEA/tools/lexer/../../python/src/com/jetbrains/python/lexer/Python.flex</tt>
*/
class _PythonLexer implements FlexLexer {
@@ -61,20 +61,19 @@ class _PythonLexer implements FlexLexer {
"\17\3\1\15\1\16\1\17\1\20\1\21\1\22\1\23"+
"\1\24\1\25\1\26\1\1\1\27\1\30\1\31\1\32"+
"\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42"+
"\1\2\4\0\1\2\1\43\1\0\1\44\1\0\1\45"+
"\6\10\1\46\1\47\1\50\16\3\1\51\7\3\1\52"+
"\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62"+
"\1\63\1\64\1\65\1\66\1\67\1\70\1\71\3\2"+
"\1\43\1\0\1\72\1\10\2\0\1\3\1\73\1\3"+
"\1\74\1\75\1\76\5\3\1\77\6\3\1\100\4\3"+
"\1\101\1\102\1\103\1\104\6\0\2\3\1\105\1\106"+
"\10\3\1\107\1\110\3\3\4\0\3\3\1\111\1\3"+
"\1\112\1\113\3\3\1\114\1\3\1\115\1\116\1\117"+
"\1\120\1\121\1\3\1\122\1\3\1\123\1\3\1\124"+
"\1\125";
"\1\2\4\0\1\2\1\43\1\0\1\44\1\45\6\10"+
"\1\46\1\47\1\50\16\3\1\51\7\3\1\52\1\53"+
"\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+
"\1\64\1\65\1\66\1\67\1\70\1\71\3\2\1\43"+
"\1\0\1\10\2\0\1\3\1\72\1\3\1\73\1\74"+
"\1\75\5\3\1\76\6\3\1\77\4\3\1\100\1\101"+
"\1\102\1\103\6\0\2\3\1\104\1\105\10\3\1\106"+
"\1\107\3\3\4\0\3\3\1\110\1\3\1\111\1\112"+
"\3\3\1\113\1\3\1\114\1\115\1\116\1\117\1\120"+
"\1\3\1\121\1\3\1\122\1\3\1\123\1\124";
private static int [] zzUnpackAction() {
int [] result = new int[201];
int [] result = new int[199];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -107,27 +106,26 @@ class _PythonLexer implements FlexLexer {
"\0\u09d8\0\u0a1e\0\u0a64\0\u0aaa\0\106\0\106\0\106\0\106"+
"\0\106\0\106\0\106\0\106\0\106\0\106\0\106\0\106"+
"\0\u0af0\0\u0b36\0\u0b7c\0\u0bc2\0\u0c08\0\106\0\u0c4e\0\u0c94"+
"\0\106\0\u0cda\0\106\0\u0d20\0\u0d66\0\u0dac\0\u0df2\0\u0e38"+
"\0\u0e7e\0\u0118\0\u0118\0\u0118\0\u0ec4\0\u0f0a\0\u0f50\0\u0f96"+
"\0\106\0\106\0\u0cda\0\u0d20\0\u0d66\0\u0dac\0\u0df2\0\u0e38"+
"\0\u0118\0\u0118\0\u0118\0\u0e7e\0\u0ec4\0\u0f0a\0\u0f50\0\u0f96"+
"\0\u0fdc\0\u1022\0\u1068\0\u10ae\0\u10f4\0\u113a\0\u1180\0\u11c6"+
"\0\u120c\0\u1252\0\u0118\0\u1298\0\u12de\0\u1324\0\u136a\0\u13b0"+
"\0\u13f6\0\u143c\0\106\0\106\0\106\0\u1482\0\106\0\u14c8"+
"\0\106\0\106\0\106\0\106\0\106\0\u150e\0\106\0\106"+
"\0\u1554\0\106\0\u159a\0\u15e0\0\u1626\0\u166c\0\u16b2\0\106"+
"\0\106\0\u16f8\0\u173e\0\u1784\0\u0118\0\u17ca\0\u0118\0\u0118"+
"\0\u0118\0\u1810\0\u1856\0\u189c\0\u18e2\0\u1928\0\u0118\0\u196e"+
"\0\u19b4\0\u19fa\0\u1a40\0\u1a86\0\u1acc\0\u0118\0\u1b12\0\u1b58"+
"\0\u1b9e\0\u1be4\0\106\0\106\0\106\0\106\0\u1c2a\0\u1c70"+
"\0\u1cb6\0\u1cfc\0\u1d42\0\u1d88\0\u1dce\0\u1e14\0\u0118\0\u0118"+
"\0\u1e5a\0\u1ea0\0\u1ee6\0\u1f2c\0\u1f72\0\u1fb8\0\u1ffe\0\u2044"+
"\0\u0118\0\u0118\0\u208a\0\u20d0\0\u2116\0\u215c\0\u21a2\0\u21e8"+
"\0\u222e\0\u2274\0\u22ba\0\u2300\0\u0118\0\u2346\0\u0118\0\u0118"+
"\0\u238c\0\u23d2\0\u2418\0\u0118\0\u245e\0\u0118\0\u0118\0\u0118"+
"\0\u0118\0\u0118\0\u24a4\0\u0118\0\u24ea\0\u0118\0\u2530\0\u0118"+
"\0\u0118";
"\0\u120c\0\u0118\0\u1252\0\u1298\0\u12de\0\u1324\0\u136a\0\u13b0"+
"\0\u13f6\0\106\0\106\0\106\0\u143c\0\106\0\u1482\0\106"+
"\0\106\0\106\0\106\0\106\0\u14c8\0\106\0\106\0\u150e"+
"\0\106\0\u1554\0\u159a\0\u15e0\0\u1626\0\u166c\0\106\0\u16b2"+
"\0\u16f8\0\u173e\0\u0118\0\u1784\0\u0118\0\u0118\0\u0118\0\u17ca"+
"\0\u1810\0\u1856\0\u189c\0\u18e2\0\u0118\0\u1928\0\u196e\0\u19b4"+
"\0\u19fa\0\u1a40\0\u1a86\0\u0118\0\u1acc\0\u1b12\0\u1b58\0\u1b9e"+
"\0\106\0\106\0\106\0\106\0\u1be4\0\u1c2a\0\u1c70\0\u1cb6"+
"\0\u1cfc\0\u1d42\0\u1d88\0\u1dce\0\u0118\0\u0118\0\u1e14\0\u1e5a"+
"\0\u1ea0\0\u1ee6\0\u1f2c\0\u1f72\0\u1fb8\0\u1ffe\0\u0118\0\u0118"+
"\0\u2044\0\u208a\0\u20d0\0\u2116\0\u215c\0\u21a2\0\u21e8\0\u222e"+
"\0\u2274\0\u22ba\0\u0118\0\u2300\0\u0118\0\u0118\0\u2346\0\u238c"+
"\0\u23d2\0\u0118\0\u2418\0\u0118\0\u0118\0\u0118\0\u0118\0\u0118"+
"\0\u245e\0\u0118\0\u24a4\0\u0118\0\u24ea\0\u0118\0\u0118";
private static int [] zzUnpackRowMap() {
int [] result = new int[201];
int [] result = new int[199];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -168,180 +166,180 @@ class _PythonLexer implements FlexLexer {
"\11\5\2\0\1\5\1\0\1\5\1\0\2\5\1\13"+
"\1\14\1\0\1\16\1\5\3\0\5\5\1\13\17\5"+
"\27\0\13\7\1\0\72\7\13\0\1\10\73\0\3\77"+
"\1\0\1\77\7\0\1\102\150\0\1\103\26\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\1\14\1\0"+
"\1\16\1\5\3\0\25\5\27\0\13\104\1\0\7\104"+
"\1\105\1\106\61\104\13\107\1\0\10\107\1\110\1\111"+
"\60\107\1\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\1\5\1\112\1\5\1\113"+
"\11\5\1\114\3\5\1\115\3\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\1\5\1\116\1\5\1\117\21\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\13\5\1\120\11\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\4\5\1\121"+
"\20\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\12\5\1\122\3\5\1\123"+
"\6\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\1\14\1\0\1\16\1\5\3\0\1\124\3\5"+
"\1\125\20\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\5\5\1\126\17\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\2\5"+
"\1\13\1\14\1\0\1\16\1\5\3\0\5\5\1\127"+
"\17\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\12\5\1\130\1\131\11\5"+
"\1\0\1\77\160\0\1\102\26\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\1\14\1\0\1\16\1\5"+
"\3\0\25\5\27\0\13\103\1\0\7\103\1\104\1\105"+
"\61\103\13\106\1\0\10\106\1\107\1\110\60\106\1\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\1\5\1\111\1\5\1\112\11\5\1\113"+
"\3\5\1\114\3\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\1\5\1\115"+
"\1\5\1\116\21\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\13\5\1\117"+
"\11\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\4\5\1\120\20\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\12\5\1\121\3\5\1\122\6\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\1\14"+
"\1\0\1\16\1\5\3\0\1\123\3\5\1\124\20\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\1\132\24\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\5\5\1\133\17\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\134\3\0\5\5\1\135"+
"\5\5\1\136\11\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\1\137\24\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\140\3\0\25\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\12\5"+
"\1\141\12\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\24\5\1\142\107\0"+
"\1\143\105\0\1\144\105\0\1\145\1\146\104\0\1\147"+
"\1\0\1\150\103\0\1\151\105\0\1\152\105\0\1\153"+
"\105\0\1\154\105\0\1\155\6\0\1\156\76\0\1\157"+
"\6\0\1\160\1\161\75\0\1\162\26\0\1\71\1\72"+
"\1\71\1\0\1\71\3\0\1\76\3\0\1\77\1\100"+
"\1\0\1\101\15\0\1\100\5\0\1\76\42\0\3\72"+
"\1\0\1\72\7\0\1\77\1\100\1\0\1\101\15\0"+
"\1\100\50\0\5\163\2\0\1\163\5\0\1\163\13\0"+
"\1\163\1\0\1\163\1\0\1\163\2\0\1\163\1\0"+
"\1\163\3\0\1\163\37\0\1\164\1\0\1\164\1\0"+
"\1\164\101\0\1\165\3\0\1\165\101\0\3\77\1\0"+
"\1\77\10\0\1\100\1\0\1\101\15\0\1\100\50\0"+
"\3\166\1\0\1\166\11\0\1\167\37\0\1\167\43\0"+
"\1\170\70\0\13\104\1\0\7\104\1\171\1\106\61\104"+
"\23\0\1\172\62\0\106\104\13\107\1\0\10\107\1\110"+
"\1\171\166\107\25\0\1\173\61\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\17\5"+
"\1\174\5\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\2\5\1\175\22\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\3\5\1\176\21\5\30\0\11\5"+
"\3\0\1\5\3\0\5\5\1\125\17\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\2\5\1\13\1\14"+
"\1\0\1\16\1\5\3\0\5\5\1\126\17\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\12\5\1\127\1\130\11\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\6\5\1\177\16\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\12\5"+
"\1\200\2\5\1\201\7\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\202\3\0\3\5"+
"\1\203\21\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\11\5\1\204\13\5"+
"\3\0\1\131\24\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\5\5\1\132"+
"\17\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\133\3\0\5\5\1\134\5\5\1\135"+
"\11\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\1\136\24\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\137"+
"\3\0\25\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\12\5\1\140\12\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\205\3\0\25\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\6\5"+
"\1\206\16\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\20\5\1\207\4\5"+
"\3\0\1\5\3\0\24\5\1\141\107\0\1\142\105\0"+
"\1\143\105\0\1\144\1\145\104\0\1\146\1\0\1\147"+
"\103\0\1\150\105\0\1\151\105\0\1\152\105\0\1\153"+
"\105\0\1\154\6\0\1\155\76\0\1\156\6\0\1\157"+
"\1\160\75\0\1\161\26\0\1\71\1\72\1\71\1\0"+
"\1\71\3\0\1\76\3\0\1\77\1\100\1\0\1\101"+
"\15\0\1\100\5\0\1\76\42\0\3\72\1\0\1\72"+
"\7\0\1\77\1\100\1\0\1\101\15\0\1\100\50\0"+
"\5\162\2\0\1\162\5\0\1\162\13\0\1\162\1\0"+
"\1\162\1\0\1\162\2\0\1\162\1\0\1\162\3\0"+
"\1\162\37\0\1\163\1\0\1\163\1\0\1\163\101\0"+
"\1\164\3\0\1\164\101\0\3\77\1\0\1\77\10\0"+
"\1\100\1\0\1\101\15\0\1\100\50\0\3\165\1\0"+
"\1\165\11\0\1\166\37\0\1\166\26\0\13\103\1\0"+
"\7\103\1\167\1\105\61\103\23\0\1\170\62\0\106\103"+
"\13\106\1\0\10\106\1\107\1\167\166\106\25\0\1\171"+
"\61\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\17\5\1\172\5\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\2\5\1\173\22\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\3\5"+
"\1\174\21\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\6\5\1\175\16\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\1\14\1\0\1\16\1\5\3\0\4\5\1\210\20\5"+
"\3\0\1\5\3\0\12\5\1\176\2\5\1\177\7\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\1\211\24\5\30\0\11\5\2\0"+
"\3\0\1\200\3\0\3\5\1\201\21\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\11\5\1\202\13\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\203\3\0\25\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\6\5\1\204\16\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\20\5\1\205\4\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\1\14\1\0\1\16\1\5"+
"\3\0\4\5\1\206\20\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\1\207"+
"\24\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\1\5\1\210\23\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\21\5\1\211\3\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\1\5\1\212\23\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\21\5\1\213"+
"\3\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\1\5\1\214\23\5\30\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\13\5\1\213"+
"\11\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\5\5\1\214\17\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\13\5\1\215\11\5\30\0\11\5\2\0"+
"\1\5\3\0\3\5\1\215\21\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\5\5\1\216\17\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\3\5\1\217"+
"\21\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\4\5\1\220\20\5\30\0"+
"\4\5\1\216\20\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\13\5\1\217"+
"\11\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\220\3\0\25\5\107\0\1\221\105\0"+
"\1\222\105\0\1\223\105\0\1\224\26\0\5\162\2\0"+
"\1\162\1\76\4\0\1\162\13\0\1\162\1\0\1\162"+
"\1\0\1\162\2\0\1\162\1\0\1\162\1\76\2\0"+
"\1\162\37\0\1\163\1\0\1\163\1\0\1\163\3\0"+
"\1\76\32\0\1\76\42\0\1\164\3\0\1\164\3\0"+
"\1\76\32\0\1\76\42\0\3\165\1\0\1\165\12\0"+
"\1\101\66\0\3\165\1\0\1\165\100\0\23\170\1\225"+
"\1\226\1\170\1\227\57\170\24\171\1\230\1\231\1\232"+
"\57\171\1\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\13\5\1\233\11\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\13\5\1\221\11\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\222\3\0"+
"\25\5\107\0\1\223\105\0\1\224\105\0\1\225\105\0"+
"\1\226\26\0\5\163\2\0\1\163\1\76\4\0\1\163"+
"\13\0\1\163\1\0\1\163\1\0\1\163\2\0\1\163"+
"\1\0\1\163\1\76\2\0\1\163\37\0\1\164\1\0"+
"\1\164\1\0\1\164\3\0\1\76\32\0\1\76\42\0"+
"\1\165\3\0\1\165\3\0\1\76\32\0\1\76\42\0"+
"\3\166\1\0\1\166\12\0\1\101\66\0\3\166\1\0"+
"\1\166\100\0\23\172\1\227\1\230\1\172\1\231\57\172"+
"\24\173\1\232\1\233\1\234\57\173\1\0\11\5\2\0"+
"\1\5\3\0\4\5\1\234\20\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\13\5\1\235\11\5\30\0\11\5\2\0\1\5\1\0"+
"\15\5\1\235\7\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\4\5\1\236"+
"\20\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\15\5\1\237\7\5\30\0"+
"\3\5\3\0\1\5\3\0\4\5\1\237\20\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\4\5\1\240\20\5\30\0\11\5\2\0"+
"\1\5\3\0\3\5\1\240\21\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\4\5\1\241\20\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\3\5\1\242"+
"\21\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\14\5\1\243\10\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\1\244\24\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\3\5"+
"\1\245\21\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\6\5\1\246\16\5"+
"\14\5\1\241\10\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\1\242\24\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\7\5\1\247\15\5\30\0\11\5"+
"\3\0\1\5\3\0\3\5\1\243\21\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\1\250\24\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\21\5\1\251"+
"\3\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\3\5\1\252\21\5\30\0"+
"\3\0\6\5\1\244\16\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\7\5"+
"\1\245\15\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\1\246\24\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\12\5\1\253\12\5\30\0\11\5\2\0"+
"\1\5\3\0\21\5\1\247\3\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\7\5\1\254\15\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\12\5\1\255"+
"\12\5\27\0\23\172\1\256\1\230\1\172\1\257\210\172"+
"\1\257\1\230\1\172\1\257\57\172\132\173\1\232\1\260"+
"\1\261\103\173\1\232\2\261\57\173\1\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\5\5\1\262\17\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\5\5\1\263"+
"\17\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\17\5\1\264\5\5\30\0"+
"\3\5\1\250\21\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\12\5\1\251"+
"\12\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\7\5\1\252\15\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\4\5\1\265\20\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\5\5\1\266\17\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\10\5\1\267"+
"\14\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\3\5\1\270\21\5\30\0"+
"\1\5\3\0\12\5\1\253\12\5\27\0\23\170\1\254"+
"\1\226\1\170\1\255\210\170\1\255\1\226\1\170\1\255"+
"\57\170\132\171\1\230\1\256\1\257\103\171\1\230\2\257"+
"\57\171\1\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\5\5\1\260\17\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\271\3\0\25\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\3\0\5\5\1\261\17\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\17\5\1\262\5\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\4\5\1\263"+
"\20\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\5\5\1\264\17\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\10\5\1\265\14\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\3\5\1\266\21\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\267\3\0\25\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\2\5\1\270\22\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\12\5\1\271\12\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\2\5\1\272"+
"\22\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\12\5\1\273\12\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\2\5\1\274\22\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\1\275\24\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\4\5\1\276\20\5"+
"\27\0\23\172\1\171\1\230\1\172\1\0\102\172\1\0"+
"\1\230\1\172\1\0\57\172\24\173\1\232\1\171\1\0"+
"\103\173\1\232\2\0\57\173\1\0\11\5\2\0\1\5"+
"\3\5\3\0\1\5\3\0\1\273\24\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\4\5\1\274\20\5\27\0\23\170\1\167\1\226"+
"\1\170\1\0\102\170\1\0\1\226\1\170\1\0\57\170"+
"\24\171\1\230\1\167\1\0\103\171\1\230\2\0\57\171"+
"\1\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\6\5\1\275\16\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\6\5\1\276\16\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\6\5"+
"\1\277\16\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\6\5\1\300\16\5"+
"\1\0\3\5\3\0\1\5\3\0\1\5\1\300\23\5"+
"\30\0\11\5\2\0\1\5\1\0\1\5\1\0\3\5"+
"\3\0\1\5\3\0\6\5\1\301\16\5\30\0\11\5"+
"\3\0\1\5\3\0\1\5\1\301\23\5\30\0\11\5"+
"\2\0\1\5\1\0\1\5\1\0\3\5\3\0\1\5"+
"\3\0\1\5\1\302\23\5\30\0\11\5\2\0\1\5"+
"\1\0\1\5\1\0\3\5\3\0\1\5\3\0\1\5"+
"\1\303\23\5\30\0\11\5\2\0\1\5\1\0\1\5"+
"\1\0\3\5\3\0\1\5\3\0\1\304\24\5\30\0"+
"\3\0\1\302\24\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\12\5\1\303"+
"\12\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\12\5\1\304\12\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\12\5\1\305\12\5\30\0\11\5\2\0"+
"\1\5\3\0\14\5\1\305\10\5\30\0\11\5\2\0"+
"\1\5\1\0\1\5\1\0\3\5\3\0\1\5\3\0"+
"\12\5\1\306\12\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\14\5\1\307"+
"\10\5\30\0\11\5\2\0\1\5\1\0\1\5\1\0"+
"\3\5\3\0\1\5\3\0\20\5\1\310\4\5\30\0"+
"\11\5\2\0\1\5\1\0\1\5\1\0\3\5\3\0"+
"\1\5\3\0\4\5\1\311\20\5\27\0";
"\20\5\1\306\4\5\30\0\11\5\2\0\1\5\1\0"+
"\1\5\1\0\3\5\3\0\1\5\3\0\4\5\1\307"+
"\20\5\27\0";
private static int [] zzUnpackTrans() {
int [] result = new int[9590];
int [] result = new int[9520];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -383,13 +381,13 @@ class _PythonLexer implements FlexLexer {
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\1\0\1\11\12\1\1\11\2\1\3\11\32\1\14\11"+
"\1\1\4\0\1\11\1\1\1\0\1\11\1\0\1\11"+
"\37\1\3\11\1\1\1\11\1\1\5\11\1\1\2\11"+
"\1\1\1\11\4\1\1\0\2\11\2\0\27\1\4\11"+
"\6\0\21\1\4\0\30\1";
"\1\1\4\0\1\11\1\1\1\0\2\11\37\1\3\11"+
"\1\1\1\11\1\1\5\11\1\1\2\11\1\1\1\11"+
"\4\1\1\0\1\11\2\0\27\1\4\11\6\0\21\1"+
"\4\0\30\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[201];
int [] result = new int[199];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -706,346 +704,342 @@ class _PythonLexer implements FlexLexer {
zzMarkedPos = zzMarkedPosL;
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 76:
case 75:
{ return PyTokenTypes.YIELD_KEYWORD;
}
case 86: break;
case 85: break;
case 2:
{ return PyTokenTypes.INTEGER_LITERAL;
}
case 87: break;
case 86: break;
case 16:
{ return PyTokenTypes.DIV;
}
case 88: break;
case 87: break;
case 17:
{ return PyTokenTypes.PERC;
}
case 89: break;
case 88: break;
case 9:
{ return PyTokenTypes.BACKSLASH;
}
case 90: break;
case 89: break;
case 25:
{ return PyTokenTypes.RPAR;
}
case 91: break;
case 90: break;
case 1:
{ return PyTokenTypes.BAD_CHARACTER;
}
case 92: break;
case 91: break;
case 28:
{ return PyTokenTypes.LBRACE;
}
case 93: break;
case 92: break;
case 7:
{ return PyTokenTypes.MINUS;
}
case 94: break;
case 74:
case 93: break;
case 73:
{ return PyTokenTypes.BREAK_KEYWORD;
}
case 95: break;
case 94: break;
case 27:
{ return PyTokenTypes.RBRACKET;
}
case 96: break;
case 95: break;
case 6:
{ return PyTokenTypes.DOT;
}
case 97: break;
case 96: break;
case 3:
{ return PyTokenTypes.IDENTIFIER;
}
case 98: break;
case 97: break;
case 24:
{ return PyTokenTypes.LPAR;
}
case 99: break;
case 98: break;
case 22:
{ return PyTokenTypes.LT;
}
case 100: break;
case 99: break;
case 38:
{ return PyTokenTypes.IN_KEYWORD;
}
case 101: break;
case 73:
case 100: break;
case 72:
{ return PyTokenTypes.RAISE_KEYWORD;
}
case 102: break;
case 101: break;
case 8:
{ return PyTokenTypes.STRING_LITERAL;
}
case 103: break;
case 67:
case 102: break;
case 66:
{ return PyTokenTypes.GTGTEQ;
}
case 104: break;
case 103: break;
case 10:
{ return PyTokenTypes.SPACE;
}
case 105: break;
case 80:
case 104: break;
case 79:
{ return PyTokenTypes.EXCEPT_KEYWORD;
}
case 106: break;
case 105: break;
case 36:
{ return PyTokenTypes.IMAGINARY_LITERAL;
}
case 107: break;
case 106: break;
case 12:
{ return PyTokenTypes.FORMFEED;
}
case 108: break;
case 107: break;
case 34:
{ return PyTokenTypes.SEMICOLON;
}
case 109: break;
case 108: break;
case 21:
{ return PyTokenTypes.GT;
}
case 110: break;
case 109: break;
case 26:
{ return PyTokenTypes.LBRACKET;
}
case 111: break;
case 110: break;
case 32:
{ return PyTokenTypes.COLON;
}
case 112: break;
case 68:
case 111: break;
case 67:
{ return PyTokenTypes.LTLTEQ;
}
case 113: break;
case 112: break;
case 19:
{ return PyTokenTypes.OR;
}
case 114: break;
case 70:
case 113: break;
case 69:
{ return PyTokenTypes.ELSE_KEYWORD;
}
case 115: break;
case 114: break;
case 44:
{ return PyTokenTypes.MULTEQ;
}
case 116: break;
case 84:
case 115: break;
case 83:
{ return PyTokenTypes.FINALLY_KEYWORD;
}
case 117: break;
case 77:
case 116: break;
case 76:
{ return PyTokenTypes.WHILE_KEYWORD;
}
case 118: break;
case 117: break;
case 15:
{ return PyTokenTypes.MULT;
}
case 119: break;
case 79:
case 118: break;
case 78:
{ return PyTokenTypes.ASSERT_KEYWORD;
}
case 120: break;
case 119: break;
case 47:
{ return PyTokenTypes.FLOORDIV;
}
case 121: break;
case 83:
case 120: break;
case 82:
{ return PyTokenTypes.GLOBAL_KEYWORD;
}
case 122: break;
case 82:
case 121: break;
case 81:
{ return PyTokenTypes.LAMBDA_KEYWORD;
}
case 123: break;
case 122: break;
case 51:
{ return PyTokenTypes.XOREQ;
}
case 124: break;
case 64:
case 123: break;
case 63:
{ return PyTokenTypes.FOR_KEYWORD;
}
case 125: break;
case 124: break;
case 30:
{ return PyTokenTypes.AT;
}
case 126: break;
case 60:
case 125: break;
case 59:
{ return PyTokenTypes.NOT_KEYWORD;
}
case 127: break;
case 126: break;
case 13:
{ return PyTokenTypes.PLUS;
}
case 128: break;
case 127: break;
case 37:
{ return PyTokenTypes.MINUSEQ;
}
case 129: break;
case 128: break;
case 57:
{ return PyTokenTypes.NE;
}
case 130: break;
case 129: break;
case 31:
{ return PyTokenTypes.COMMA;
}
case 131: break;
case 130: break;
case 43:
{ return PyTokenTypes.EQEQ;
}
case 132: break;
case 131: break;
case 33:
{ return PyTokenTypes.TICK;
}
case 133: break;
case 132: break;
case 45:
{ return PyTokenTypes.EXP;
}
case 134: break;
case 85:
case 133: break;
case 84:
{ return PyTokenTypes.CONTINUE_KEYWORD;
}
case 135: break;
case 134: break;
case 56:
{ return PyTokenTypes.LTLT;
}
case 136: break;
case 135: break;
case 54:
{ return PyTokenTypes.LE;
}
case 137: break;
case 59:
case 136: break;
case 58:
{ return PyTokenTypes.AND_KEYWORD;
}
case 138: break;
case 137: break;
case 41:
{ return PyTokenTypes.OR_KEYWORD;
}
case 139: break;
case 72:
case 138: break;
case 71:
{ return PyTokenTypes.PASS_KEYWORD;
}
case 140: break;
case 139: break;
case 4:
{ return PyTokenTypes.END_OF_LINE_COMMENT;
}
case 141: break;
case 140: break;
case 50:
{ return PyTokenTypes.OREQ;
}
case 142: break;
case 141: break;
case 53:
{ return PyTokenTypes.GTGT;
}
case 143: break;
case 142: break;
case 18:
{ return PyTokenTypes.AND;
}
case 144: break;
case 143: break;
case 46:
{ return PyTokenTypes.DIVEQ;
}
case 145: break;
case 81:
case 144: break;
case 80:
{ return PyTokenTypes.RETURN_KEYWORD;
}
case 146: break;
case 78:
case 145: break;
case 77:
{ return PyTokenTypes.IMPORT_KEYWORD;
}
case 147: break;
case 146: break;
case 52:
{ return PyTokenTypes.GE;
}
case 148: break;
case 147: break;
case 42:
{ return PyTokenTypes.PLUSEQ;
}
case 149: break;
case 62:
case 148: break;
case 61:
{ return PyTokenTypes.DEF_KEYWORD;
}
case 150: break;
case 149: break;
case 39:
{ return PyTokenTypes.IS_KEYWORD;
}
case 151: break;
case 58:
{ return PyTokenTypes.ELLIPSIS;
}
case 152: break;
case 150: break;
case 35:
{ return PyTokenTypes.FLOAT_LITERAL;
}
case 153: break;
case 66:
case 151: break;
case 65:
{ return PyTokenTypes.FLOORDIVEQ;
}
case 154: break;
case 152: break;
case 5:
{ return PyTokenTypes.LINE_BREAK;
}
case 155: break;
case 153: break;
case 48:
{ return PyTokenTypes.PERCEQ;
}
case 156: break;
case 63:
case 154: break;
case 62:
{ return PyTokenTypes.TRY_KEYWORD;
}
case 157: break;
case 155: break;
case 49:
{ return PyTokenTypes.ANDEQ;
}
case 158: break;
case 156: break;
case 14:
{ return PyTokenTypes.EQ;
}
case 159: break;
case 71:
case 157: break;
case 70:
{ return PyTokenTypes.FROM_KEYWORD;
}
case 160: break;
case 65:
case 158: break;
case 64:
{ return PyTokenTypes.EXPEQ;
}
case 161: break;
case 69:
case 159: break;
case 68:
{ return PyTokenTypes.ELIF_KEYWORD;
}
case 162: break;
case 160: break;
case 29:
{ return PyTokenTypes.RBRACE;
}
case 163: break;
case 75:
case 161: break;
case 74:
{ return PyTokenTypes.CLASS_KEYWORD;
}
case 164: break;
case 162: break;
case 40:
{ return PyTokenTypes.IF_KEYWORD;
}
case 165: break;
case 163: break;
case 11:
{ return PyTokenTypes.TAB;
}
case 166: break;
case 164: break;
case 55:
{ return PyTokenTypes.NE_OLD;
}
case 167: break;
case 165: break;
case 23:
{ return PyTokenTypes.TILDE;
}
case 168: break;
case 166: break;
case 20:
{ return PyTokenTypes.XOR;
}
case 169: break;
case 61:
case 167: break;
case 60:
{ return PyTokenTypes.DEL_KEYWORD;
}
case 170: break;
case 168: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;

View File

@@ -42,7 +42,7 @@ public class ExpressionParsing extends Parsing {
buildTokenElement(PyElementTypes.IMAGINARY_LITERAL_EXPRESSION, builder);
return true;
}
else if (firstToken == PyTokenTypes.NONE_KEYWORD || firstToken == PyTokenTypes.ELLIPSIS) {
else if (firstToken == PyTokenTypes.NONE_KEYWORD) {
buildTokenElement(PyElementTypes.NONE_LITERAL_EXPRESSION, builder);
return true;
}
@@ -74,6 +74,15 @@ public class ExpressionParsing extends Parsing {
parseReprExpression(builder);
return true;
}
else if (firstToken == PyTokenTypes.DOT) {
final PsiBuilder.Marker maybeEllipsis = builder.mark();
builder.advanceLexer();
if (matchToken(PyTokenTypes.DOT) && matchToken(PyTokenTypes.DOT)) {
maybeEllipsis.done(PyElementTypes.NONE_LITERAL_EXPRESSION);
return true;
}
maybeEllipsis.rollbackTo();
}
return false;
}

View File

@@ -5,7 +5,9 @@ PyFile:Ellipsis.py
PsiElement(Py:IDENTIFIER)('d')
PsiElement(Py:LBRACKET)('[')
PyNoneLiteralExpression
PsiElement(Py:ELLIPSIS)('...')
PsiElement(Py:DOT)('.')
PsiElement(Py:DOT)('.')
PsiElement(Py:DOT)('.')
PsiElement(Py:RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(Py:EQ)('=')