mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'master' of git@git.labs.intellij.net:idea/ultimate
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
|
||||
<id>Pythonid</id>
|
||||
<name>Python</name>
|
||||
<idea-version since-build="90.122"/>
|
||||
<idea-version since-build="94.192"/>
|
||||
<description>Smart editing for Python scripts</description>
|
||||
<version>2.2.1</version>
|
||||
<version>2.5</version>
|
||||
<depends>com.intellij.modules.ultimate</depends>
|
||||
<vendor url="http://www.jetbrains.com/idea/" logo="/com/jetbrains/python/python.png">JetBrains, Keith Lea</vendor>
|
||||
<change-notes>
|
||||
<![CDATA[
|
||||
<a href="http://www.jetbrains.net/confluence/display/PYH/Version+2.2+Release+Notes">Version 2.2 Release Notes</a>
|
||||
<a href="http://www.jetbrains.net/confluence/display/PYH/Version+2.5+Release+Notes">Version 2.5 Release Notes</a>
|
||||
]]>
|
||||
</change-notes>
|
||||
|
||||
|
||||
@@ -58,6 +58,8 @@ public interface PyElementTypes {
|
||||
|
||||
PyElementType NONLOCAL_STATEMENT = new PyElementType("NONLOCAL_STATEMENT", PyNonlocalStatementImpl.class);
|
||||
|
||||
PyElementType WITH_ITEM = new PyElementType("WITH_ITEM", PyWithItemImpl.class);
|
||||
|
||||
TokenSet STATEMENTS = TokenSet.create(EXPRESSION_STATEMENT, ASSIGNMENT_STATEMENT, AUG_ASSIGNMENT_STATEMENT, ASSERT_STATEMENT,
|
||||
BREAK_STATEMENT, CONTINUE_STATEMENT, DEL_STATEMENT, EXEC_STATEMENT, FOR_STATEMENT,
|
||||
FROM_IMPORT_STATEMENT, GLOBAL_STATEMENT, IMPORT_STATEMENT, IF_STATEMENT, PASS_STATEMENT,
|
||||
|
||||
@@ -144,7 +144,7 @@ public class PyTokenTypes {
|
||||
public static final TokenSet CLOSE_BRACES = TokenSet.create(RBRACKET, RBRACE, RPAR);
|
||||
|
||||
public static final TokenSet AUG_ASSIGN_OPERATIONS = TokenSet.create(PLUSEQ, MINUSEQ, MULTEQ, DIVEQ,
|
||||
PERCEQ, EXPEQ, GTGTEQ, LTLTEQ, ANDEQ, OREQ, XOREQ);
|
||||
PERCEQ, EXPEQ, GTGTEQ, LTLTEQ, ANDEQ, OREQ, XOREQ, FLOORDIVEQ);
|
||||
|
||||
public static final PyElementType BACKSLASH = new PyElementType("BACKSLASH");
|
||||
|
||||
|
||||
@@ -30,7 +30,9 @@ LONGINTEGER = {INTEGER}[Ll]
|
||||
|
||||
END_OF_LINE_COMMENT="#"[^\r\n]*
|
||||
|
||||
IDENTIFIER = [a-zA-Z_][a-zA-Z0-9_]*
|
||||
IDENT_START = [a-zA-Z_]|[:unicode_uppercase_letter:]|[:unicode_lowercase_letter:]|[:unicode_titlecase_letter:]|[:unicode_modifier_letter:]|[:unicode_other_letter:]|[:unicode_letter_number:]
|
||||
IDENT_CONTINUE = [a-zA-Z0-9_]|[:unicode_uppercase_letter:]|[:unicode_lowercase_letter:]|[:unicode_titlecase_letter:]|[:unicode_modifier_letter:]|[:unicode_other_letter:]|[:unicode_letter_number:]|[:unicode_non_spacing_mark:]|[:unicode_combining_spacing_mark:]|[:unicode_decimal_digit_number:]|[:unicode_connector_punctuation:]
|
||||
IDENTIFIER = {IDENT_START}{IDENT_CONTINUE}**
|
||||
|
||||
FLOATNUMBER=({POINTFLOAT})|({EXPONENTFLOAT})
|
||||
POINTFLOAT=(({INTPART})?{FRACTION})|({INTPART}\.)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 25.01.10 20:44 */
|
||||
/* The following code was generated by JFlex 1.4.3 on 26.01.10 16:53 */
|
||||
|
||||
/* 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 20:44 from the specification file
|
||||
* on 26.01.10 16:53 from the specification file
|
||||
* <tt>C:/JetBrains/IDEA/tools/lexer/../../python/src/com/jetbrains/python/lexer/Python.flex</tt>
|
||||
*/
|
||||
class _PythonLexer implements FlexLexer {
|
||||
@@ -35,15 +35,173 @@ class _PythonLexer implements FlexLexer {
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\0\1\30\1\13\1\0\1\31\1\13\22\0\1\27\1\71\1\25"+
|
||||
"\1\12\1\0\1\63\1\64\1\23\1\73\1\74\1\61\1\57\1\102"+
|
||||
"\1\17\1\15\1\62\1\1\1\5\6\3\2\2\1\103\1\105\1\70"+
|
||||
"\1\60\1\67\1\0\1\101\1\4\1\10\2\4\1\16\1\4\3\14"+
|
||||
"\1\20\1\14\1\11\2\14\1\7\2\14\1\22\2\14\1\21\2\14"+
|
||||
"\1\6\2\14\1\75\1\24\1\76\1\66\1\14\1\104\1\32\1\41"+
|
||||
"\1\43\1\34\1\36\1\47\1\54\1\56\1\26\1\20\1\42\1\44"+
|
||||
"\1\53\1\33\1\45\1\51\1\14\1\37\1\35\1\40\1\46\1\14"+
|
||||
"\1\55\1\50\1\52\1\14\1\77\1\65\1\100\1\72\uff81\0";
|
||||
"\11\0\1\41\1\13\1\0\1\42\1\13\22\0\1\40\1\72\1\36"+
|
||||
"\1\12\1\0\1\64\1\65\1\34\1\74\1\75\1\62\1\60\1\103"+
|
||||
"\1\26\1\23\1\63\1\1\1\5\6\3\2\2\1\104\1\106\1\71"+
|
||||
"\1\61\1\70\1\0\1\102\1\15\1\20\2\15\1\25\1\15\3\14"+
|
||||
"\1\27\1\14\1\21\2\14\1\17\2\14\1\32\2\14\1\30\2\14"+
|
||||
"\1\16\2\14\1\76\1\35\1\77\1\67\1\14\1\105\1\43\1\10"+
|
||||
"\1\51\1\45\1\24\1\4\1\55\1\57\1\37\1\27\1\50\1\11"+
|
||||
"\1\54\1\44\1\7\1\52\1\14\1\33\1\46\1\47\1\31\1\14"+
|
||||
"\1\56\1\6\1\53\1\14\1\100\1\66\1\101\1\73\53\0\1\14"+
|
||||
"\12\0\1\14\4\0\1\14\5\0\27\14\1\0\7\14\30\14\1\0"+
|
||||
"\10\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\2\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\2\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\2\14"+
|
||||
"\1\14\1\14\1\14\1\14\3\14\2\14\1\14\1\14\1\14\2\14"+
|
||||
"\1\14\3\14\2\14\4\14\1\14\2\14\1\14\3\14\3\14\2\14"+
|
||||
"\1\14\2\14\1\14\1\14\1\14\1\14\1\14\2\14\1\14\1\14"+
|
||||
"\2\14\1\14\1\14\2\14\1\14\3\14\1\14\1\14\1\14\2\14"+
|
||||
"\2\14\1\14\1\14\3\14\4\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\2\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\2\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\3\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\4\14\31\0\140\14\22\14\4\0\14\14\16\0\5\14"+
|
||||
"\11\0\1\14\21\0\130\22\5\0\23\22\12\0\1\14\13\0\1\14"+
|
||||
"\1\0\3\14\1\0\1\14\1\0\2\14\1\14\21\14\1\0\11\14"+
|
||||
"\43\14\1\0\2\14\3\14\3\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\5\14\1\14"+
|
||||
"\1\14\1\0\1\14\1\14\2\14\1\14\4\0\60\14\60\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\0\4\22\3\0\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\2\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\0\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\2\0\1\14\1\14\6\0\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\41\0\46\14\2\0\1\14\7\0\47\14\11\0"+
|
||||
"\21\22\1\0\27\22\1\0\3\22\1\0\1\22\1\0\2\22\1\0"+
|
||||
"\1\22\13\0\33\14\5\0\3\14\35\0\6\22\13\0\32\14\5\0"+
|
||||
"\1\14\12\14\16\22\7\0\12\22\4\0\2\14\1\22\143\14\1\0"+
|
||||
"\1\14\7\22\2\0\6\22\2\14\2\22\1\0\4\22\2\14\12\22"+
|
||||
"\3\14\2\0\1\14\20\0\1\14\1\22\36\14\33\22\2\0\3\14"+
|
||||
"\60\0\46\14\13\22\1\14\u014f\0\2\22\1\22\66\14\2\0\1\22"+
|
||||
"\1\14\3\22\10\22\4\22\1\22\2\0\1\14\4\22\3\0\12\14"+
|
||||
"\2\22\2\0\12\22\21\0\1\22\2\22\1\0\10\14\2\0\2\14"+
|
||||
"\2\0\26\14\1\0\7\14\1\0\1\14\3\0\4\14\2\0\1\22"+
|
||||
"\1\14\3\22\4\22\2\0\2\22\2\0\2\22\1\22\11\0\1\22"+
|
||||
"\4\0\2\14\1\0\3\14\2\22\2\0\12\22\2\14\17\0\2\22"+
|
||||
"\1\22\1\0\6\14\4\0\2\14\2\0\26\14\1\0\7\14\1\0"+
|
||||
"\2\14\1\0\2\14\1\0\2\14\2\0\1\22\1\0\3\22\2\22"+
|
||||
"\4\0\2\22\2\0\3\22\13\0\4\14\1\0\1\14\7\0\12\22"+
|
||||
"\2\22\3\14\14\0\2\22\1\22\1\0\11\14\1\0\3\14\1\0"+
|
||||
"\26\14\1\0\7\14\1\0\2\14\1\0\5\14\2\0\1\22\1\14"+
|
||||
"\3\22\5\22\1\0\2\22\1\22\1\0\2\22\1\22\2\0\1\14"+
|
||||
"\17\0\2\14\2\22\2\0\12\22\21\0\1\22\2\22\1\0\10\14"+
|
||||
"\2\0\2\14\2\0\26\14\1\0\7\14\1\0\2\14\1\0\5\14"+
|
||||
"\2\0\1\22\1\14\1\22\1\22\1\22\3\22\3\0\2\22\2\0"+
|
||||
"\2\22\1\22\10\0\1\22\1\22\4\0\2\14\1\0\3\14\4\0"+
|
||||
"\12\22\1\0\1\14\20\0\1\22\1\14\1\0\6\14\3\0\3\14"+
|
||||
"\1\0\4\14\3\0\2\14\1\0\1\14\1\0\2\14\3\0\2\14"+
|
||||
"\3\0\3\14\3\0\10\14\1\0\3\14\4\0\2\22\1\22\2\22"+
|
||||
"\3\0\3\22\1\0\3\22\1\22\11\0\1\22\17\0\11\22\21\0"+
|
||||
"\3\22\1\0\10\14\1\0\3\14\1\0\27\14\1\0\12\14\1\0"+
|
||||
"\5\14\4\0\3\22\4\22\1\0\3\22\1\0\4\22\7\0\2\22"+
|
||||
"\11\0\2\14\4\0\12\22\22\0\2\22\1\0\10\14\1\0\3\14"+
|
||||
"\1\0\27\14\1\0\12\14\1\0\5\14\2\0\1\22\1\14\1\22"+
|
||||
"\1\22\5\22\1\0\1\22\2\22\1\0\2\22\2\22\7\0\2\22"+
|
||||
"\7\0\1\14\1\0\2\14\4\0\12\22\22\0\2\22\1\0\10\14"+
|
||||
"\1\0\3\14\1\0\27\14\1\0\20\14\4\0\3\22\3\22\2\0"+
|
||||
"\3\22\1\0\3\22\1\22\11\0\1\22\10\0\2\14\4\0\12\22"+
|
||||
"\22\0\2\22\1\0\22\14\3\0\30\14\1\0\11\14\1\0\1\14"+
|
||||
"\2\0\7\14\3\0\1\22\4\0\3\22\3\22\1\0\1\22\1\0"+
|
||||
"\10\22\22\0\2\22\15\0\60\14\1\22\2\14\7\22\5\0\6\14"+
|
||||
"\1\14\10\22\1\0\12\22\47\0\2\14\1\0\1\14\2\0\2\14"+
|
||||
"\1\0\1\14\2\0\1\14\6\0\4\14\1\0\7\14\1\0\3\14"+
|
||||
"\1\0\1\14\1\0\1\14\2\0\2\14\1\0\4\14\1\22\2\14"+
|
||||
"\6\22\1\0\2\22\1\14\2\0\5\14\1\0\1\14\1\0\6\22"+
|
||||
"\2\0\12\22\2\0\2\14\42\0\1\14\27\0\2\22\6\0\12\22"+
|
||||
"\13\0\1\22\1\0\1\22\1\0\1\22\4\0\2\22\10\14\1\0"+
|
||||
"\42\14\6\0\16\22\1\22\5\22\1\0\2\22\4\14\4\0\10\22"+
|
||||
"\1\0\44\22\11\0\1\22\71\0\42\14\1\0\5\14\1\0\2\14"+
|
||||
"\1\0\1\22\4\22\1\22\1\22\3\0\2\22\1\22\1\22\6\0"+
|
||||
"\12\22\6\0\6\14\2\22\2\22\106\0\46\14\12\0\51\14\7\0"+
|
||||
"\132\14\5\0\104\14\5\0\122\14\6\0\7\14\1\0\77\14\1\0"+
|
||||
"\1\14\1\0\4\14\2\0\7\14\1\0\1\14\1\0\4\14\2\0"+
|
||||
"\47\14\1\0\1\14\1\0\4\14\2\0\37\14\1\0\1\14\1\0"+
|
||||
"\4\14\2\0\7\14\1\0\1\14\1\0\4\14\2\0\7\14\1\0"+
|
||||
"\7\14\1\0\27\14\1\0\37\14\1\0\1\14\1\0\4\14\2\0"+
|
||||
"\7\14\1\0\47\14\1\0\23\14\16\0\11\22\56\0\125\14\14\0"+
|
||||
"\u026c\14\2\0\10\14\12\0\32\14\5\0\113\14\3\0\3\14\17\0"+
|
||||
"\15\14\1\0\4\14\3\22\13\0\22\14\3\22\13\0\22\14\2\22"+
|
||||
"\14\0\15\14\1\0\3\14\1\0\2\22\14\0\64\14\2\0\1\22"+
|
||||
"\7\22\10\22\1\22\2\22\13\22\3\0\1\14\4\0\1\14\1\22"+
|
||||
"\2\0\12\22\41\0\3\22\2\0\12\22\6\0\43\14\1\14\64\14"+
|
||||
"\10\0\51\14\1\22\126\0\35\14\3\0\3\22\4\22\2\22\3\22"+
|
||||
"\4\0\2\22\1\22\6\22\3\22\12\0\12\22\36\14\2\0\5\14"+
|
||||
"\u038b\0\54\14\66\14\12\14\224\0\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\7\14\4\0\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+
|
||||
"\1\14\1\14\1\14\1\14\1\14\1\14\6\0\10\14\10\14\6\14"+
|
||||
"\2\0\6\14\2\0\10\14\10\14\10\14\10\14\6\14\2\0\6\14"+
|
||||
"\2\0\10\14\1\0\1\14\1\0\1\14\1\0\1\14\1\0\1\14"+
|
||||
"\10\14\10\14\16\14\2\0\10\14\10\14\10\14\10\14\10\14\10\14"+
|
||||
"\5\14\1\0\2\14\4\14\1\14\1\0\1\14\3\0\3\14\1\0"+
|
||||
"\2\14\4\14\1\14\3\0\4\14\2\0\2\14\4\14\4\0\10\14"+
|
||||
"\5\14\5\0\3\14\1\0\2\14\4\14\1\14\102\0\2\22\23\0"+
|
||||
"\1\22\34\0\1\14\15\0\1\14\120\0\15\22\4\0\1\22\3\0"+
|
||||
"\6\22\27\0\1\14\4\0\1\14\2\0\1\14\3\14\2\14\3\14"+
|
||||
"\1\14\1\0\1\14\3\0\5\14\6\0\1\14\1\0\1\14\1\0"+
|
||||
"\1\14\1\0\4\14\1\0\1\14\2\14\1\0\1\14\1\14\4\14"+
|
||||
"\1\14\3\0\1\14\2\14\5\0\1\14\4\14\26\0\44\14\u0e81\0"+
|
||||
"\1\14\1\14\1\14\31\0\11\14\6\22\1\0\5\14\2\0\3\14"+
|
||||
"\1\14\1\14\4\0\126\14\2\0\2\22\2\0\2\14\1\14\1\0"+
|
||||
"\132\14\1\22\3\14\1\14\5\0\50\14\4\0\136\14\21\0\30\14"+
|
||||
"\70\0\20\14\u0200\0\u19b6\14\112\0\u51a6\14\132\0\u048d\14\u0773\0\u2ba4\14"+
|
||||
"\u215c\0\u012e\14\2\0\73\14\225\0\7\14\14\0\5\14\5\0\1\14"+
|
||||
"\1\22\12\14\1\0\15\14\1\0\5\14\1\0\1\14\1\0\2\14"+
|
||||
"\1\0\2\14\1\0\154\14\41\0\u016b\14\22\0\100\14\2\0\66\14"+
|
||||
"\50\0\14\14\4\0\20\22\20\0\4\22\17\0\2\22\30\0\3\22"+
|
||||
"\40\0\5\14\1\0\207\14\23\0\12\22\7\0\32\14\4\0\1\22"+
|
||||
"\1\0\32\14\12\0\1\22\12\14\1\14\55\14\2\14\37\14\3\0"+
|
||||
"\6\14\2\0\6\14\2\0\6\14\2\0\3\14\43\0";
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
@@ -56,21 +214,22 @@ class _PythonLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\1\0\1\1\2\2\2\3\1\4\1\5\1\6\1\7"+
|
||||
"\1\3\1\10\1\11\1\10\1\3\1\12\1\13\1\14"+
|
||||
"\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\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";
|
||||
"\1\0\1\1\2\2\5\3\1\4\1\5\1\3\1\6"+
|
||||
"\1\3\1\7\2\3\1\10\1\11\1\10\1\3\1\12"+
|
||||
"\1\13\1\14\11\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"+
|
||||
"\3\3\1\45\4\3\1\46\2\3\6\10\1\47\1\50"+
|
||||
"\1\51\14\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\11\3\1\10"+
|
||||
"\2\0\1\3\1\73\1\3\1\74\1\75\1\76\1\77"+
|
||||
"\6\3\1\100\1\101\1\102\1\103\1\104\4\3\1\105"+
|
||||
"\1\106\2\3\6\0\4\3\1\107\4\3\1\110\3\3"+
|
||||
"\1\111\4\0\3\3\1\112\1\113\1\3\1\114\1\3"+
|
||||
"\1\115\1\116\1\117\1\120\1\121\1\3\1\122\1\123"+
|
||||
"\1\3\1\124";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[199];
|
||||
@@ -98,31 +257,31 @@ class _PythonLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\106\0\214\0\322\0\u0118\0\u015e\0\u01a4\0\u01ea"+
|
||||
"\0\u0230\0\u0276\0\u02bc\0\u0302\0\106\0\u0348\0\u038e\0\106"+
|
||||
"\0\106\0\106\0\u03d4\0\u041a\0\u0460\0\u04a6\0\u04ec\0\u0532"+
|
||||
"\0\u0578\0\u05be\0\u0604\0\u064a\0\u0690\0\u06d6\0\u071c\0\u0762"+
|
||||
"\0\u07a8\0\u07ee\0\u0834\0\u087a\0\u08c0\0\u0906\0\u094c\0\u0992"+
|
||||
"\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\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\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";
|
||||
"\0\0\0\107\0\216\0\325\0\u011c\0\u0163\0\u01aa\0\u01f1"+
|
||||
"\0\u0238\0\u027f\0\u02c6\0\u030d\0\u0354\0\u039b\0\u03e2\0\u0429"+
|
||||
"\0\u0470\0\u04b7\0\107\0\u04fe\0\u0545\0\107\0\107\0\107"+
|
||||
"\0\u058c\0\u05d3\0\u061a\0\u0661\0\u06a8\0\u06ef\0\u0736\0\u077d"+
|
||||
"\0\u07c4\0\u080b\0\u0852\0\u0899\0\u08e0\0\u0927\0\u096e\0\u09b5"+
|
||||
"\0\u09fc\0\u0a43\0\u0a8a\0\u0ad1\0\107\0\107\0\107\0\107"+
|
||||
"\0\107\0\107\0\107\0\107\0\107\0\107\0\107\0\107"+
|
||||
"\0\u0b18\0\u0b5f\0\u0ba6\0\u0bed\0\u0c34\0\107\0\u0c7b\0\u0cc2"+
|
||||
"\0\107\0\u0d09\0\u0d50\0\u0d97\0\u0163\0\u0dde\0\u0e25\0\u0e6c"+
|
||||
"\0\u0eb3\0\107\0\u0efa\0\u0f41\0\u0f88\0\u0fcf\0\u1016\0\u105d"+
|
||||
"\0\u10a4\0\u10eb\0\u0163\0\u0163\0\u0163\0\u1132\0\u1179\0\u11c0"+
|
||||
"\0\u1207\0\u124e\0\u1295\0\u12dc\0\u1323\0\u136a\0\u13b1\0\u13f8"+
|
||||
"\0\u143f\0\107\0\107\0\107\0\u1486\0\107\0\u14cd\0\107"+
|
||||
"\0\107\0\107\0\107\0\107\0\u1514\0\107\0\107\0\u155b"+
|
||||
"\0\107\0\u15a2\0\u15e9\0\u1630\0\u1677\0\u16be\0\u0163\0\u1705"+
|
||||
"\0\u174c\0\u1793\0\u17da\0\u1821\0\u1868\0\u18af\0\u18f6\0\u193d"+
|
||||
"\0\107\0\u1984\0\u19cb\0\u1a12\0\u0163\0\u1a59\0\u0163\0\u0163"+
|
||||
"\0\u0163\0\u0163\0\u1aa0\0\u1ae7\0\u1b2e\0\u1b75\0\u1bbc\0\u1c03"+
|
||||
"\0\107\0\107\0\107\0\107\0\u0163\0\u1c4a\0\u1c91\0\u1cd8"+
|
||||
"\0\u1d1f\0\u0163\0\u0163\0\u1d66\0\u1dad\0\u1df4\0\u1e3b\0\u1e82"+
|
||||
"\0\u1ec9\0\u1f10\0\u1f57\0\u1f9e\0\u1fe5\0\u202c\0\u2073\0\u0163"+
|
||||
"\0\u20ba\0\u2101\0\u2148\0\u218f\0\u0163\0\u21d6\0\u221d\0\u2264"+
|
||||
"\0\u0163\0\u22ab\0\u22f2\0\u2339\0\u2380\0\u23c7\0\u240e\0\u2455"+
|
||||
"\0\u0163\0\u0163\0\u249c\0\u0163\0\u24e3\0\u0163\0\u0163\0\u0163"+
|
||||
"\0\u0163\0\u0163\0\u252a\0\u0163\0\u0163\0\u2571\0\u0163";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[199];
|
||||
@@ -148,198 +307,192 @@ class _PythonLexer implements FlexLexer {
|
||||
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\1\2\1\3\2\4\1\5\1\4\2\5\1\6\1\5"+
|
||||
"\1\7\1\10\1\5\1\11\1\5\1\12\1\5\1\6"+
|
||||
"\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+
|
||||
"\1\23\1\24\1\25\1\5\1\26\1\27\1\30\1\31"+
|
||||
"\1\5\1\32\1\33\1\34\1\6\1\35\1\5\1\36"+
|
||||
"\1\37\1\5\1\40\1\41\1\5\1\42\1\43\1\44"+
|
||||
"\1\45\1\46\1\47\1\50\1\51\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\107\0\1\71\1\72\1\71"+
|
||||
"\1\0\1\71\1\73\1\74\1\75\1\76\3\0\1\77"+
|
||||
"\1\100\1\0\1\101\15\0\1\100\2\0\1\75\2\0"+
|
||||
"\1\76\1\74\2\0\1\73\36\0\3\4\1\0\1\4"+
|
||||
"\3\0\1\76\3\0\1\77\1\100\1\0\1\101\15\0"+
|
||||
"\1\100\5\0\1\76\42\0\11\5\2\0\1\5\1\0"+
|
||||
"\1\5\1\0\3\5\3\0\1\5\3\0\25\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\13\17\5"+
|
||||
"\27\0\13\7\1\0\72\7\13\0\1\10\73\0\3\77"+
|
||||
"\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\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\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\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"+
|
||||
"\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\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\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\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"+
|
||||
"\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\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"+
|
||||
"\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\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\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"+
|
||||
"\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\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\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\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"+
|
||||
"\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\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\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\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\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\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\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\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"+
|
||||
"\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";
|
||||
"\1\2\1\3\2\4\1\5\1\4\1\6\1\7\1\10"+
|
||||
"\1\11\1\12\1\13\4\6\1\14\1\6\1\2\1\15"+
|
||||
"\1\16\1\6\1\17\1\6\2\14\1\20\1\21\1\22"+
|
||||
"\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
|
||||
"\1\33\1\6\1\34\1\6\1\35\1\36\1\37\1\6"+
|
||||
"\1\40\1\41\1\6\1\42\1\43\1\44\1\45\1\46"+
|
||||
"\1\47\1\50\1\51\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\110\0\1\71\1\72\1\71\1\0\1\71"+
|
||||
"\1\73\1\74\1\75\1\76\4\0\1\73\1\74\1\75"+
|
||||
"\1\76\1\0\1\77\2\100\1\0\1\101\60\0\3\4"+
|
||||
"\1\0\1\4\3\0\1\76\7\0\1\76\1\0\1\77"+
|
||||
"\2\100\1\0\1\101\60\0\6\6\1\102\2\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\4\6\1\103\3\0\1\104"+
|
||||
"\3\0\15\6\30\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\4\6\1\105\3\0"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\3\6\1\20\1\106\1\22\1\0\1\24"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\1\107\14\6"+
|
||||
"\27\0\13\12\1\0\73\12\13\0\1\13\74\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\3\6\2\20\1\22"+
|
||||
"\1\0\1\24\1\6\3\0\15\6\30\0\3\77\1\0"+
|
||||
"\1\77\102\0\5\6\1\110\2\6\1\111\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\5\6\3\0\1\6\3\0\15\6"+
|
||||
"\110\0\1\112\26\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\1\22\1\0\1\24\1\6\3\0\15\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\1\113\1\6\1\0"+
|
||||
"\5\6\1\22\1\0\1\24\1\6\3\0\1\114\14\6"+
|
||||
"\27\0\13\115\1\0\20\115\1\116\1\117\51\115\13\120"+
|
||||
"\1\0\21\120\1\121\1\122\50\120\1\0\3\6\1\123"+
|
||||
"\5\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\1\6\1\124\1\6\1\125\5\6\1\126"+
|
||||
"\3\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\1\6\1\127\1\6\1\130"+
|
||||
"\11\6\30\0\6\6\1\131\2\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\15\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\1\132\1\6\1\0\5\6"+
|
||||
"\3\0\1\6\3\0\15\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\4\6\1\133\3\0\1\6\3\0"+
|
||||
"\15\6\30\0\6\6\1\134\1\6\1\135\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\5\6\3\0\1\6\3\0\15\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\2\6\1\0\5\6"+
|
||||
"\3\0\1\6\3\0\1\136\14\6\30\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\137\3\0"+
|
||||
"\15\6\30\0\10\6\1\140\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\14\6\1\141\110\0\1\142\106\0\1\143\106\0"+
|
||||
"\1\144\1\145\105\0\1\146\1\0\1\147\104\0\1\150"+
|
||||
"\106\0\1\151\106\0\1\152\106\0\1\153\106\0\1\154"+
|
||||
"\6\0\1\155\77\0\1\156\6\0\1\157\1\160\76\0"+
|
||||
"\1\161\26\0\1\71\1\72\1\71\1\0\1\71\3\0"+
|
||||
"\1\76\7\0\1\76\1\0\1\77\2\100\1\0\1\101"+
|
||||
"\60\0\3\72\1\0\1\72\15\0\1\77\2\100\1\0"+
|
||||
"\1\101\60\0\5\162\2\0\1\162\4\0\1\162\2\0"+
|
||||
"\1\162\3\0\2\162\15\0\1\162\1\0\1\162\3\0"+
|
||||
"\1\162\36\0\1\163\1\0\1\163\1\0\1\163\102\0"+
|
||||
"\1\164\3\0\1\164\102\0\3\77\1\0\1\77\16\0"+
|
||||
"\2\100\1\0\1\101\60\0\3\165\1\0\1\165\20\0"+
|
||||
"\1\166\31\0\1\166\27\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\4\6\1\167\3\0\1\6\3\0\15\6"+
|
||||
"\30\0\6\6\1\170\2\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\1\6\1\171\13\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\1\172\1\6\1\0\5\6\1\22\1\0\1\24"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\11\6\1\173"+
|
||||
"\3\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\6\6\1\174\6\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\175\3\0\3\6\1\176\11\6\30\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\4\6\1\177\10\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\200\3\0\15\6\27\0"+
|
||||
"\13\115\1\0\20\115\1\201\1\117\51\115\34\0\1\202"+
|
||||
"\52\0\107\115\13\120\1\0\21\120\1\121\1\201\157\120"+
|
||||
"\36\0\1\203\51\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\7\6\1\204\5\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\2\6\1\0\5\6"+
|
||||
"\3\0\1\6\3\0\2\6\1\205\12\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\3\6\1\206\11\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\5\6\3\0\1\6\3\0\4\6"+
|
||||
"\1\207\10\6\30\0\3\6\1\210\4\6\1\211\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\15\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\10\6\1\212\4\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\1\6\1\213\13\6\30\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\1\214\14\6\30\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\3\6\1\215\11\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\1\216\1\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\15\6\30\0\6\6\1\217"+
|
||||
"\2\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\220\3\0\15\6\110\0"+
|
||||
"\1\221\106\0\1\222\106\0\1\223\106\0\1\224\26\0"+
|
||||
"\5\162\2\0\1\162\1\76\3\0\1\162\2\0\1\162"+
|
||||
"\1\76\2\0\2\162\15\0\1\162\1\0\1\162\3\0"+
|
||||
"\1\162\36\0\1\163\1\0\1\163\1\0\1\163\3\0"+
|
||||
"\1\76\7\0\1\76\66\0\1\164\3\0\1\164\3\0"+
|
||||
"\1\76\7\0\1\76\66\0\3\165\1\0\1\165\21\0"+
|
||||
"\1\101\60\0\3\165\1\0\1\165\102\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\11\6\1\225\3\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\1\226\14\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\2\6\1\0\5\6"+
|
||||
"\3\0\1\6\3\0\1\227\14\6\30\0\7\6\1\230"+
|
||||
"\1\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\1\231\1\6\1\0\5\6\3\0\1\6\3\0\15\6"+
|
||||
"\30\0\3\6\1\232\5\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\1\233\1\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\2\6\1\234\2\6\3\0\1\6\3\0"+
|
||||
"\15\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\3\6\1\235\11\6\27\0"+
|
||||
"\34\202\1\236\1\237\1\202\1\240\47\202\35\203\1\241"+
|
||||
"\1\242\1\243\47\203\1\0\6\6\1\244\2\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\15\6\30\0\11\6\2\0\7\6\1\0\1\245\1\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\4\6\1\246\10\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\5\6\3\0\1\6\3\0\3\6"+
|
||||
"\1\247\11\6\30\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\3\6\1\250\11\6"+
|
||||
"\30\0\10\6\1\251\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\15\6\30\0\7\6\1\252"+
|
||||
"\1\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\15\6\30\0\10\6\1\253\2\0\7\6"+
|
||||
"\1\0\2\6\1\0\5\6\3\0\1\6\3\0\15\6"+
|
||||
"\30\0\10\6\1\254\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\15\6\30\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\5\6\1\255\7\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\2\6\1\256"+
|
||||
"\12\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\7\6\1\257\5\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\4\6\1\260"+
|
||||
"\3\0\1\6\3\0\15\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\1\261\1\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\15\6\27\0\34\202\1\262\1\237\1\202\1\263\212\202"+
|
||||
"\1\263\1\237\1\202\1\263\47\202\144\203\1\241\1\264"+
|
||||
"\1\265\104\203\1\241\2\265\47\203\1\0\11\6\2\0"+
|
||||
"\7\6\1\0\2\6\1\0\4\6\1\266\3\0\1\6"+
|
||||
"\3\0\15\6\30\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\4\6\1\267\3\0\1\6\3\0\15\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\270\3\0\15\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\3\6\1\271"+
|
||||
"\11\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\2\6\1\272\12\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\1\273\14\6\30\0\11\6\2\0\7\6"+
|
||||
"\1\0\1\274\1\6\1\0\5\6\3\0\1\6\3\0"+
|
||||
"\15\6\30\0\10\6\1\275\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\1\276\14\6\30\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\4\6\1\277"+
|
||||
"\10\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\1\6\1\300\13\6\27\0"+
|
||||
"\34\202\1\201\1\237\1\202\1\0\103\202\1\0\1\237"+
|
||||
"\1\202\1\0\47\202\35\203\1\241\1\201\1\0\104\203"+
|
||||
"\1\241\2\0\47\203\1\0\11\6\2\0\7\6\1\0"+
|
||||
"\2\6\1\0\5\6\3\0\1\6\3\0\4\6\1\301"+
|
||||
"\10\6\30\0\11\6\2\0\7\6\1\0\2\6\1\0"+
|
||||
"\5\6\3\0\1\6\3\0\4\6\1\302\10\6\30\0"+
|
||||
"\11\6\2\0\7\6\1\0\2\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\1\6\1\303\13\6\30\0\10\6\1\304"+
|
||||
"\2\0\7\6\1\0\2\6\1\0\5\6\3\0\1\6"+
|
||||
"\3\0\15\6\30\0\11\6\2\0\7\6\1\0\2\6"+
|
||||
"\1\0\5\6\3\0\1\6\3\0\10\6\1\305\4\6"+
|
||||
"\30\0\11\6\2\0\7\6\1\0\2\6\1\0\2\6"+
|
||||
"\1\306\2\6\3\0\1\6\3\0\15\6\30\0\11\6"+
|
||||
"\2\0\7\6\1\0\1\307\1\6\1\0\5\6\3\0"+
|
||||
"\1\6\3\0\15\6\27\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[9520];
|
||||
int [] result = new int[9656];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -380,11 +533,11 @@ class _PythonLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
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\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";
|
||||
"\1\0\1\11\20\1\1\11\2\1\3\11\24\1\14\11"+
|
||||
"\1\1\4\0\1\11\1\1\1\0\1\11\10\1\1\11"+
|
||||
"\27\1\3\11\1\1\1\11\1\1\5\11\1\1\2\11"+
|
||||
"\1\1\1\11\4\1\1\0\12\1\1\11\2\0\15\1"+
|
||||
"\4\11\11\1\6\0\16\1\4\0\22\1";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[199];
|
||||
@@ -470,7 +623,7 @@ class _PythonLexer implements FlexLexer {
|
||||
char [] map = new char[0x10000];
|
||||
int i = 0; /* index in packed string */
|
||||
int j = 0; /* index in unpacked array */
|
||||
while (i < 178) {
|
||||
while (i < 3336) {
|
||||
int count = packed.charAt(i++);
|
||||
char value = packed.charAt(i++);
|
||||
do map[j++] = value; while (--count > 0);
|
||||
@@ -740,7 +893,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.MINUS;
|
||||
}
|
||||
case 93: break;
|
||||
case 73:
|
||||
case 72:
|
||||
{ return PyTokenTypes.BREAK_KEYWORD;
|
||||
}
|
||||
case 94: break;
|
||||
@@ -764,11 +917,11 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.LT;
|
||||
}
|
||||
case 99: break;
|
||||
case 38:
|
||||
case 40:
|
||||
{ return PyTokenTypes.IN_KEYWORD;
|
||||
}
|
||||
case 100: break;
|
||||
case 72:
|
||||
case 73:
|
||||
{ return PyTokenTypes.RAISE_KEYWORD;
|
||||
}
|
||||
case 101: break;
|
||||
@@ -784,7 +937,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.SPACE;
|
||||
}
|
||||
case 104: break;
|
||||
case 79:
|
||||
case 78:
|
||||
{ return PyTokenTypes.EXCEPT_KEYWORD;
|
||||
}
|
||||
case 105: break;
|
||||
@@ -820,7 +973,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.OR;
|
||||
}
|
||||
case 113: break;
|
||||
case 69:
|
||||
case 70:
|
||||
{ return PyTokenTypes.ELSE_KEYWORD;
|
||||
}
|
||||
case 114: break;
|
||||
@@ -840,7 +993,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.MULT;
|
||||
}
|
||||
case 118: break;
|
||||
case 78:
|
||||
case 81:
|
||||
{ return PyTokenTypes.ASSERT_KEYWORD;
|
||||
}
|
||||
case 119: break;
|
||||
@@ -852,7 +1005,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.GLOBAL_KEYWORD;
|
||||
}
|
||||
case 121: break;
|
||||
case 81:
|
||||
case 77:
|
||||
{ return PyTokenTypes.LAMBDA_KEYWORD;
|
||||
}
|
||||
case 122: break;
|
||||
@@ -860,7 +1013,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.XOREQ;
|
||||
}
|
||||
case 123: break;
|
||||
case 63:
|
||||
case 58:
|
||||
{ return PyTokenTypes.FOR_KEYWORD;
|
||||
}
|
||||
case 124: break;
|
||||
@@ -868,7 +1021,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.AT;
|
||||
}
|
||||
case 125: break;
|
||||
case 59:
|
||||
case 60:
|
||||
{ return PyTokenTypes.NOT_KEYWORD;
|
||||
}
|
||||
case 126: break;
|
||||
@@ -876,7 +1029,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.PLUS;
|
||||
}
|
||||
case 127: break;
|
||||
case 37:
|
||||
case 38:
|
||||
{ return PyTokenTypes.MINUSEQ;
|
||||
}
|
||||
case 128: break;
|
||||
@@ -912,11 +1065,11 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.LE;
|
||||
}
|
||||
case 136: break;
|
||||
case 58:
|
||||
case 59:
|
||||
{ return PyTokenTypes.AND_KEYWORD;
|
||||
}
|
||||
case 137: break;
|
||||
case 41:
|
||||
case 37:
|
||||
{ return PyTokenTypes.OR_KEYWORD;
|
||||
}
|
||||
case 138: break;
|
||||
@@ -944,11 +1097,11 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.DIVEQ;
|
||||
}
|
||||
case 144: break;
|
||||
case 80:
|
||||
case 79:
|
||||
{ return PyTokenTypes.RETURN_KEYWORD;
|
||||
}
|
||||
case 145: break;
|
||||
case 77:
|
||||
case 80:
|
||||
{ return PyTokenTypes.IMPORT_KEYWORD;
|
||||
}
|
||||
case 146: break;
|
||||
@@ -964,7 +1117,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.DEF_KEYWORD;
|
||||
}
|
||||
case 149: break;
|
||||
case 39:
|
||||
case 41:
|
||||
{ return PyTokenTypes.IS_KEYWORD;
|
||||
}
|
||||
case 150: break;
|
||||
@@ -984,7 +1137,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.PERCEQ;
|
||||
}
|
||||
case 154: break;
|
||||
case 62:
|
||||
case 63:
|
||||
{ return PyTokenTypes.TRY_KEYWORD;
|
||||
}
|
||||
case 155: break;
|
||||
@@ -996,7 +1149,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.EQ;
|
||||
}
|
||||
case 157: break;
|
||||
case 70:
|
||||
case 68:
|
||||
{ return PyTokenTypes.FROM_KEYWORD;
|
||||
}
|
||||
case 158: break;
|
||||
@@ -1004,7 +1157,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.EXPEQ;
|
||||
}
|
||||
case 159: break;
|
||||
case 68:
|
||||
case 69:
|
||||
{ return PyTokenTypes.ELIF_KEYWORD;
|
||||
}
|
||||
case 160: break;
|
||||
@@ -1016,7 +1169,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.CLASS_KEYWORD;
|
||||
}
|
||||
case 162: break;
|
||||
case 40:
|
||||
case 39:
|
||||
{ return PyTokenTypes.IF_KEYWORD;
|
||||
}
|
||||
case 163: break;
|
||||
@@ -1036,7 +1189,7 @@ class _PythonLexer implements FlexLexer {
|
||||
{ return PyTokenTypes.XOR;
|
||||
}
|
||||
case 167: break;
|
||||
case 60:
|
||||
case 62:
|
||||
{ return PyTokenTypes.DEL_KEYWORD;
|
||||
}
|
||||
case 168: break;
|
||||
|
||||
@@ -306,7 +306,7 @@ public class ExpressionParsing extends Parsing {
|
||||
else if (tokenType == PyTokenTypes.LBRACKET) {
|
||||
builder.advanceLexer();
|
||||
PsiBuilder.Marker sliceItemStart = builder.mark();
|
||||
if (builder.getTokenType() == PyTokenTypes.COLON) {
|
||||
if (atToken(PyTokenTypes.COLON)) {
|
||||
PsiBuilder.Marker sliceMarker = builder.mark();
|
||||
sliceMarker.done(PyElementTypes.EMPTY_EXPRESSION);
|
||||
parseSliceEnd(expr, sliceItemStart);
|
||||
@@ -348,28 +348,27 @@ public class ExpressionParsing extends Parsing {
|
||||
|
||||
private void parseSliceEnd(PsiBuilder.Marker exprStart, PsiBuilder.Marker sliceItemStart) {
|
||||
myBuilder.advanceLexer();
|
||||
if (myBuilder.getTokenType() == PyTokenTypes.RBRACKET) {
|
||||
if (atToken(PyTokenTypes.RBRACKET)) {
|
||||
PsiBuilder.Marker sliceMarker = myBuilder.mark();
|
||||
sliceMarker.done(PyElementTypes.EMPTY_EXPRESSION);
|
||||
sliceItemStart.done(PyElementTypes.SLICE_ITEM);
|
||||
myBuilder.advanceLexer();
|
||||
nextToken();
|
||||
exprStart.done(PyElementTypes.SLICE_EXPRESSION);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (myBuilder.getTokenType() == PyTokenTypes.COLON) {
|
||||
if (atToken(PyTokenTypes.COLON)) {
|
||||
PsiBuilder.Marker sliceMarker = myBuilder.mark();
|
||||
sliceMarker.done(PyElementTypes.EMPTY_EXPRESSION);
|
||||
}
|
||||
else {
|
||||
parseExpression();
|
||||
parseSingleExpression(false);
|
||||
}
|
||||
if (!BRACKET_COLON_COMMA.contains(myBuilder.getTokenType())) {
|
||||
myBuilder.error(message("PARSE.expected.colon.or.rbracket"));
|
||||
}
|
||||
if (myBuilder.getTokenType() == PyTokenTypes.COLON) {
|
||||
myBuilder.advanceLexer();
|
||||
parseTestExpression(false, false);
|
||||
if (matchToken(PyTokenTypes.COLON)) {
|
||||
parseSingleExpression(false);
|
||||
}
|
||||
|
||||
sliceItemStart.done(PyElementTypes.SLICE_ITEM);
|
||||
|
||||
@@ -654,11 +654,18 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
|
||||
assertCurrentToken(PyTokenTypes.WITH_KEYWORD);
|
||||
final PsiBuilder.Marker statement = myBuilder.mark();
|
||||
myBuilder.advanceLexer();
|
||||
getExpressionParser().parseExpression();
|
||||
myExpectAsKeyword = true;
|
||||
if (myBuilder.getTokenType() == PyTokenTypes.AS_KEYWORD) {
|
||||
myBuilder.advanceLexer();
|
||||
getExpressionParser().parseExpression(true, true); // 'as' is followed by a target
|
||||
while(true) {
|
||||
PsiBuilder.Marker withItem = myBuilder.mark();
|
||||
getExpressionParser().parseExpression();
|
||||
myExpectAsKeyword = true;
|
||||
if (myBuilder.getTokenType() == PyTokenTypes.AS_KEYWORD) {
|
||||
myBuilder.advanceLexer();
|
||||
getExpressionParser().parseSingleExpression(true); // 'as' is followed by a target
|
||||
}
|
||||
withItem.done(PyElementTypes.WITH_ITEM);
|
||||
if (!matchToken(PyTokenTypes.COMMA)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
checkMatches(PyTokenTypes.COLON, "colon expected");
|
||||
parseSuite();
|
||||
|
||||
@@ -13,7 +13,8 @@ public enum LanguageLevel {
|
||||
PYTHON24(false, true, false),
|
||||
PYTHON25(false, true, false),
|
||||
PYTHON26(true, true, false),
|
||||
PYTHON30(true, false, true);
|
||||
PYTHON30(true, false, true),
|
||||
PYTHON31(true, false, true);
|
||||
|
||||
public static LanguageLevel getDefault() {
|
||||
return PYTHON26;
|
||||
|
||||
@@ -24,7 +24,7 @@ public class PyFileElementType extends IStubFileElementType {
|
||||
|
||||
@Override
|
||||
public int getStubVersion() {
|
||||
return 9;
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.jetbrains.python.psi;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public interface PyWithItem extends PyElement {
|
||||
PyTargetExpression getTargetExpression();
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.jetbrains.python.psi.impl;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.jetbrains.python.PyElementTypes;
|
||||
import com.jetbrains.python.psi.PyTargetExpression;
|
||||
import com.jetbrains.python.psi.PyWithItem;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PyWithItemImpl extends PyElementImpl implements PyWithItem {
|
||||
public PyWithItemImpl(ASTNode astNode) {
|
||||
super(astNode);
|
||||
}
|
||||
|
||||
public PyTargetExpression getTargetExpression() {
|
||||
final ASTNode asNameNode = getNode().findChildByType(PyElementTypes.TARGET_EXPRESSION);
|
||||
if (asNameNode == null) return null;
|
||||
return (PyTargetExpression)asNameNode.getPsi();
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,15 @@ package com.jetbrains.python.psi.impl;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.PyElementTypes;
|
||||
import com.jetbrains.python.toolbox.SingleIterable;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.psi.PyElement;
|
||||
import com.jetbrains.python.psi.PyElementVisitor;
|
||||
import com.jetbrains.python.psi.PyWithItem;
|
||||
import com.jetbrains.python.psi.PyWithStatement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
@@ -20,17 +24,16 @@ public class PyWithStatementImpl extends PyElementImpl implements PyWithStatemen
|
||||
pyVisitor.visitPyWithStatement(this);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PyExpression getTargetExpression() {
|
||||
final ASTNode asNameNode = getNode().findChildByType(PyElementTypes.TARGET_EXPRESSION);
|
||||
if (asNameNode == null) return null;
|
||||
return (PyTargetExpression)asNameNode.getPsi();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Iterable<PyElement> iterateNames() {
|
||||
PyElement ret = getTargetExpression();
|
||||
return new SingleIterable<PyElement>(ret);
|
||||
PyWithItem[] items = PsiTreeUtil.getChildrenOfType(this, PyWithItem.class);
|
||||
List<PyElement> result = new ArrayList<PyElement>();
|
||||
if (items != null) {
|
||||
for (PyWithItem item : items) {
|
||||
result.add(item.getTargetExpression());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public PsiElement getElementNamed(final String the_name) {
|
||||
|
||||
@@ -3,3 +3,4 @@ d[1::2]
|
||||
d[1:2:]
|
||||
d[0:]
|
||||
d[1:2:3, 1:2:3] = 1
|
||||
d[:42, ..., :24:, 24, 100]
|
||||
|
||||
@@ -86,4 +86,41 @@ PyFile:ExtendedSlices.py
|
||||
PsiElement(Py:EQ)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('1')
|
||||
PsiElement(Py:INTEGER_LITERAL)('1')
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
PySliceExpression
|
||||
PyReferenceExpression: d
|
||||
PsiElement(Py:IDENTIFIER)('d')
|
||||
PsiElement(Py:LBRACKET)('[')
|
||||
PySliceItem
|
||||
PyEmptyExpression
|
||||
<empty list>
|
||||
PsiElement(Py:COLON)(':')
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('42')
|
||||
PsiElement(Py:COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
PySliceItem
|
||||
PyNoneLiteralExpression
|
||||
PsiElement(Py:DOT)('.')
|
||||
PsiElement(Py:DOT)('.')
|
||||
PsiElement(Py:DOT)('.')
|
||||
PsiElement(Py:COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
PySliceItem
|
||||
PsiElement(Py:COLON)(':')
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('24')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiElement(Py:COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
PySliceItem
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('24')
|
||||
PsiElement(Py:COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
PySliceItem
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('100')
|
||||
PsiElement(Py:RBRACKET)(']')
|
||||
@@ -0,0 +1 @@
|
||||
a //= 2
|
||||
@@ -0,0 +1,9 @@
|
||||
PyFile:FloorDiv.py
|
||||
PyAugAssignmentStatement
|
||||
PyReferenceExpression: a
|
||||
PsiElement(Py:IDENTIFIER)('a')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:FLOORDIVEQ)('//=')
|
||||
PsiWhiteSpace(' ')
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('2')
|
||||
@@ -14,13 +14,14 @@ PyFile:WithStatement.py
|
||||
PyWithStatement
|
||||
PsiElement(Py:WITH_KEYWORD)('with')
|
||||
PsiWhiteSpace(' ')
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PyWithItem
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace('\n ')
|
||||
PyStatementList
|
||||
|
||||
@@ -36,27 +36,28 @@ PyFile:WithStatement2.py
|
||||
PyWithStatement
|
||||
PsiElement(Py:WITH_KEYWORD)('with')
|
||||
PsiWhiteSpace(' ')
|
||||
PySubscriptionExpression
|
||||
PyCallExpression: x.y
|
||||
PyReferenceExpression: y
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiElement(Py:DOT)('.')
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PyArgumentList
|
||||
PsiElement(Py:LPAR)('(')
|
||||
PyReferenceExpression: z
|
||||
PsiElement(Py:IDENTIFIER)('z')
|
||||
PsiElement(Py:RPAR)(')')
|
||||
PsiElement(Py:LBRACKET)('[')
|
||||
PyReferenceExpression: t
|
||||
PsiElement(Py:IDENTIFIER)('t')
|
||||
PsiElement(Py:RBRACKET)(']')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PyWithItem
|
||||
PySubscriptionExpression
|
||||
PyCallExpression: x.y
|
||||
PyReferenceExpression: y
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiElement(Py:DOT)('.')
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PyArgumentList
|
||||
PsiElement(Py:LPAR)('(')
|
||||
PyReferenceExpression: z
|
||||
PsiElement(Py:IDENTIFIER)('z')
|
||||
PsiElement(Py:RPAR)(')')
|
||||
PsiElement(Py:LBRACKET)('[')
|
||||
PyReferenceExpression: t
|
||||
PsiElement(Py:IDENTIFIER)('t')
|
||||
PsiElement(Py:RBRACKET)(']')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
PyStatementList
|
||||
@@ -67,9 +68,10 @@ PyFile:WithStatement2.py
|
||||
PsiWhiteSpace('\n')
|
||||
PyWithStatement
|
||||
PsiElement(Py:WITH_KEYWORD)('with')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
PyWithItem
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PyStatementList
|
||||
PsiElement(Py:EQ)('=')
|
||||
PsiErrorElement:statement expected, found Py:EQ
|
||||
|
||||
@@ -2,13 +2,14 @@ PyFile:WithStatement26.py
|
||||
PyWithStatement
|
||||
PsiElement(Py:WITH_KEYWORD)('with')
|
||||
PsiWhiteSpace(' ')
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PyWithItem
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace('\n ')
|
||||
PyStatementList
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
with x as a, y as b: pass
|
||||
@@ -0,0 +1,27 @@
|
||||
PyFile:WithStatement31.py
|
||||
PyWithStatement
|
||||
PsiElement(Py:WITH_KEYWORD)('with')
|
||||
PsiWhiteSpace(' ')
|
||||
PyWithItem
|
||||
PyReferenceExpression: x
|
||||
PsiElement(Py:IDENTIFIER)('x')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: a
|
||||
PsiElement(Py:IDENTIFIER)('a')
|
||||
PsiElement(Py:COMMA)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
PyWithItem
|
||||
PyReferenceExpression: y
|
||||
PsiElement(Py:IDENTIFIER)('y')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(Py:AS_KEYWORD)('as')
|
||||
PsiWhiteSpace(' ')
|
||||
PyTargetExpression: b
|
||||
PsiElement(Py:IDENTIFIER)('b')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
PyStatementList
|
||||
PyPassStatement
|
||||
PsiElement(Py:PASS_KEYWORD)('pass')
|
||||
@@ -14,7 +14,7 @@ import com.jetbrains.python.psi.*;
|
||||
|
||||
public class PyResolveTest extends PyResolveTestCase {
|
||||
private PsiElement resolve() throws Exception {
|
||||
PsiReference ref = configureByFile(getTestName(false) + ".py");
|
||||
PsiReference ref = configureByFile("/resolve/" + getTestName(false) + ".py");
|
||||
return ref.resolve();
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class PyResolveTest extends PyResolveTestCase {
|
||||
// NOTE: maybe this test does not belong exactly here; still it's the best place currently.
|
||||
public void testComplexCallee() throws Exception {
|
||||
PsiElement targetElement = resolve();
|
||||
PyExpression assigned = ((PyAssignmentStatement) targetElement.getContext()).getAssignedValue();
|
||||
PyExpression assigned = ((PyAssignmentStatement)targetElement.getContext()).getAssignedValue();
|
||||
assertTrue(assigned instanceof PyCallExpression);
|
||||
PsiElement callee = ((PyCallExpression)assigned).getCallee();
|
||||
assertTrue(callee instanceof PySubscriptionExpression);
|
||||
@@ -179,7 +179,7 @@ public class PyResolveTest extends PyResolveTestCase {
|
||||
public void testWithStatement() throws Exception {
|
||||
PsiElement targetElement = resolve();
|
||||
assertTrue(targetElement instanceof PyTargetExpression);
|
||||
assertTrue(targetElement.getParent() instanceof PyWithStatement);
|
||||
assertTrue(targetElement.getParent() instanceof PyWithItem);
|
||||
}
|
||||
|
||||
public void testTupleInExcept() throws Exception {
|
||||
@@ -211,9 +211,4 @@ public class PyResolveTest extends PyResolveTestCase {
|
||||
PsiElement targetElement = resolve();
|
||||
assertNull(targetElement);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTestDataPath() {
|
||||
return PythonTestUtil.getTestDataPath() + "/resolve/";
|
||||
}
|
||||
}
|
||||
@@ -182,6 +182,14 @@ public class PythonParsingTest extends ParsingTestCase {
|
||||
doTest(LanguageLevel.PYTHON30);
|
||||
}
|
||||
|
||||
public void testFloorDiv() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testWithStatement31() throws Exception {
|
||||
doTest(LanguageLevel.PYTHON31);
|
||||
}
|
||||
|
||||
public void doTest() throws Exception {
|
||||
doTest(LanguageLevel.PYTHON25);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.testFramework.TestDataFile;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import java.io.File;
|
||||
@@ -17,7 +18,7 @@ import java.io.IOException;
|
||||
public abstract class PyResolveTestCase extends PyLightFixtureTestCase {
|
||||
@NonNls protected static final String MARKER = "<ref>";
|
||||
|
||||
protected PsiReference configureByFile(final String filePath) throws Exception {
|
||||
protected PsiReference configureByFile(@TestDataFile final String filePath) throws Exception {
|
||||
VirtualFile testDataRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(getTestDataPath()));
|
||||
final VirtualFile file = testDataRoot.findFileByRelativePath(filePath);
|
||||
assertNotNull(file);
|
||||
|
||||
Reference in New Issue
Block a user