From 62dcafadea139aed9cea9a75673b543e9722bb1d Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Mon, 27 May 2013 21:22:46 +0400 Subject: [PATCH 1/3] fixed PY-9819 Wrong highlight for property in metaclass --- python/psi-api/src/com/jetbrains/python/PyNames.java | 1 + .../python/inspections/PyPropertyDefinitionInspection.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/python/psi-api/src/com/jetbrains/python/PyNames.java b/python/psi-api/src/com/jetbrains/python/PyNames.java index a195785f7092..03f116dfcd76 100644 --- a/python/psi-api/src/com/jetbrains/python/PyNames.java +++ b/python/psi-api/src/com/jetbrains/python/PyNames.java @@ -31,6 +31,7 @@ public class PyNames { public static final String CLASS = "__class__"; public static final String DUNDER_METACLASS = "__metaclass__"; public static final String METACLASS = "metaclass"; + public static final String TYPE = "type"; public static final String SUPER = "super"; diff --git a/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java b/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java index d46900231ca2..64e17296064b 100644 --- a/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyPropertyDefinitionInspection.java @@ -264,6 +264,8 @@ public class PyPropertyDefinitionInspection extends PyInspection { private void checkForSelf(PyParameterList param_list) { PyParameter[] parameters = param_list.getParameters(); + final PyClass cls = PsiTreeUtil.getParentOfType(param_list, PyClass.class); + if (cls != null && cls.isSubclass("type")) return; if (parameters.length > 0 && ! PyNames.CANONICAL_SELF.equals(parameters[0].getName())) { registerProblem( parameters[0], PyBundle.message("INSP.accessor.first.param.is.$0", PyNames.CANONICAL_SELF), ProblemHighlightType.WEAK_WARNING, null, From 08d2b4de8e163a9ffc883f352192e8a556d416b8 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Tue, 28 May 2013 14:42:15 +0400 Subject: [PATCH 2/3] fixed tests for PY-9617 --- .../com/jetbrains/python/lexer/Python.flex | 8 +- .../jetbrains/python/lexer/_PythonLexer.java | 1204 +++++++++-------- 2 files changed, 615 insertions(+), 597 deletions(-) diff --git a/python/src/com/jetbrains/python/lexer/Python.flex b/python/src/com/jetbrains/python/lexer/Python.flex index b551ffe8bb8e..e3d0f2b3748c 100644 --- a/python/src/com/jetbrains/python/lexer/Python.flex +++ b/python/src/com/jetbrains/python/lexer/Python.flex @@ -88,6 +88,10 @@ return yylength()-i-1; {END_OF_LINE_COMMENT} { return PyTokenTypes.END_OF_LINE_COMMENT; } "\\" { return PyTokenTypes.BACKSLASH; } + { +{SINGLE_QUOTED_STRING}$ { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; } +{TRIPLE_QUOTED_STRING}$ { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; } +} { {LONGINTEGER} { return PyTokenTypes.INTEGER_LITERAL; } @@ -95,8 +99,8 @@ return yylength()-i-1; {FLOATNUMBER} { return PyTokenTypes.FLOAT_LITERAL; } {IMAGNUMBER} { return PyTokenTypes.IMAGINARY_LITERAL; } -{SINGLE_QUOTED_STRING} { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; } -{TRIPLE_QUOTED_STRING} { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; } +{SINGLE_QUOTED_STRING} { return PyTokenTypes.SINGLE_QUOTED_STRING; } +{TRIPLE_QUOTED_STRING} { return PyTokenTypes.TRIPLE_QUOTED_STRING; } "and" { return PyTokenTypes.AND_KEYWORD; } "assert" { return PyTokenTypes.ASSERT_KEYWORD; } diff --git a/python/src/com/jetbrains/python/lexer/_PythonLexer.java b/python/src/com/jetbrains/python/lexer/_PythonLexer.java index 0bd022fda991..a0fce61828c1 100644 --- a/python/src/com/jetbrains/python/lexer/_PythonLexer.java +++ b/python/src/com/jetbrains/python/lexer/_PythonLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 5/21/13 5:54 PM */ +/* The following code was generated by JFlex 1.4.3 on 5/28/13 2:23 PM */ /* It's an automatically generated code. Do not modify it. */ package com.jetbrains.python.lexer; @@ -12,7 +12,7 @@ import com.intellij.openapi.util.text.StringUtil; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 5/21/13 5:54 PM from the specification file + * on 5/28/13 2:23 PM from the specification file * /home/ktisha/IDEA/tools/lexer/../../python/src/com/jetbrains/python/lexer/Python.flex */ class _PythonLexer implements FlexLexer { @@ -38,145 +38,127 @@ class _PythonLexer implements FlexLexer { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\41\1\37\1\0\1\42\1\13\22\0\1\40\1\73\1\36"+ - "\1\12\1\0\1\65\1\66\1\34\1\75\1\76\1\63\1\61\1\104"+ - "\1\26\1\23\1\64\1\1\1\5\6\3\2\2\1\105\1\107\1\72"+ - "\1\62\1\71\1\0\1\103\1\15\1\20\1\31\1\15\1\25\1\15"+ + "\11\0\1\41\1\37\1\43\1\42\1\13\22\0\1\40\1\74\1\36"+ + "\1\12\1\0\1\66\1\67\1\34\1\76\1\77\1\64\1\62\1\105"+ + "\1\26\1\23\1\65\1\1\1\5\6\3\2\2\1\106\1\110\1\73"+ + "\1\63\1\72\1\0\1\104\1\15\1\20\1\31\1\15\1\25\1\15"+ "\3\14\1\27\1\14\1\21\2\14\1\17\2\14\1\32\2\14\1\32"+ - "\2\14\1\16\2\14\1\77\1\35\1\100\1\70\1\14\1\106\1\43"+ - "\1\10\1\30\1\45\1\24\1\4\1\56\1\60\1\52\1\27\1\51"+ - "\1\11\1\55\1\44\1\7\1\53\1\14\1\47\1\46\1\50\1\33"+ - "\1\14\1\57\1\6\1\54\1\14\1\101\1\67\1\102\1\74\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"+ + "\2\14\1\16\2\14\1\100\1\35\1\101\1\71\1\14\1\107\1\44"+ + "\1\10\1\30\1\46\1\24\1\4\1\57\1\61\1\53\1\27\1\52"+ + "\1\11\1\56\1\45\1\7\1\54\1\14\1\50\1\47\1\51\1\33"+ + "\1\14\1\60\1\6\1\55\1\14\1\102\1\70\1\103\1\75\6\0"+ + "\1\43\44\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\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\7\14\2\14\1\14\2\14\2\14\1\14\1\14"+ - "\4\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\105\14"+ - "\1\14\33\14\22\14\4\0\14\14\16\0\5\14\7\0\1\14\1\0"+ - "\1\14\21\0\160\22\1\14\1\14\1\14\1\14\1\14\1\0\1\14"+ - "\1\14\2\0\1\14\3\14\10\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\14\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\2\14\63\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\5\22"+ - "\2\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\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\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\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\11\0\46\14\2\0"+ - "\1\14\7\0\47\14\11\0\55\22\1\0\1\22\1\0\2\22\1\0"+ - "\2\22\1\0\1\22\10\0\33\14\5\0\3\14\35\0\13\22\5\0"+ - "\40\14\1\14\12\14\25\22\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\131\14"+ - "\13\22\1\14\16\0\12\22\41\14\11\22\2\14\4\0\1\14\5\0"+ - "\26\14\4\22\1\14\11\22\1\14\3\22\1\14\5\22\22\0\31\14"+ - "\3\22\244\0\3\22\1\22\66\14\1\22\1\22\1\22\1\14\3\22"+ - "\10\22\4\22\1\22\2\22\1\14\7\22\12\14\2\22\2\0\12\22"+ - "\1\0\1\14\6\14\1\0\7\14\1\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"+ - "\1\14\10\0\1\22\4\0\2\14\1\0\3\14\2\22\2\0\12\22"+ + "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ + "\1\14\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\3\0\1\22\7\0"+ - "\4\14\1\0\1\14\7\0\12\22\2\22\3\14\1\22\13\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\4\22\2\0\2\22\2\0\2\22\1\22\10\0\1\22"+ - "\1\22\4\0\2\14\1\0\3\14\2\22\2\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"+ - "\14\14\4\0\2\22\1\22\2\22\3\0\3\22\1\0\3\22\1\22"+ - "\2\0\1\14\6\0\1\22\16\0\12\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\3\0\1\14"+ - "\3\22\4\22\1\0\3\22\1\0\4\22\7\0\2\22\1\0\2\14"+ - "\6\0\2\14\2\22\2\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\2\22\2\0\12\22\1\0\2\14"+ - "\17\0\2\22\1\0\10\14\1\0\3\14\1\0\51\14\2\0\1\14"+ - "\3\22\4\22\1\0\3\22\1\0\3\22\1\22\1\14\10\0\1\22"+ - "\10\0\2\14\2\22\2\0\12\22\12\0\6\14\2\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\44\14\4\0\16\22"+ - "\1\22\5\22\1\0\2\22\5\14\13\22\1\0\44\22\11\0\1\22"+ - "\71\0\53\14\2\22\4\22\1\22\6\22\1\22\2\22\2\22\2\22"+ - "\1\14\12\22\6\0\6\14\2\22\2\22\4\14\3\22\1\14\3\22"+ - "\2\14\7\22\3\14\4\22\15\14\1\22\2\22\2\22\6\22\1\22"+ - "\1\14\1\22\12\22\3\22\1\22\2\0\46\14\12\0\53\14\1\0"+ - "\1\14\3\0\u0149\14\1\0\4\14\2\0\7\14\1\0\1\14\1\0"+ - "\4\14\2\0\51\14\1\0\4\14\2\0\41\14\1\0\4\14\2\0"+ - "\7\14\1\0\1\14\1\0\4\14\2\0\17\14\1\0\71\14\1\0"+ - "\4\14\2\0\103\14\2\0\3\22\40\0\20\14\20\0\125\14\14\0"+ - "\u026c\14\2\0\21\14\1\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\1\14\5\0\106\14\12\0\35\14\3\0\3\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\13\0\54\14\4\0\21\22\7\14\2\22\6\0"+ - "\12\22\46\0\27\14\2\22\3\22\4\0\65\14\1\22\1\22\1\22"+ - "\7\22\1\0\1\22\1\22\1\22\2\22\10\22\6\22\12\22\2\0"+ - "\1\22\12\22\6\0\12\22\15\0\1\14\130\0\4\22\1\22\57\14"+ - "\1\22\1\22\5\22\1\22\1\22\5\22\1\22\2\22\7\14\4\0"+ - "\12\22\21\0\11\22\14\0\2\22\1\22\36\14\1\22\4\22\2\22"+ - "\2\22\1\22\3\0\2\14\12\22\6\0\46\14\1\22\1\22\2\22"+ - "\3\22\1\22\1\22\3\22\2\22\14\0\44\14\10\22\10\22\2\22"+ - "\2\22\10\0\12\22\3\0\3\14\12\22\36\14\6\14\122\0\3\22"+ - "\1\0\15\22\1\22\7\22\4\14\1\22\4\14\1\22\15\0\54\14"+ - "\66\14\26\14\1\14\42\14\45\14\47\22\25\0\4\22\1\14\1\14"+ + "\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"+ @@ -191,7 +173,7 @@ class _PythonLexer implements FlexLexer { "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\11\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"+ @@ -200,78 +182,30 @@ class _PythonLexer implements FlexLexer { "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\11\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\20\0\15\14\63\0\15\22\4\0\1\22\3\0"+ - "\14\22\21\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\4\14\1\14\4\14\1\14\2\0"+ - "\2\14\2\14\5\0\1\14\4\14\4\0\1\14\21\0\43\14\1\14"+ - "\1\14\4\14\u0a77\0\57\14\1\0\57\14\1\0\1\14\1\14\3\14"+ - "\2\14\1\14\1\14\1\14\1\14\1\14\1\14\4\14\1\14\1\14"+ - "\2\14\1\14\7\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\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ - "\1\14\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\6\0\1\14\1\14\1\14\1\14\3\22"+ - "\16\0\46\14\12\0\66\14\11\0\1\14\17\0\1\22\27\14\11\0"+ - "\7\14\1\0\7\14\1\0\7\14\1\0\7\14\1\0\7\14\1\0"+ - "\7\14\1\0\7\14\1\0\7\14\1\0\40\22\57\0\1\14\u01d5\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\0\3\14\1\14\5\0\51\14\3\0\136\14\21\0\33\14"+ - "\65\0\20\14\u0200\0\u19b6\14\112\0\u51cc\14\64\0\25\14\1\14\u0477\14"+ - "\103\0\50\14\6\14\2\0\u010c\14\1\14\3\0\20\14\12\22\2\14"+ - "\24\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\22\14\0"+ - "\2\22\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\10\0\106\14\12\14"+ - "\2\22\45\0\11\14\2\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\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\1\14\1\14\1\14\1\14"+ - "\1\14\10\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\2\0\1\14\1\14"+ - "\1\14\1\14\1\0\1\14\1\14\16\0\1\14\1\14\1\14\1\14"+ - "\1\14\1\14\1\14\1\14\1\14\1\14\120\0\1\14\7\14\1\22"+ - "\3\14\1\22\4\14\1\22\27\14\2\22\2\22\1\22\30\0\64\14"+ - "\14\0\2\22\62\14\20\22\1\22\13\0\12\22\6\0\22\22\6\14"+ - "\3\0\1\14\4\0\12\22\34\14\10\22\2\0\27\14\13\22\2\22"+ - "\14\0\35\14\3\0\3\22\1\22\57\14\1\22\2\22\4\22\2\22"+ - "\1\22\4\22\16\0\1\14\12\22\46\0\51\14\6\22\2\22\2\22"+ - "\2\22\2\22\11\0\3\14\1\22\10\14\1\22\1\22\2\0\12\22"+ - "\6\0\20\14\1\14\6\14\3\0\1\14\1\22\4\0\60\14\1\22"+ - "\1\14\3\22\2\14\2\22\5\14\2\22\1\14\1\22\1\14\30\0"+ - "\2\14\1\14\43\0\6\14\2\0\6\14\2\0\6\14\11\0\7\14"+ - "\1\0\7\14\221\0\43\14\2\22\1\22\2\22\1\22\2\22\1\0"+ - "\1\22\1\22\2\0\12\22\6\0\u2ba4\14\14\0\27\14\4\0\61\14"+ - "\u2104\0\u012e\14\2\0\76\14\2\0\152\14\46\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\7\22\14\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\13\0\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"; + "\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"+ + "\53\0\2\43\25\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 @@ -289,24 +223,27 @@ class _PythonLexer implements FlexLexer { "\1\14\12\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\2\43\2\44\1\40\1\2\4\0\1\2\1\45"+ - "\1\0\1\46\3\3\1\47\5\3\1\50\2\3\6\7"+ - "\7\3\1\51\1\52\1\53\5\3\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\1\72\1\73\1\0\3\44\1\74"+ - "\3\44\1\75\1\0\3\2\1\45\1\0\1\76\12\3"+ - "\1\7\2\77\1\100\1\3\1\101\1\102\1\103\2\3"+ - "\1\104\5\3\1\105\1\106\1\107\1\110\1\0\1\44"+ - "\1\111\1\112\1\0\1\111\1\113\1\3\2\0\3\3"+ - "\1\114\1\115\2\3\4\0\4\3\1\116\3\3\3\0"+ - "\2\112\1\0\1\3\2\0\1\117\3\3\1\120\1\0"+ - "\2\77\1\0\2\3\1\121\1\3\1\122\1\3\1\123"+ - "\3\0\2\111\1\0\1\3\1\124\1\125\1\3\3\77"+ - "\1\126\1\127\1\130\1\131\3\111\1\132\1\3\4\0"+ - "\1\133\2\77\2\111"; + "\1\42\2\43\2\44\3\3\2\7\1\3\1\40\1\2"+ + "\4\0\1\2\1\45\1\0\1\46\3\3\1\47\5\3"+ + "\1\50\2\3\1\7\1\51\2\7\2\51\3\7\1\51"+ + "\7\3\1\52\1\53\1\54\5\3\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\1\72\1\73\1\74\1\0\3\44\1\75"+ + "\3\44\2\3\6\7\1\76\1\0\3\2\1\45\1\0"+ + "\1\77\12\3\1\7\1\100\1\101\2\51\1\101\1\102"+ + "\1\3\1\103\1\104\1\105\2\3\1\106\5\3\1\107"+ + "\1\110\1\111\1\112\1\0\1\44\1\113\1\114\1\0"+ + "\1\113\1\3\1\7\2\101\1\115\1\3\2\0\3\3"+ + "\1\116\1\117\2\3\1\120\2\0\2\120\2\0\1\120"+ + "\4\3\1\121\3\3\3\0\2\114\7\0\1\3\2\0"+ + "\1\122\3\3\1\123\1\124\1\0\1\101\1\124\1\101"+ + "\1\0\2\3\1\125\1\3\1\126\1\3\1\127\3\0"+ + "\2\113\4\0\2\101\1\0\1\3\1\130\1\131\1\3"+ + "\3\101\1\132\1\133\1\134\1\135\3\113\3\101\1\136"+ + "\1\3\2\120\6\0\1\137\1\124\2\101\2\113\2\101"; private static int [] zzUnpackAction() { - int [] result = new int[251]; + int [] result = new int[304]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -331,41 +268,47 @@ class _PythonLexer implements FlexLexer { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\110\0\220\0\330\0\u0120\0\u0168\0\u01b0\0\u01f8"+ - "\0\u0240\0\u0288\0\u02d0\0\u0318\0\u0360\0\u03a8\0\u03f0\0\u0438"+ - "\0\u0480\0\u04c8\0\330\0\u0510\0\330\0\330\0\330\0\330"+ - "\0\u0558\0\u05a0\0\u05e8\0\u0630\0\u0678\0\u06c0\0\u0708\0\u0750"+ - "\0\u0798\0\u07e0\0\u0828\0\u0870\0\u08b8\0\u0900\0\u0948\0\u0990"+ - "\0\u09d8\0\u0a20\0\u0a68\0\u0ab0\0\u0af8\0\330\0\330\0\330"+ - "\0\330\0\330\0\330\0\330\0\330\0\330\0\330\0\330"+ - "\0\330\0\330\0\u0b40\0\u0b88\0\u0bd0\0\u0c18\0\u0c60\0\u0ca8"+ - "\0\u0cf0\0\u0d38\0\u0d80\0\330\0\u0dc8\0\u0e10\0\330\0\u0e58"+ - "\0\u0ea0\0\u0ee8\0\u01f8\0\u0f30\0\u0f78\0\u0fc0\0\u1008\0\u1050"+ - "\0\330\0\u1098\0\u10e0\0\u1128\0\u1170\0\u11b8\0\u1200\0\u1248"+ - "\0\u1290\0\u12d8\0\u1320\0\u1368\0\u13b0\0\u13f8\0\u1440\0\u1488"+ - "\0\u01f8\0\u01f8\0\u01f8\0\u14d0\0\u1518\0\u1560\0\u15a8\0\u15f0"+ - "\0\330\0\330\0\330\0\u1638\0\330\0\u1680\0\330\0\330"+ - "\0\330\0\330\0\330\0\u16c8\0\330\0\330\0\u1710\0\330"+ - "\0\u1758\0\u17a0\0\u17e8\0\u1830\0\330\0\u1878\0\u18c0\0\u1908"+ - "\0\330\0\u0c18\0\u1950\0\u1998\0\u19e0\0\u1a28\0\u1a70\0\u01f8"+ - "\0\u1ab8\0\u1b00\0\u1b48\0\u1b90\0\u1bd8\0\u1c20\0\u1c68\0\u1cb0"+ - "\0\u1cf8\0\u1d40\0\330\0\u1d88\0\u1dd0\0\u01f8\0\u1e18\0\u01f8"+ - "\0\u01f8\0\u01f8\0\u1e60\0\u1ea8\0\u01f8\0\u1ef0\0\u1f38\0\u1f80"+ - "\0\u1fc8\0\u2010\0\330\0\330\0\330\0\330\0\u2058\0\u20a0"+ - "\0\u20e8\0\330\0\u20a0\0\u2130\0\u01f8\0\u2178\0\u21c0\0\u2208"+ - "\0\u2250\0\u2298\0\u22e0\0\u01f8\0\u01f8\0\u2328\0\u2370\0\u23b8"+ - "\0\u2400\0\u2448\0\u2490\0\u24d8\0\u2520\0\u2568\0\u25b0\0\u01f8"+ - "\0\u25f8\0\u2640\0\u2688\0\u26d0\0\u2718\0\u2760\0\u27a8\0\u27f0"+ - "\0\u2838\0\u2880\0\u1170\0\u1290\0\u01f8\0\u28c8\0\u2910\0\u2958"+ - "\0\u01f8\0\u29a0\0\u29e8\0\u2a30\0\u2a78\0\u2ac0\0\u2b08\0\u01f8"+ - "\0\u2b50\0\u01f8\0\u2b98\0\u01f8\0\u2be0\0\u2c28\0\u2c70\0\u2cb8"+ - "\0\u2d00\0\u2d48\0\u2d90\0\u01f8\0\u01f8\0\u2dd8\0\330\0\u2e20"+ - "\0\u2e68\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u20a0\0\u2eb0\0\u2ef8"+ - "\0\u01f8\0\u2f40\0\u2f88\0\u2fd0\0\u3018\0\u3060\0\u01f8\0\u29a0"+ - "\0\u2a78\0\u2c70\0\u2d48"; + "\0\0\0\111\0\222\0\333\0\u0124\0\u016d\0\u01b6\0\u01ff"+ + "\0\u0248\0\u0291\0\u02da\0\u0323\0\u036c\0\u03b5\0\u03fe\0\u0447"+ + "\0\u0490\0\u04d9\0\333\0\u0522\0\333\0\333\0\333\0\333"+ + "\0\u056b\0\u05b4\0\u05fd\0\u0646\0\u068f\0\u06d8\0\u0721\0\u076a"+ + "\0\u07b3\0\u07fc\0\u0845\0\u088e\0\u08d7\0\u0920\0\u0969\0\u09b2"+ + "\0\u09fb\0\u0a44\0\u0a8d\0\u0ad6\0\u0b1f\0\333\0\333\0\333"+ + "\0\333\0\333\0\333\0\333\0\333\0\333\0\333\0\333"+ + "\0\333\0\333\0\u0b68\0\u0bb1\0\u0bfa\0\u0c43\0\u0c8c\0\u0cd5"+ + "\0\u0d1e\0\u0d67\0\u0db0\0\u0df9\0\u0e42\0\u0e8b\0\u0ed4\0\u0f1d"+ + "\0\u0f66\0\333\0\u0faf\0\u0ff8\0\333\0\u1041\0\u108a\0\u10d3"+ + "\0\u01ff\0\u111c\0\u1165\0\u11ae\0\u11f7\0\u1240\0\333\0\u1289"+ + "\0\u12d2\0\u131b\0\u1364\0\u13ad\0\u13f6\0\333\0\u131b\0\u143f"+ + "\0\u1488\0\u14d1\0\u143f\0\u151a\0\u1563\0\u15ac\0\u15f5\0\u163e"+ + "\0\u1687\0\u16d0\0\u01ff\0\u01ff\0\u01ff\0\u1719\0\u1762\0\u17ab"+ + "\0\u17f4\0\u183d\0\333\0\333\0\333\0\u1886\0\333\0\u18cf"+ + "\0\333\0\333\0\333\0\333\0\333\0\u1918\0\333\0\333"+ + "\0\u1961\0\333\0\u19aa\0\u19f3\0\u1a3c\0\u1a85\0\333\0\u1ace"+ + "\0\u1b17\0\u1b60\0\u1ba9\0\u1bf2\0\u1c3b\0\u1c84\0\u1ccd\0\u1d16"+ + "\0\u1d5f\0\u1da8\0\333\0\u0df9\0\u1df1\0\u1e3a\0\u1e83\0\u1ecc"+ + "\0\u1f15\0\u01ff\0\u1f5e\0\u1fa7\0\u1ff0\0\u2039\0\u2082\0\u20cb"+ + "\0\u2114\0\u215d\0\u21a6\0\u21ef\0\u2238\0\333\0\u2281\0\u22ca"+ + "\0\u2313\0\u235c\0\u01ff\0\u23a5\0\u01ff\0\u01ff\0\u01ff\0\u23ee"+ + "\0\u2437\0\u01ff\0\u2480\0\u24c9\0\u2512\0\u255b\0\u25a4\0\333"+ + "\0\333\0\333\0\333\0\u25ed\0\u2636\0\u267f\0\333\0\u2636"+ + "\0\u26c8\0\u2711\0\333\0\u275a\0\u27a3\0\u01ff\0\u27ec\0\u2835"+ + "\0\u287e\0\u28c7\0\u2910\0\u2959\0\u01ff\0\u01ff\0\u29a2\0\u29eb"+ + "\0\u2a34\0\u2a7d\0\u2ac6\0\u2281\0\u2b0f\0\u2b58\0\u2ba1\0\u235c"+ + "\0\u2bea\0\u2c33\0\u2c7c\0\u2cc5\0\u01ff\0\u2d0e\0\u2d57\0\u2da0"+ + "\0\u2de9\0\u2e32\0\u2e7b\0\u2ec4\0\u2f0d\0\u2f56\0\u2f9f\0\u2fe8"+ + "\0\u3031\0\u307a\0\u30c3\0\u310c\0\u3155\0\u319e\0\u31e7\0\u01ff"+ + "\0\u3230\0\u3279\0\u32c2\0\u01ff\0\u2281\0\u330b\0\u3354\0\u235c"+ + "\0\u339d\0\u33e6\0\u342f\0\u3478\0\u01ff\0\u34c1\0\u01ff\0\u350a"+ + "\0\u01ff\0\u3553\0\u359c\0\u35e5\0\u362e\0\u3677\0\u36c0\0\u1c84"+ + "\0\u1da8\0\u3709\0\u3752\0\u379b\0\u37e4\0\u382d\0\u01ff\0\u01ff"+ + "\0\u3876\0\u38bf\0\u3908\0\u3951\0\u01ff\0\u01ff\0\u01ff\0\u01ff"+ + "\0\u2636\0\u399a\0\u39e3\0\333\0\u3a2c\0\u3a75\0\u01ff\0\u3abe"+ + "\0\u3b07\0\333\0\u3b50\0\u3b99\0\u3be2\0\u3c2b\0\u3c74\0\u3cbd"+ + "\0\u01ff\0\333\0\u3d06\0\u3d4f\0\u35e5\0\u36c0\0\u3709\0\u37e4"; private static int [] zzUnpackRowMap() { - int [] result = new int[251]; + int [] result = new int[304]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -391,207 +334,253 @@ class _PythonLexer implements FlexLexer { "\1\4\1\5\2\6\1\7\1\6\1\10\1\11\1\12"+ "\1\13\1\14\1\4\4\10\1\15\1\10\1\4\1\16"+ "\1\17\1\10\1\20\1\10\1\21\3\15\1\22\1\23"+ - "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\10\1\34\1\35\1\10\1\36\1\37\1\40\1\10"+ - "\1\41\1\42\1\10\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\1\71\10\72\1\73\1\72\1\14\5\72\1\73"+ - "\7\72\4\73\1\74\1\23\1\75\1\25\1\26\1\27"+ - "\1\30\4\72\1\73\40\72\1\4\1\5\2\6\1\7"+ - "\1\6\1\10\1\11\1\12\1\13\1\14\1\4\4\10"+ - "\1\15\1\10\1\4\1\16\1\17\1\10\1\20\1\10"+ - "\1\21\3\15\1\22\1\23\1\24\1\25\1\26\1\27"+ - "\1\30\1\31\1\32\1\33\1\10\1\34\1\35\1\10"+ - "\1\36\1\37\1\40\1\10\1\41\1\42\1\10\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\76\1\70\1\71\111\0\1\77"+ - "\1\100\1\77\1\0\1\77\1\101\1\102\1\103\1\104"+ - "\4\0\1\101\1\102\1\103\1\104\1\0\1\105\2\106"+ - "\1\0\1\107\61\0\3\6\1\0\1\6\3\0\1\104"+ - "\7\0\1\104\1\0\1\105\2\106\1\0\1\107\61\0"+ - "\6\10\1\110\2\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\4\10\1\111\2\10\1\112\6\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ + "\1\24\1\25\1\26\1\27\1\30\1\4\1\31\1\32"+ + "\1\33\1\10\1\34\1\35\1\10\1\36\1\37\1\40"+ + "\1\10\1\41\1\42\1\10\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\1\71\10\72\1\73\1\72\1\14\5\72"+ + "\1\73\7\72\4\73\1\74\1\23\1\75\1\25\1\26"+ + "\1\27\1\30\5\72\1\73\40\72\1\4\1\5\2\6"+ + "\1\7\1\6\1\10\1\11\1\76\1\13\1\14\1\4"+ + "\4\10\1\77\1\10\1\4\1\16\1\17\1\10\1\20"+ + "\1\10\1\100\3\77\1\101\1\23\1\102\1\25\1\26"+ + "\1\27\1\30\1\4\1\31\1\32\1\33\1\10\1\103"+ + "\1\35\1\10\1\36\1\37\1\40\1\10\1\41\1\42"+ + "\1\10\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\104\1\70\1\71"+ + "\112\0\1\105\1\106\1\105\1\0\1\105\1\107\1\110"+ + "\1\111\1\112\4\0\1\107\1\110\1\111\1\112\1\0"+ + "\1\113\2\114\1\0\1\115\62\0\3\6\1\0\1\6"+ + "\3\0\1\112\7\0\1\112\1\0\1\113\2\114\1\0"+ + "\1\115\62\0\6\10\1\116\2\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\4\10\1\117\2\10\1\120"+ + "\6\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\4\10\1\121\11\10\30\0"+ + "\7\10\1\122\1\10\2\0\4\10\1\122\2\10\1\0"+ + "\2\10\1\0\1\10\4\122\1\22\1\0\1\24\5\0"+ + "\4\10\1\123\11\10\30\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\1\124\15\10\27\0\13\14"+ + "\1\0\23\14\1\0\51\14\1\0\7\10\1\122\1\10"+ + "\2\0\4\10\1\122\2\10\1\0\2\10\1\0\1\10"+ + "\4\122\1\22\1\0\1\24\5\0\4\10\1\122\11\10"+ + "\30\0\3\113\1\0\1\113\104\0\5\10\1\125\2\10"+ + "\1\126\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\16\10\112\0\1\127\26\0\6\10\1\130\1\122\1\131"+ + "\2\0\4\10\1\122\2\10\1\0\2\10\1\0\1\10"+ + "\4\122\1\22\1\0\1\24\5\0\4\10\1\122\11\10"+ + "\27\0\13\132\1\133\20\132\1\134\1\135\1\132\1\136"+ + "\2\132\2\137\45\132\13\140\1\133\21\140\1\141\1\142"+ + "\1\136\2\140\2\143\45\140\1\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\1\10\1\144\1\10"+ + "\1\145\12\10\30\0\6\10\1\146\2\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\16\10\30\0\11\10"+ + "\2\0\7\10\1\0\1\147\1\10\1\0\5\10\10\0"+ + "\16\10\30\0\7\10\1\122\1\10\2\0\4\10\1\122"+ + "\2\10\1\0\1\150\1\10\1\0\1\10\4\122\1\22"+ + "\1\0\1\24\5\0\1\151\3\10\1\122\11\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\4\10\1\152\11\10\30\0\3\10\1\153\5\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\10\1\154"+ + "\1\10\1\155\6\10\1\156\3\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\157\15\10"+ + "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\7\10\1\160\6\10\30\0\10\10\1\161\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\15\10\1\162\112\0\1\163\110\0\1\164\110\0\1\165"+ + "\1\166\107\0\1\167\1\0\1\170\106\0\1\171\110\0"+ + "\1\172\110\0\1\173\110\0\1\174\110\0\1\175\6\0"+ + "\1\176\101\0\1\177\6\0\1\200\1\201\100\0\1\202"+ + "\35\0\1\203\7\0\1\203\7\0\4\203\1\74\1\0"+ + "\1\75\11\0\1\203\40\0\13\204\1\0\20\204\1\205"+ + "\1\206\1\204\1\207\51\204\13\210\1\0\21\210\1\211"+ + "\1\212\1\207\51\210\1\0\7\10\1\213\1\10\2\0"+ + "\4\10\1\213\2\10\1\0\2\10\1\0\1\10\4\213"+ + "\1\101\1\0\1\102\5\0\4\10\1\214\11\10\30\0"+ + "\7\10\1\213\1\10\2\0\4\10\1\213\2\10\1\0"+ + "\2\10\1\0\1\10\4\213\1\101\1\0\1\102\5\0"+ + "\4\10\1\213\11\10\30\0\6\10\1\130\1\213\1\131"+ + "\2\0\4\10\1\213\2\10\1\0\2\10\1\0\1\10"+ + "\4\213\1\101\1\0\1\102\5\0\4\10\1\213\11\10"+ + "\27\0\13\215\1\0\20\215\1\216\1\217\1\215\1\0"+ + "\51\215\13\220\1\0\21\220\1\221\1\222\1\0\51\220"+ + "\1\0\7\10\1\213\1\10\2\0\4\10\1\213\2\10"+ + "\1\0\1\150\1\10\1\0\1\10\4\213\1\101\1\0"+ + "\1\102\5\0\1\151\3\10\1\213\11\10\66\0\1\223"+ + "\1\224\51\0\1\105\1\106\1\105\1\0\1\105\3\0"+ + "\1\112\7\0\1\112\1\0\1\113\2\114\1\0\1\115"+ + "\62\0\3\106\1\0\1\106\15\0\1\113\2\114\1\0"+ + "\1\115\62\0\5\225\2\0\1\225\4\0\1\225\2\0"+ + "\1\225\3\0\2\225\2\0\2\225\12\0\1\225\1\0"+ + "\1\225\43\0\1\226\1\0\1\226\1\0\1\226\104\0"+ + "\1\227\3\0\1\227\104\0\3\113\1\0\1\113\16\0"+ + "\2\114\1\0\1\115\62\0\3\230\1\0\1\230\20\0"+ + "\1\231\33\0\1\231\27\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\4\10\1\232\11\10\30\0"+ + "\6\10\1\233\2\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\1\10\1\234\14\10\30\0"+ + "\7\10\1\235\1\10\2\0\4\10\1\235\2\10\1\0"+ + "\2\10\1\0\1\10\4\235\1\22\1\0\1\24\5\0"+ + "\4\10\1\235\11\10\30\0\7\10\1\235\1\10\2\0"+ + "\4\10\1\235\2\10\1\0\1\236\1\10\1\0\1\10"+ + "\4\235\1\22\1\0\1\24\5\0\4\10\1\235\11\10"+ + "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\12\10\1\237\3\10\30\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\1\10\1\240\3\10\10\0\16\10"+ + "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\3\10\1\241\3\10\1\242\6\10\30\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\1\10"+ + "\1\243\14\10\30\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\1\244\15\10\27\0\13\132\1\133"+ + "\20\132\1\245\1\135\1\132\1\136\2\132\2\137\45\132"+ + "\37\0\1\246\64\0\1\133\20\0\1\247\2\0\1\136"+ + "\2\0\2\136\45\0\13\132\1\250\23\132\1\137\2\132"+ + "\2\137\45\132\13\140\1\133\21\140\1\141\1\245\1\136"+ + "\2\140\2\143\60\140\1\251\23\140\1\143\2\140\2\143"+ + "\45\140\13\0\1\133\22\0\1\252\1\136\2\0\2\136"+ + "\46\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\2\10\1\253\13\10\30\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\3\10\1\254\12\10"+ + "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\5\10\1\255\10\10\30\0\3\10\1\256\4\10"+ + "\1\257\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ "\16\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\4\10\1\113\11\10\30\0\7\10\1\114"+ - "\1\10\2\0\4\10\1\114\2\10\1\0\2\10\1\0"+ - "\1\10\4\114\1\22\1\0\1\24\4\0\4\10\1\115"+ - "\11\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\1\116\15\10\27\0\13\14\1\0\23\14"+ - "\1\0\50\14\1\0\7\10\1\114\1\10\2\0\4\10"+ - "\1\114\2\10\1\0\2\10\1\0\1\10\4\114\1\22"+ - "\1\0\1\24\4\0\4\10\1\114\11\10\30\0\3\105"+ - "\1\0\1\105\103\0\5\10\1\117\2\10\1\120\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\7\0\16\10\111\0"+ - "\1\121\26\0\6\10\1\122\1\114\1\123\2\0\4\10"+ - "\1\114\2\10\1\0\2\10\1\0\1\10\4\114\1\22"+ - "\1\0\1\24\4\0\4\10\1\114\11\10\27\0\13\124"+ - "\1\0\20\124\1\125\1\126\1\124\1\0\50\124\13\127"+ - "\1\0\21\127\1\130\1\131\1\0\50\127\1\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\7\0\1\10"+ - "\1\132\1\10\1\133\12\10\30\0\6\10\1\134\2\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\7\0\16\10"+ - "\30\0\11\10\2\0\7\10\1\0\1\135\1\10\1\0"+ - "\5\10\7\0\16\10\30\0\7\10\1\114\1\10\2\0"+ - "\4\10\1\114\2\10\1\0\1\136\1\10\1\0\1\10"+ - "\4\114\1\22\1\0\1\24\4\0\1\137\3\10\1\114"+ - "\11\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\4\10\1\140\11\10\30\0\3\10\1\141"+ - "\5\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\1\10\1\142\1\10\1\143\6\10\1\144\3\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\1\145\15\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\7\0\7\10\1\146\6\10\30\0\10\10"+ - "\1\147\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\16\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\15\10\1\150\111\0\1\151\107\0\1\152"+ - "\107\0\1\153\1\154\106\0\1\155\1\0\1\156\105\0"+ - "\1\157\107\0\1\160\107\0\1\161\107\0\1\162\107\0"+ - "\1\163\6\0\1\164\100\0\1\165\6\0\1\166\1\167"+ - "\77\0\1\170\35\0\1\171\7\0\1\171\7\0\4\171"+ - "\1\74\1\0\1\75\10\0\1\171\40\0\13\172\1\0"+ - "\20\172\1\173\1\174\1\172\1\175\50\172\13\176\1\0"+ - "\21\176\1\177\1\200\1\175\50\176\37\0\1\201\1\202"+ - "\50\0\1\77\1\100\1\77\1\0\1\77\3\0\1\104"+ - "\7\0\1\104\1\0\1\105\2\106\1\0\1\107\61\0"+ - "\3\100\1\0\1\100\15\0\1\105\2\106\1\0\1\107"+ - "\61\0\5\203\2\0\1\203\4\0\1\203\2\0\1\203"+ - "\3\0\2\203\2\0\2\203\11\0\1\203\1\0\1\203"+ - "\43\0\1\204\1\0\1\204\1\0\1\204\103\0\1\205"+ - "\3\0\1\205\103\0\3\105\1\0\1\105\16\0\2\106"+ - "\1\0\1\107\61\0\3\206\1\0\1\206\20\0\1\207"+ - "\32\0\1\207\27\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\7\0\4\10\1\210\11\10\30\0\6\10"+ - "\1\211\2\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\7\0\16\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\7\0\1\10\1\212\14\10\30\0\7\10"+ - "\1\213\1\10\2\0\4\10\1\213\2\10\1\0\2\10"+ - "\1\0\1\10\4\213\1\22\1\0\1\24\4\0\4\10"+ - "\1\213\11\10\30\0\7\10\1\213\1\10\2\0\4\10"+ - "\1\213\2\10\1\0\1\214\1\10\1\0\1\10\4\213"+ - "\1\22\1\0\1\24\4\0\4\10\1\213\11\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\12\10\1\215\3\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\1\10\1\216\3\10\7\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\3\10\1\217\3\10\1\220\6\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\7\0\1\10\1\221"+ - "\14\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\1\222\15\10\27\0\13\124\1\0\20\124"+ - "\1\223\1\126\1\124\1\0\50\124\34\0\1\224\53\0"+ - "\110\124\13\127\1\0\21\127\1\130\1\223\1\0\160\127"+ - "\36\0\1\225\52\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\7\0\2\10\1\226\13\10\30\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\7\0\3\10"+ - "\1\227\12\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\7\0\5\10\1\230\10\10\30\0\3\10"+ - "\1\231\4\10\1\232\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\16\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\5\10\1\233\10\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\7\10\1\234\6\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\11\10\1\235\4\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\10\10\1\236\5\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\3\10\1\237\12\10\30\0"+ - "\11\10\2\0\7\10\1\0\1\240\1\10\1\0\5\10"+ - "\7\0\16\10\30\0\6\10\1\241\2\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\16\10\30\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\7\0\7\10"+ - "\1\242\6\10\111\0\1\243\107\0\1\244\107\0\1\245"+ - "\107\0\1\246\35\0\1\247\7\0\1\247\7\0\4\247"+ - "\1\74\1\0\1\75\10\0\1\247\40\0\13\172\1\0"+ - "\20\172\1\250\1\174\1\172\1\175\50\172\34\0\1\251"+ - "\1\252\1\0\1\175\2\253\45\0\1\175\110\172\13\176"+ - "\1\0\21\176\1\177\1\250\1\175\160\176\35\0\1\252"+ - "\1\254\1\175\2\253\45\0\1\175\1\0\5\203\2\0"+ - "\1\203\1\104\3\0\1\203\2\0\1\203\1\104\2\0"+ - "\2\203\2\0\2\203\11\0\1\203\1\0\1\203\43\0"+ - "\1\204\1\0\1\204\1\0\1\204\3\0\1\104\7\0"+ - "\1\104\67\0\1\205\3\0\1\205\3\0\1\104\7\0"+ - "\1\104\67\0\3\206\1\0\1\206\21\0\1\107\61\0"+ - "\3\206\1\0\1\206\103\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\12\10\1\255\3\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\1\256\15\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\1\257\1\0\1\260\4\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\1\261\15\10\30\0\7\10\1\262\1\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\16\10\30\0\11\10"+ - "\2\0\7\10\1\0\1\263\1\10\1\0\5\10\7\0"+ - "\16\10\30\0\11\10\2\0\7\10\1\0\1\264\1\10"+ - "\1\0\5\10\7\0\16\10\30\0\3\10\1\265\5\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\7\0\16\10"+ + "\5\10\10\0\5\10\1\260\10\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\7\10\1\261"+ + "\6\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\11\10\1\262\4\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\10\10\1\263"+ + "\5\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\3\10\1\264\12\10\30\0\11\10\2\0"+ + "\7\10\1\0\1\265\1\10\1\0\5\10\10\0\16\10"+ + "\30\0\6\10\1\266\2\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\16\10\30\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\7\10\1\267\6\10"+ + "\112\0\1\270\110\0\1\271\110\0\1\272\110\0\1\273"+ + "\35\0\1\274\7\0\1\274\7\0\4\274\1\74\1\0"+ + "\1\75\11\0\1\274\40\0\13\204\1\0\20\204\1\275"+ + "\1\206\1\204\1\207\51\204\34\0\1\276\1\277\1\0"+ + "\1\207\2\300\46\0\1\207\111\204\13\210\1\0\21\210"+ + "\1\211\1\275\1\207\162\210\35\0\1\277\1\301\1\207"+ + "\2\300\46\0\1\207\1\0\7\10\1\302\1\10\2\0"+ + "\4\10\1\302\2\10\1\0\2\10\1\0\1\10\4\302"+ + "\1\101\1\0\1\102\5\0\4\10\1\302\11\10\30\0"+ + "\7\10\1\302\1\10\2\0\4\10\1\302\2\10\1\0"+ + "\1\236\1\10\1\0\1\10\4\302\1\101\1\0\1\102"+ + "\5\0\4\10\1\302\11\10\27\0\13\215\1\0\20\215"+ + "\1\303\1\217\1\215\1\0\51\215\34\0\1\304\54\0"+ + "\111\215\13\220\1\0\21\220\1\221\1\303\1\0\162\220"+ + "\36\0\1\305\53\0\5\225\2\0\1\225\1\112\3\0"+ + "\1\225\2\0\1\225\1\112\2\0\2\225\2\0\2\225"+ + "\12\0\1\225\1\0\1\225\43\0\1\226\1\0\1\226"+ + "\1\0\1\226\3\0\1\112\7\0\1\112\70\0\1\227"+ + "\3\0\1\227\3\0\1\112\7\0\1\112\70\0\3\230"+ + "\1\0\1\230\21\0\1\115\62\0\3\230\1\0\1\230"+ + "\104\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\12\10\1\306\3\10\30\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\1\307\15\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\1\310"+ + "\1\0\1\311\5\0\16\10\30\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\1\312\15\10\30\0"+ + "\7\10\1\313\1\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ + "\1\314\1\10\1\0\5\10\10\0\16\10\30\0\11\10"+ + "\2\0\7\10\1\0\1\315\1\10\1\0\5\10\10\0"+ + "\16\10\30\0\3\10\1\316\5\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\16\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\5\10\1\317"+ + "\10\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\3\10\1\320\12\10\42\0\1\133\23\0"+ + "\1\136\2\0\2\136\45\0\13\247\1\321\20\247\1\322"+ + "\1\323\1\247\1\324\2\247\2\324\45\247\13\132\1\133"+ + "\20\132\1\245\1\135\1\132\1\246\2\132\2\137\45\132"+ + "\13\140\1\133\21\140\1\141\1\245\1\246\2\140\2\143"+ + "\45\140\13\252\1\325\21\252\1\326\1\327\1\330\2\252"+ + "\2\330\45\252\1\0\11\10\2\0\7\10\1\0\1\331"+ + "\1\10\1\0\5\10\10\0\16\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\4\10\1\332\10\0\16\10"+ "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\7\0\5\10\1\266\10\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\3\10\1\267\12\10"+ - "\27\0\34\224\1\270\1\271\52\224\35\225\1\272\1\273"+ - "\51\225\1\0\11\10\2\0\7\10\1\0\1\274\1\10"+ - "\1\0\5\10\7\0\16\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\4\10\1\275\7\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\3\10\1\276\12\10\30\0\6\10\1\277\2\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\7\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\3\10\1\300\12\10\30\0\10\10\1\301\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\16\10\30\0\7\10"+ - "\1\302\1\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\7\0\16\10\30\0\10\10\1\303\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\16\10\63\0\1\304\1\0"+ - "\1\305\106\0\1\252\1\0\1\175\2\253\45\0\1\175"+ - "\34\251\1\306\1\307\52\251\35\254\1\310\1\311\51\254"+ - "\1\0\10\10\1\312\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\16\10\63\0\1\313\111\0\1\314\52\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\6\10\1\315\7\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\2\10\1\316\13\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\10\10\1\317\5\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\7\10\1\320\6\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\3\10\1\321\12\10\27\0\34\224\1\322\1\323\162\224"+ - "\145\225\1\324\1\325\51\225\1\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\4\10\1\326\11\10"+ + "\10\0\3\10\1\333\12\10\30\0\6\10\1\334\2\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\16\10"+ "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\7\0\4\10\1\327\11\10\30\0\11\10\2\0\7\10"+ - "\1\0\1\330\1\10\1\0\5\10\7\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\4\10\1\331\11\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\2\10\1\332\13\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\1\333\15\10\30\0\11\10\2\0\7\10\1\0\1\334"+ - "\1\10\1\0\5\10\7\0\16\10\63\0\1\335\111\0"+ - "\1\336\51\0\34\251\1\337\1\340\162\251\145\254\1\341"+ - "\1\342\51\254\1\0\10\10\1\343\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\16\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\7\0\1\344\15\10"+ + "\10\0\3\10\1\335\12\10\30\0\10\10\1\336\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\30\0"+ + "\7\10\1\337\1\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\30\0\10\10\1\340\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\16\10\63\0\1\341"+ + "\1\0\1\342\107\0\1\277\1\0\1\207\2\300\46\0"+ + "\1\207\34\276\1\343\1\344\53\276\35\301\1\345\1\346"+ + "\52\301\1\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\1\347\1\0\1\350\5\0\16\10\27\0\34\304"+ + "\1\351\1\352\53\304\35\305\1\353\1\354\52\305\1\0"+ + "\10\10\1\355\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\16\10\63\0\1\356\112\0\1\357\53\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\6\10"+ + "\1\360\7\10\30\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\2\10\1\361\13\10\30\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\10\10"+ + "\1\362\5\10\30\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\7\10\1\363\6\10\30\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\3\10"+ + "\1\364\12\10\27\0\13\247\1\321\20\247\1\322\1\323"+ + "\1\247\1\365\2\247\2\324\101\247\1\366\1\367\164\247"+ + "\13\252\1\325\21\252\1\326\1\327\1\370\2\252\2\330"+ + "\213\252\1\371\1\372\52\252\1\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\4\10\1\373\11\10"+ "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\7\0\5\10\1\345\10\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\1\10\1\346\14\10"+ - "\27\0\34\224\1\347\1\323\106\224\1\350\1\323\52\224"+ - "\35\225\1\324\1\351\106\225\1\324\1\347\51\225\1\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\5\10\1\352\10\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\7\0\1\10\1\353\14\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\7\0"+ - "\5\10\1\354\10\10\30\0\10\10\1\355\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\7\0\16\10\63\0\1\251"+ - "\111\0\1\254\51\0\34\251\1\356\1\340\106\251\1\357"+ - "\1\340\52\251\35\254\1\341\1\360\106\254\1\341\1\356"+ - "\51\254\1\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\7\0\11\10\1\361\4\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\4\10\1\362\7\0\16\10"+ - "\27\0\34\224\1\363\1\323\52\224\35\225\1\324\1\364"+ - "\51\225\34\251\1\365\1\340\52\251\35\254\1\341\1\366"+ - "\51\254\1\0\11\10\2\0\7\10\1\0\1\367\1\10"+ - "\1\0\5\10\7\0\16\10\27\0\34\224\1\370\1\323"+ - "\52\224\35\225\1\324\1\371\51\225\34\251\1\372\1\340"+ - "\52\251\35\254\1\341\1\373\51\254"; + "\10\0\4\10\1\374\11\10\30\0\11\10\2\0\7\10"+ + "\1\0\1\375\1\10\1\0\5\10\10\0\16\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\4\10\1\376\11\10\30\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\2\10\1\377\13\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\1\u0100\15\10\30\0\11\10\2\0\7\10\1\0\1\u0101"+ + "\1\10\1\0\5\10\10\0\16\10\63\0\1\u0102\112\0"+ + "\1\u0103\52\0\34\276\1\u0104\1\u0105\164\276\146\301\1\u0106"+ + "\1\u0107\52\301\34\0\1\u0108\112\0\1\u0109\52\0\34\304"+ + "\1\u010a\1\u010b\164\304\146\305\1\u010c\1\u010d\52\305\1\0"+ + "\10\10\1\u010e\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\16\10\63\0\1\247\112\0\1\252\53\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\1\u010f"+ + "\15\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\5\10\1\u0110\10\10\30\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\10\1\u0111"+ + "\14\10\27\0\34\247\1\u0112\1\367\66\247\1\321\20\247"+ + "\1\u0113\1\367\1\247\1\324\2\247\2\324\45\247\13\252"+ + "\1\325\21\252\1\371\1\u0114\1\330\2\252\2\330\102\252"+ + "\1\371\1\u0112\52\252\1\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\5\10\1\u0115\10\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\1\10\1\u0116\14\10\30\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\5\10\1\u0117\10\10\30\0"+ + "\10\10\1\u0118\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\16\10\63\0\1\276\112\0\1\301\52\0\34\276"+ + "\1\u0119\1\u0105\107\276\1\u011a\1\u0105\53\276\35\301\1\u0106"+ + "\1\u011b\107\301\1\u0106\1\u0119\52\301\34\304\1\u011c\1\u010b"+ + "\107\304\1\u011d\1\u010b\53\304\35\305\1\u010c\1\u011e\107\305"+ + "\1\u010c\1\u011c\52\305\1\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\11\10\1\u011f\4\10\30\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\4\10\1\u0120"+ + "\10\0\16\10\42\0\1\u0121\23\0\1\u0122\2\0\2\u0122"+ + "\45\0\13\247\1\321\20\247\1\u0123\1\367\1\247\1\324"+ + "\2\247\2\324\45\247\13\252\1\325\21\252\1\371\1\u0124"+ + "\1\330\2\252\2\330\45\252\34\276\1\u0125\1\u0105\53\276"+ + "\35\301\1\u0106\1\u0126\52\301\34\304\1\u0127\1\u010b\53\304"+ + "\35\305\1\u010c\1\u0128\52\305\1\0\11\10\2\0\7\10"+ + "\1\0\1\u0129\1\10\1\0\5\10\10\0\16\10\66\0"+ + "\1\u012a\51\0\34\247\1\u012b\1\367\53\247\35\252\1\371"+ + "\1\u012c\52\252\34\276\1\u012d\1\u0105\53\276\35\301\1\u0106"+ + "\1\u012e\52\301\34\304\1\u012f\1\u010b\53\304\35\305\1\u010c"+ + "\1\u0130\52\305\13\247\1\321\20\247\1\u0112\1\367\1\247"+ + "\1\324\2\247\2\324\45\247\13\252\1\325\21\252\1\371"+ + "\1\u0112\1\330\2\252\2\330\45\252"; private static int [] zzUnpackTrans() { - int [] result = new int[12456]; + int [] result = new int[15768]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -633,17 +622,18 @@ class _PythonLexer implements FlexLexer { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\1\11\16\1\1\11\1\1\4\11\25\1\15\11"+ - "\5\1\4\0\1\11\1\1\1\0\1\11\11\1\1\11"+ - "\27\1\3\11\1\1\1\11\1\1\5\11\1\1\2\11"+ - "\1\1\1\11\1\0\3\1\1\11\3\1\1\11\1\0"+ - "\4\1\1\0\13\1\1\11\17\1\4\11\1\0\2\1"+ - "\1\11\1\0\3\1\2\0\7\1\4\0\10\1\3\0"+ - "\2\1\1\0\1\1\2\0\5\1\1\0\2\1\1\0"+ - "\7\1\3\0\2\1\1\0\4\1\1\11\13\1\4\0"+ - "\5\1"; + "\13\1\4\0\1\11\1\1\1\0\1\11\11\1\1\11"+ + "\6\1\1\11\24\1\3\11\1\1\1\11\1\1\5\11"+ + "\1\1\2\11\1\1\1\11\1\0\3\1\1\11\13\1"+ + "\1\11\1\0\4\1\1\0\14\1\1\11\21\1\4\11"+ + "\1\0\2\1\1\11\1\0\2\1\1\11\4\1\2\0"+ + "\10\1\2\0\2\1\2\0\11\1\3\0\2\1\7\0"+ + "\1\1\2\0\6\1\1\0\3\1\1\0\7\1\3\0"+ + "\2\1\4\0\2\1\1\0\16\1\1\11\5\1\1\11"+ + "\6\0\1\1\1\11\6\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[251]; + int [] result = new int[304]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -733,7 +723,7 @@ return yylength()-i-1; char [] map = new char[0x10000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 4678) { + while (i < 3346) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -955,372 +945,396 @@ return yylength()-i-1; zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 82: + case 86: { return PyTokenTypes.YIELD_KEYWORD; } - case 92: break; + case 96: break; case 2: { return PyTokenTypes.INTEGER_LITERAL; } - case 93: break; + case 97: break; case 16: { return PyTokenTypes.DIV; } - case 94: break; + case 98: break; case 17: { return PyTokenTypes.PERC; } - case 95: break; + case 99: break; case 8: { return PyTokenTypes.BACKSLASH; } - case 96: break; + case 100: break; case 25: { return PyTokenTypes.RPAR; } - case 97: break; + case 101: break; case 1: { return PyTokenTypes.BAD_CHARACTER; } - case 98: break; + case 102: break; case 28: { return PyTokenTypes.LBRACE; } - case 99: break; + case 103: break; case 35: { yypushback(1); yybegin(YYINITIAL); } - case 100: break; - case 66: + case 104: break; + case 68: { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.DEF_KEYWORD; } - case 101: break; - case 80: + case 105: break; + case 83: { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.CLASS_KEYWORD; } - case 102: break; - case 74: + case 106: break; + case 76: { yypushback(getSpaceLength(yytext())); return PyTokenTypes.DOCSTRING; } - case 103: break; + case 107: break; case 6: { return PyTokenTypes.MINUS; } - case 104: break; - case 79: + case 108: break; + case 82: { return PyTokenTypes.BREAK_KEYWORD; } - case 105: break; + case 109: break; case 27: { return PyTokenTypes.RBRACKET; } - case 106: break; - case 60: + case 110: break; + case 61: { yypushback(getSpaceLength(yytext())); yybegin(YYINITIAL); return PyTokenTypes.DOCSTRING; } - case 107: break; + case 111: break; case 5: { return PyTokenTypes.DOT; } - case 108: break; + case 112: break; case 3: { return PyTokenTypes.IDENTIFIER; } - case 109: break; + case 113: break; case 24: { return PyTokenTypes.LPAR; } - case 110: break; + case 114: break; case 22: { return PyTokenTypes.LT; } - case 111: break; - case 42: + case 115: break; + case 43: { return PyTokenTypes.IN_KEYWORD; } - case 112: break; - case 63: + case 116: break; + case 84: + // lookahead expression with fixed lookahead length + yypushback(2); { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; } - case 113: break; - case 81: + case 117: break; + case 80: + // lookahead expression with fixed lookahead length + yypushback(1); + { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; + } + case 118: break; + case 85: { return PyTokenTypes.RAISE_KEYWORD; } - case 114: break; - case 71: + case 119: break; + case 73: { return PyTokenTypes.GTGTEQ; } - case 115: break; + case 120: break; case 10: { return PyTokenTypes.SPACE; } - case 116: break; - case 85: + case 121: break; + case 89: { return PyTokenTypes.EXCEPT_KEYWORD; } - case 117: break; + case 122: break; case 38: { return PyTokenTypes.IMAGINARY_LITERAL; } - case 118: break; + case 123: break; + case 7: + { return PyTokenTypes.SINGLE_QUOTED_STRING; + } + case 124: break; case 12: { return PyTokenTypes.FORMFEED; } - case 119: break; + case 125: break; case 34: { return PyTokenTypes.SEMICOLON; } - case 120: break; + case 126: break; case 21: { return PyTokenTypes.GT; } - case 121: break; + case 127: break; case 26: { return PyTokenTypes.LBRACKET; } - case 122: break; + case 128: break; case 32: { return PyTokenTypes.COLON; } - case 123: break; - case 72: + case 129: break; + case 74: { return PyTokenTypes.LTLTEQ; } - case 124: break; - case 76: + case 130: break; + case 78: { return PyTokenTypes.ELSE_KEYWORD; } - case 125: break; + case 131: break; case 19: { return PyTokenTypes.OR; } - case 126: break; - case 46: + case 132: break; + case 47: { return PyTokenTypes.MULTEQ; } - case 127: break; - case 90: + case 133: break; + case 94: { return PyTokenTypes.FINALLY_KEYWORD; } - case 128: break; - case 83: + case 134: break; + case 87: { return PyTokenTypes.WHILE_KEYWORD; } - case 129: break; + case 135: break; case 15: { return PyTokenTypes.MULT; } - case 130: break; - case 86: + case 136: break; + case 90: { return PyTokenTypes.ASSERT_KEYWORD; } - case 131: break; - case 49: + case 137: break; + case 50: { return PyTokenTypes.FLOORDIV; } - case 132: break; - case 89: + case 138: break; + case 93: { return PyTokenTypes.GLOBAL_KEYWORD; } - case 133: break; + case 139: break; case 36: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.SINGLE_QUOTED_STRING; } - case 134: break; - case 84: + case 140: break; + case 88: { return PyTokenTypes.LAMBDA_KEYWORD; } - case 135: break; - case 53: + case 141: break; + case 54: { return PyTokenTypes.XOREQ; } - case 136: break; - case 62: + case 142: break; + case 63: { return PyTokenTypes.FOR_KEYWORD; } - case 137: break; + case 143: break; case 30: { return PyTokenTypes.AT; } - case 138: break; - case 65: + case 144: break; + case 67: { return PyTokenTypes.NOT_KEYWORD; } - case 139: break; + case 145: break; case 13: { return PyTokenTypes.PLUS; } - case 140: break; + case 146: break; case 40: { return PyTokenTypes.MINUSEQ; } - case 141: break; - case 59: + case 147: break; + case 60: { return PyTokenTypes.NE; } - case 142: break; + case 148: break; case 31: { return PyTokenTypes.COMMA; } - case 143: break; - case 45: + case 149: break; + case 46: { return PyTokenTypes.EQEQ; } - case 144: break; + case 150: break; case 33: { return PyTokenTypes.TICK; } - case 145: break; - case 47: + case 151: break; + case 48: { return PyTokenTypes.EXP; } - case 146: break; - case 91: + case 152: break; + case 65: + { return PyTokenTypes.TRIPLE_QUOTED_STRING; + } + case 153: break; + case 95: { return PyTokenTypes.CONTINUE_KEYWORD; } - case 147: break; - case 58: + case 154: break; + case 59: { return PyTokenTypes.LTLT; } - case 148: break; - case 56: + case 155: break; + case 57: { return PyTokenTypes.LE; } - case 149: break; - case 64: + case 156: break; + case 66: { return PyTokenTypes.AND_KEYWORD; } - case 150: break; + case 157: break; case 39: { return PyTokenTypes.OR_KEYWORD; } - case 151: break; - case 78: + case 158: break; + case 81: { return PyTokenTypes.PASS_KEYWORD; } - case 152: break; - case 61: + case 159: break; + case 62: { yypushback(yylength()-1); yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON; } - case 153: break; + case 160: break; case 4: { return PyTokenTypes.END_OF_LINE_COMMENT; } - case 154: break; - case 52: + case 161: break; + case 53: { return PyTokenTypes.OREQ; } - case 155: break; - case 55: + case 162: break; + case 56: { return PyTokenTypes.GTGT; } - case 156: break; + case 163: break; case 18: { return PyTokenTypes.AND; } - case 157: break; - case 48: + case 164: break; + case 49: { return PyTokenTypes.DIVEQ; } - case 158: break; - case 87: + case 165: break; + case 91: { return PyTokenTypes.RETURN_KEYWORD; } - case 159: break; - case 88: + case 166: break; + case 92: { return PyTokenTypes.IMPORT_KEYWORD; } - case 160: break; - case 54: + case 167: break; + case 55: { return PyTokenTypes.GE; } - case 161: break; - case 44: + case 168: break; + case 45: { return PyTokenTypes.PLUSEQ; } - case 162: break; - case 73: + case 169: break; + case 75: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.TRIPLE_QUOTED_STRING; } - case 163: break; - case 43: + case 170: break; + case 44: { return PyTokenTypes.IS_KEYWORD; } - case 164: break; + case 171: break; + case 72: + { return PyTokenTypes.FLOORDIVEQ; + } + case 172: break; case 37: { return PyTokenTypes.FLOAT_LITERAL; } - case 165: break; - case 70: - { return PyTokenTypes.FLOORDIVEQ; - } - case 166: break; + case 173: break; case 9: { return PyTokenTypes.LINE_BREAK; } - case 167: break; - case 50: + case 174: break; + case 51: { return PyTokenTypes.PERCEQ; } - case 168: break; - case 68: + case 175: break; + case 70: { return PyTokenTypes.TRY_KEYWORD; } - case 169: break; - case 51: + case 176: break; + case 52: { return PyTokenTypes.ANDEQ; } - case 170: break; + case 177: break; case 14: { return PyTokenTypes.EQ; } - case 171: break; - case 75: + case 178: break; + case 77: { return PyTokenTypes.FROM_KEYWORD; } - case 172: break; - case 7: + case 179: break; + case 41: + // lookahead expression with fixed lookahead length + yypushback(1); { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; } - case 173: break; - case 69: + case 180: break; + case 64: + // lookahead expression with fixed lookahead length + yypushback(2); + { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; + } + case 181: break; + case 71: { return PyTokenTypes.EXPEQ; } - case 174: break; - case 77: + case 182: break; + case 79: { return PyTokenTypes.ELIF_KEYWORD; } - case 175: break; + case 183: break; case 29: { return PyTokenTypes.RBRACE; } - case 176: break; - case 41: + case 184: break; + case 42: { return PyTokenTypes.IF_KEYWORD; } - case 177: break; + case 185: break; case 11: { return PyTokenTypes.TAB; } - case 178: break; - case 57: + case 186: break; + case 58: { return PyTokenTypes.NE_OLD; } - case 179: break; + case 187: break; case 23: { return PyTokenTypes.TILDE; } - case 180: break; + case 188: break; case 20: { return PyTokenTypes.XOR; } - case 181: break; - case 67: + case 189: break; + case 69: { return PyTokenTypes.DEL_KEYWORD; } - case 182: break; + case 190: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; From c3d41281ef1857a3ff07d49ac25177c935197339 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Tue, 28 May 2013 16:59:11 +0400 Subject: [PATCH 3/3] fixed tests for PY-9617 --- .../com/jetbrains/python/lexer/Python.flex | 21 +- .../jetbrains/python/lexer/_PythonLexer.java | 1291 ++++++++--------- 2 files changed, 659 insertions(+), 653 deletions(-) diff --git a/python/src/com/jetbrains/python/lexer/Python.flex b/python/src/com/jetbrains/python/lexer/Python.flex index e3d0f2b3748c..57b4ec076777 100644 --- a/python/src/com/jetbrains/python/lexer/Python.flex +++ b/python/src/com/jetbrains/python/lexer/Python.flex @@ -89,8 +89,25 @@ return yylength()-i-1; "\\" { return PyTokenTypes.BACKSLASH; } { -{SINGLE_QUOTED_STRING}$ { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; } -{TRIPLE_QUOTED_STRING}$ { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; } +{SINGLE_QUOTED_STRING} { if (zzInput == YYEOF && zzStartRead == 0) return PyTokenTypes.DOCSTRING; + else return PyTokenTypes.SINGLE_QUOTED_STRING; } +{TRIPLE_QUOTED_STRING} { if (zzInput == YYEOF && zzStartRead == 0) return PyTokenTypes.DOCSTRING; + else return PyTokenTypes.TRIPLE_QUOTED_STRING; } + +{SINGLE_QUOTED_STRING}[\ \t]*[\n;] { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.SINGLE_QUOTED_STRING; +return PyTokenTypes.DOCSTRING; } + +{TRIPLE_QUOTED_STRING}[\ \t]*[\n;] { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.TRIPLE_QUOTED_STRING; +return PyTokenTypes.DOCSTRING; } + +{SINGLE_QUOTED_STRING}[\ \t]*"\\" { + yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.SINGLE_QUOTED_STRING; + yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; } + +{TRIPLE_QUOTED_STRING}[\ \t]*"\\" { + yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.TRIPLE_QUOTED_STRING; + yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; } + } { diff --git a/python/src/com/jetbrains/python/lexer/_PythonLexer.java b/python/src/com/jetbrains/python/lexer/_PythonLexer.java index a0fce61828c1..8466838ac138 100644 --- a/python/src/com/jetbrains/python/lexer/_PythonLexer.java +++ b/python/src/com/jetbrains/python/lexer/_PythonLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 5/28/13 2:23 PM */ +/* The following code was generated by JFlex 1.4.3 on 5/28/13 4:57 PM */ /* It's an automatically generated code. Do not modify it. */ package com.jetbrains.python.lexer; @@ -12,7 +12,7 @@ import com.intellij.openapi.util.text.StringUtil; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 5/28/13 2:23 PM from the specification file + * on 5/28/13 4:57 PM from the specification file * /home/ktisha/IDEA/tools/lexer/../../python/src/com/jetbrains/python/lexer/Python.flex */ class _PythonLexer implements FlexLexer { @@ -38,127 +38,127 @@ class _PythonLexer implements FlexLexer { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\41\1\37\1\43\1\42\1\13\22\0\1\40\1\74\1\36"+ + "\11\0\1\41\1\37\1\0\1\42\1\13\22\0\1\40\1\74\1\36"+ "\1\12\1\0\1\66\1\67\1\34\1\76\1\77\1\64\1\62\1\105"+ - "\1\26\1\23\1\65\1\1\1\5\6\3\2\2\1\106\1\110\1\73"+ + "\1\26\1\23\1\65\1\1\1\5\6\3\2\2\1\106\1\43\1\73"+ "\1\63\1\72\1\0\1\104\1\15\1\20\1\31\1\15\1\25\1\15"+ "\3\14\1\27\1\14\1\21\2\14\1\17\2\14\1\32\2\14\1\32"+ "\2\14\1\16\2\14\1\100\1\35\1\101\1\71\1\14\1\107\1\44"+ "\1\10\1\30\1\46\1\24\1\4\1\57\1\61\1\53\1\27\1\52"+ "\1\11\1\56\1\45\1\7\1\54\1\14\1\50\1\47\1\51\1\33"+ - "\1\14\1\60\1\6\1\55\1\14\1\102\1\70\1\103\1\75\6\0"+ - "\1\43\44\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\60\1\6\1\55\1\14\1\102\1\70\1\103\1\75\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\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"+ + "\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\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"+ + "\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"+ @@ -173,7 +173,7 @@ class _PythonLexer implements FlexLexer { "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\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\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"+ @@ -182,30 +182,29 @@ class _PythonLexer implements FlexLexer { "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14\1\14"+ "\1\14\1\14\1\14\1\14\1\14\1\14\1\14\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"+ - "\53\0\2\43\25\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"; + "\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 @@ -220,30 +219,29 @@ class _PythonLexer implements FlexLexer { private static final String ZZ_ACTION_PACKED_0 = "\3\0\1\1\2\2\5\3\1\4\1\3\1\5\1\3"+ "\1\6\1\3\1\7\1\10\1\7\1\11\1\12\1\13"+ - "\1\14\12\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\14\1\15\12\3\1\16\1\17\1\20\1\21\1\22"+ + "\1\23\1\24\1\25\1\26\1\27\1\1\1\30\1\31"+ "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41"+ - "\1\42\2\43\2\44\3\3\2\7\1\3\1\40\1\2"+ - "\4\0\1\2\1\45\1\0\1\46\3\3\1\47\5\3"+ - "\1\50\2\3\1\7\1\51\2\7\2\51\3\7\1\51"+ - "\7\3\1\52\1\53\1\54\5\3\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\1\72\1\73\1\74\1\0\3\44\1\75"+ - "\3\44\2\3\6\7\1\76\1\0\3\2\1\45\1\0"+ - "\1\77\12\3\1\7\1\100\1\101\2\51\1\101\1\102"+ - "\1\3\1\103\1\104\1\105\2\3\1\106\5\3\1\107"+ - "\1\110\1\111\1\112\1\0\1\44\1\113\1\114\1\0"+ - "\1\113\1\3\1\7\2\101\1\115\1\3\2\0\3\3"+ - "\1\116\1\117\2\3\1\120\2\0\2\120\2\0\1\120"+ - "\4\3\1\121\3\3\3\0\2\114\7\0\1\3\2\0"+ - "\1\122\3\3\1\123\1\124\1\0\1\101\1\124\1\101"+ - "\1\0\2\3\1\125\1\3\1\126\1\3\1\127\3\0"+ - "\2\113\4\0\2\101\1\0\1\3\1\130\1\131\1\3"+ - "\3\101\1\132\1\133\1\134\1\135\3\113\3\101\1\136"+ - "\1\3\2\120\6\0\1\137\1\124\2\101\2\113\2\101"; + "\1\42\2\43\2\44\3\3\2\45\1\3\1\41\1\2"+ + "\4\0\1\2\1\46\1\0\1\47\3\3\1\50\5\3"+ + "\1\51\2\3\3\7\1\52\3\7\7\3\1\53\1\54"+ + "\1\55\5\3\1\56\1\57\1\60\1\61\1\62\1\63"+ + "\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73"+ + "\1\74\1\75\1\0\3\44\1\76\3\44\2\3\6\45"+ + "\1\77\1\0\3\2\1\46\1\0\1\100\12\3\1\7"+ + "\1\101\1\102\1\0\1\101\1\103\1\3\1\104\1\105"+ + "\1\106\2\3\1\107\5\3\1\110\1\111\1\112\1\113"+ + "\1\0\1\44\1\114\1\115\1\0\1\114\1\3\1\45"+ + "\2\116\1\117\1\3\2\0\3\3\1\120\1\121\2\3"+ + "\1\0\2\122\1\0\4\3\1\123\3\3\3\0\2\115"+ + "\7\0\1\3\2\0\1\124\3\3\1\125\1\0\2\101"+ + "\1\0\2\3\1\126\1\3\1\127\1\3\1\130\3\0"+ + "\2\114\4\0\2\116\1\0\1\3\1\131\1\132\1\3"+ + "\3\101\1\133\1\134\1\135\1\136\3\114\3\116\1\137"+ + "\1\3\1\122\1\140\7\0\1\141\2\101\2\114\2\116"; private static int [] zzUnpackAction() { - int [] result = new int[304]; + int [] result = new int[294]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -268,47 +266,46 @@ class _PythonLexer implements FlexLexer { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\111\0\222\0\333\0\u0124\0\u016d\0\u01b6\0\u01ff"+ - "\0\u0248\0\u0291\0\u02da\0\u0323\0\u036c\0\u03b5\0\u03fe\0\u0447"+ - "\0\u0490\0\u04d9\0\333\0\u0522\0\333\0\333\0\333\0\333"+ - "\0\u056b\0\u05b4\0\u05fd\0\u0646\0\u068f\0\u06d8\0\u0721\0\u076a"+ - "\0\u07b3\0\u07fc\0\u0845\0\u088e\0\u08d7\0\u0920\0\u0969\0\u09b2"+ - "\0\u09fb\0\u0a44\0\u0a8d\0\u0ad6\0\u0b1f\0\333\0\333\0\333"+ - "\0\333\0\333\0\333\0\333\0\333\0\333\0\333\0\333"+ - "\0\333\0\333\0\u0b68\0\u0bb1\0\u0bfa\0\u0c43\0\u0c8c\0\u0cd5"+ - "\0\u0d1e\0\u0d67\0\u0db0\0\u0df9\0\u0e42\0\u0e8b\0\u0ed4\0\u0f1d"+ - "\0\u0f66\0\333\0\u0faf\0\u0ff8\0\333\0\u1041\0\u108a\0\u10d3"+ - "\0\u01ff\0\u111c\0\u1165\0\u11ae\0\u11f7\0\u1240\0\333\0\u1289"+ - "\0\u12d2\0\u131b\0\u1364\0\u13ad\0\u13f6\0\333\0\u131b\0\u143f"+ - "\0\u1488\0\u14d1\0\u143f\0\u151a\0\u1563\0\u15ac\0\u15f5\0\u163e"+ - "\0\u1687\0\u16d0\0\u01ff\0\u01ff\0\u01ff\0\u1719\0\u1762\0\u17ab"+ - "\0\u17f4\0\u183d\0\333\0\333\0\333\0\u1886\0\333\0\u18cf"+ - "\0\333\0\333\0\333\0\333\0\333\0\u1918\0\333\0\333"+ - "\0\u1961\0\333\0\u19aa\0\u19f3\0\u1a3c\0\u1a85\0\333\0\u1ace"+ - "\0\u1b17\0\u1b60\0\u1ba9\0\u1bf2\0\u1c3b\0\u1c84\0\u1ccd\0\u1d16"+ - "\0\u1d5f\0\u1da8\0\333\0\u0df9\0\u1df1\0\u1e3a\0\u1e83\0\u1ecc"+ - "\0\u1f15\0\u01ff\0\u1f5e\0\u1fa7\0\u1ff0\0\u2039\0\u2082\0\u20cb"+ - "\0\u2114\0\u215d\0\u21a6\0\u21ef\0\u2238\0\333\0\u2281\0\u22ca"+ - "\0\u2313\0\u235c\0\u01ff\0\u23a5\0\u01ff\0\u01ff\0\u01ff\0\u23ee"+ - "\0\u2437\0\u01ff\0\u2480\0\u24c9\0\u2512\0\u255b\0\u25a4\0\333"+ - "\0\333\0\333\0\333\0\u25ed\0\u2636\0\u267f\0\333\0\u2636"+ - "\0\u26c8\0\u2711\0\333\0\u275a\0\u27a3\0\u01ff\0\u27ec\0\u2835"+ - "\0\u287e\0\u28c7\0\u2910\0\u2959\0\u01ff\0\u01ff\0\u29a2\0\u29eb"+ - "\0\u2a34\0\u2a7d\0\u2ac6\0\u2281\0\u2b0f\0\u2b58\0\u2ba1\0\u235c"+ - "\0\u2bea\0\u2c33\0\u2c7c\0\u2cc5\0\u01ff\0\u2d0e\0\u2d57\0\u2da0"+ - "\0\u2de9\0\u2e32\0\u2e7b\0\u2ec4\0\u2f0d\0\u2f56\0\u2f9f\0\u2fe8"+ - "\0\u3031\0\u307a\0\u30c3\0\u310c\0\u3155\0\u319e\0\u31e7\0\u01ff"+ - "\0\u3230\0\u3279\0\u32c2\0\u01ff\0\u2281\0\u330b\0\u3354\0\u235c"+ - "\0\u339d\0\u33e6\0\u342f\0\u3478\0\u01ff\0\u34c1\0\u01ff\0\u350a"+ - "\0\u01ff\0\u3553\0\u359c\0\u35e5\0\u362e\0\u3677\0\u36c0\0\u1c84"+ - "\0\u1da8\0\u3709\0\u3752\0\u379b\0\u37e4\0\u382d\0\u01ff\0\u01ff"+ - "\0\u3876\0\u38bf\0\u3908\0\u3951\0\u01ff\0\u01ff\0\u01ff\0\u01ff"+ - "\0\u2636\0\u399a\0\u39e3\0\333\0\u3a2c\0\u3a75\0\u01ff\0\u3abe"+ - "\0\u3b07\0\333\0\u3b50\0\u3b99\0\u3be2\0\u3c2b\0\u3c74\0\u3cbd"+ - "\0\u01ff\0\333\0\u3d06\0\u3d4f\0\u35e5\0\u36c0\0\u3709\0\u37e4"; + "\0\0\0\110\0\220\0\330\0\u0120\0\u0168\0\u01b0\0\u01f8"+ + "\0\u0240\0\u0288\0\u02d0\0\u0318\0\u0360\0\u03a8\0\u03f0\0\u0438"+ + "\0\u0480\0\u04c8\0\330\0\u0510\0\330\0\330\0\330\0\330"+ + "\0\330\0\u0558\0\u05a0\0\u05e8\0\u0630\0\u0678\0\u06c0\0\u0708"+ + "\0\u0750\0\u0798\0\u07e0\0\u0828\0\u0870\0\u08b8\0\u0900\0\u0948"+ + "\0\u0990\0\u09d8\0\u0a20\0\u0a68\0\u0ab0\0\u0af8\0\330\0\330"+ + "\0\330\0\330\0\330\0\330\0\330\0\330\0\330\0\330"+ + "\0\330\0\330\0\u0b40\0\u0b88\0\u0bd0\0\u0c18\0\u0c60\0\u0ca8"+ + "\0\u0cf0\0\u0d38\0\u0d80\0\u0dc8\0\u0e10\0\u0e58\0\u0ea0\0\u0ee8"+ + "\0\u0f30\0\330\0\u0f78\0\u0fc0\0\330\0\u1008\0\u1050\0\u1098"+ + "\0\u01f8\0\u10e0\0\u1128\0\u1170\0\u11b8\0\u1200\0\330\0\u1248"+ + "\0\u1290\0\u12d8\0\u1320\0\u1368\0\330\0\u13b0\0\u13f8\0\u1440"+ + "\0\u1488\0\u14d0\0\u1518\0\u1560\0\u15a8\0\u15f0\0\u1638\0\u01f8"+ + "\0\u01f8\0\u01f8\0\u1680\0\u16c8\0\u1710\0\u1758\0\u17a0\0\330"+ + "\0\330\0\330\0\u17e8\0\330\0\u1830\0\330\0\330\0\330"+ + "\0\330\0\330\0\u1878\0\330\0\330\0\u18c0\0\330\0\u1908"+ + "\0\u1950\0\u1998\0\u19e0\0\330\0\u1a28\0\u1a70\0\u1ab8\0\u1b00"+ + "\0\u1b48\0\u1b90\0\u1bd8\0\u1c20\0\u1c68\0\u1cb0\0\u1cf8\0\330"+ + "\0\u0dc8\0\u1d40\0\u1d88\0\u1dd0\0\u1e18\0\u1e60\0\u01f8\0\u1ea8"+ + "\0\u1ef0\0\u1f38\0\u1f80\0\u1fc8\0\u2010\0\u2058\0\u20a0\0\u20e8"+ + "\0\u2130\0\u2178\0\u21c0\0\330\0\u2178\0\u2208\0\u01f8\0\u2250"+ + "\0\u01f8\0\u01f8\0\u01f8\0\u2298\0\u22e0\0\u01f8\0\u2328\0\u2370"+ + "\0\u23b8\0\u2400\0\u2448\0\330\0\330\0\330\0\330\0\u2490"+ + "\0\u24d8\0\u2520\0\330\0\u24d8\0\u2568\0\u25b0\0\330\0\u25f8"+ + "\0\u2640\0\u01f8\0\u2688\0\u26d0\0\u2718\0\u2760\0\u27a8\0\u27f0"+ + "\0\u01f8\0\u01f8\0\u2838\0\u2880\0\u28c8\0\u2910\0\u2958\0\u29a0"+ + "\0\u29e8\0\u2a30\0\u2a78\0\u2ac0\0\u01f8\0\u2b08\0\u2b50\0\u2b98"+ + "\0\u2be0\0\u2c28\0\u2c70\0\u2cb8\0\u2d00\0\u2d48\0\u2d90\0\u2dd8"+ + "\0\u2e20\0\u2e68\0\u2eb0\0\u2ef8\0\u2f40\0\u2f88\0\u2fd0\0\u01f8"+ + "\0\u3018\0\u3060\0\u30a8\0\u01f8\0\u30f0\0\u3138\0\u3180\0\u31c8"+ + "\0\u3210\0\u3258\0\u01f8\0\u32a0\0\u01f8\0\u32e8\0\u01f8\0\u3330"+ + "\0\u3378\0\u33c0\0\u3408\0\u3450\0\u3498\0\u1bd8\0\u1cf8\0\u34e0"+ + "\0\u3528\0\u3570\0\u35b8\0\u3600\0\u01f8\0\u01f8\0\u3648\0\u3690"+ + "\0\u36d8\0\u3720\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u24d8\0\u3768"+ + "\0\u37b0\0\330\0\u37f8\0\u3840\0\u01f8\0\u3888\0\330\0\330"+ + "\0\u3690\0\u38d0\0\u3918\0\u3960\0\u39a8\0\u39f0\0\u3a38\0\u01f8"+ + "\0\u30f0\0\u31c8\0\u33c0\0\u3498\0\u34e0\0\u35b8"; private static int [] zzUnpackRowMap() { - int [] result = new int[304]; + int [] result = new int[294]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -334,253 +331,239 @@ class _PythonLexer implements FlexLexer { "\1\4\1\5\2\6\1\7\1\6\1\10\1\11\1\12"+ "\1\13\1\14\1\4\4\10\1\15\1\10\1\4\1\16"+ "\1\17\1\10\1\20\1\10\1\21\3\15\1\22\1\23"+ - "\1\24\1\25\1\26\1\27\1\30\1\4\1\31\1\32"+ - "\1\33\1\10\1\34\1\35\1\10\1\36\1\37\1\40"+ - "\1\10\1\41\1\42\1\10\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\1\71\10\72\1\73\1\72\1\14\5\72"+ - "\1\73\7\72\4\73\1\74\1\23\1\75\1\25\1\26"+ - "\1\27\1\30\5\72\1\73\40\72\1\4\1\5\2\6"+ - "\1\7\1\6\1\10\1\11\1\76\1\13\1\14\1\4"+ - "\4\10\1\77\1\10\1\4\1\16\1\17\1\10\1\20"+ - "\1\10\1\100\3\77\1\101\1\23\1\102\1\25\1\26"+ - "\1\27\1\30\1\4\1\31\1\32\1\33\1\10\1\103"+ - "\1\35\1\10\1\36\1\37\1\40\1\10\1\41\1\42"+ - "\1\10\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\104\1\70\1\71"+ - "\112\0\1\105\1\106\1\105\1\0\1\105\1\107\1\110"+ - "\1\111\1\112\4\0\1\107\1\110\1\111\1\112\1\0"+ - "\1\113\2\114\1\0\1\115\62\0\3\6\1\0\1\6"+ - "\3\0\1\112\7\0\1\112\1\0\1\113\2\114\1\0"+ - "\1\115\62\0\6\10\1\116\2\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\4\10\1\117\2\10\1\120"+ - "\6\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\4\10\1\121\11\10\30\0"+ - "\7\10\1\122\1\10\2\0\4\10\1\122\2\10\1\0"+ - "\2\10\1\0\1\10\4\122\1\22\1\0\1\24\5\0"+ - "\4\10\1\123\11\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\1\124\15\10\27\0\13\14"+ - "\1\0\23\14\1\0\51\14\1\0\7\10\1\122\1\10"+ - "\2\0\4\10\1\122\2\10\1\0\2\10\1\0\1\10"+ - "\4\122\1\22\1\0\1\24\5\0\4\10\1\122\11\10"+ - "\30\0\3\113\1\0\1\113\104\0\5\10\1\125\2\10"+ - "\1\126\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\16\10\112\0\1\127\26\0\6\10\1\130\1\122\1\131"+ - "\2\0\4\10\1\122\2\10\1\0\2\10\1\0\1\10"+ - "\4\122\1\22\1\0\1\24\5\0\4\10\1\122\11\10"+ - "\27\0\13\132\1\133\20\132\1\134\1\135\1\132\1\136"+ - "\2\132\2\137\45\132\13\140\1\133\21\140\1\141\1\142"+ - "\1\136\2\140\2\143\45\140\1\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\1\10\1\144\1\10"+ - "\1\145\12\10\30\0\6\10\1\146\2\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\16\10\30\0\11\10"+ - "\2\0\7\10\1\0\1\147\1\10\1\0\5\10\10\0"+ - "\16\10\30\0\7\10\1\122\1\10\2\0\4\10\1\122"+ - "\2\10\1\0\1\150\1\10\1\0\1\10\4\122\1\22"+ - "\1\0\1\24\5\0\1\151\3\10\1\122\11\10\30\0"+ + "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ + "\1\34\1\10\1\35\1\36\1\10\1\37\1\40\1\41"+ + "\1\10\1\42\1\43\1\10\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\1\71\10\72\1\73\1\72\1\14\5\72\1\73"+ + "\7\72\4\73\1\74\1\23\1\75\1\25\1\26\1\27"+ + "\1\30\5\72\1\73\37\72\1\4\1\5\2\6\1\7"+ + "\1\6\1\10\1\11\1\76\1\13\1\14\1\4\4\10"+ + "\1\77\1\10\1\4\1\16\1\17\1\10\1\20\1\10"+ + "\1\100\3\77\1\101\1\23\1\102\1\25\1\26\1\27"+ + "\1\30\1\31\1\32\1\33\1\34\1\10\1\103\1\36"+ + "\1\10\1\37\1\40\1\41\1\10\1\42\1\43\1\10"+ + "\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\104\1\71\111\0\1\105"+ + "\1\106\1\105\1\0\1\105\1\107\1\110\1\111\1\112"+ + "\4\0\1\107\1\110\1\111\1\112\1\0\1\113\2\114"+ + "\1\0\1\115\61\0\3\6\1\0\1\6\3\0\1\112"+ + "\7\0\1\112\1\0\1\113\2\114\1\0\1\115\61\0"+ + "\6\10\1\116\2\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\4\10\1\117\2\10\1\120\6\10\27\0"+ "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\4\10\1\152\11\10\30\0\3\10\1\153\5\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\1\10\1\154"+ - "\1\10\1\155\6\10\1\156\3\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\1\157\15\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\7\10\1\160\6\10\30\0\10\10\1\161\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\15\10\1\162\112\0\1\163\110\0\1\164\110\0\1\165"+ - "\1\166\107\0\1\167\1\0\1\170\106\0\1\171\110\0"+ - "\1\172\110\0\1\173\110\0\1\174\110\0\1\175\6\0"+ - "\1\176\101\0\1\177\6\0\1\200\1\201\100\0\1\202"+ - "\35\0\1\203\7\0\1\203\7\0\4\203\1\74\1\0"+ - "\1\75\11\0\1\203\40\0\13\204\1\0\20\204\1\205"+ - "\1\206\1\204\1\207\51\204\13\210\1\0\21\210\1\211"+ - "\1\212\1\207\51\210\1\0\7\10\1\213\1\10\2\0"+ - "\4\10\1\213\2\10\1\0\2\10\1\0\1\10\4\213"+ - "\1\101\1\0\1\102\5\0\4\10\1\214\11\10\30\0"+ - "\7\10\1\213\1\10\2\0\4\10\1\213\2\10\1\0"+ - "\2\10\1\0\1\10\4\213\1\101\1\0\1\102\5\0"+ - "\4\10\1\213\11\10\30\0\6\10\1\130\1\213\1\131"+ - "\2\0\4\10\1\213\2\10\1\0\2\10\1\0\1\10"+ - "\4\213\1\101\1\0\1\102\5\0\4\10\1\213\11\10"+ - "\27\0\13\215\1\0\20\215\1\216\1\217\1\215\1\0"+ - "\51\215\13\220\1\0\21\220\1\221\1\222\1\0\51\220"+ - "\1\0\7\10\1\213\1\10\2\0\4\10\1\213\2\10"+ - "\1\0\1\150\1\10\1\0\1\10\4\213\1\101\1\0"+ - "\1\102\5\0\1\151\3\10\1\213\11\10\66\0\1\223"+ - "\1\224\51\0\1\105\1\106\1\105\1\0\1\105\3\0"+ - "\1\112\7\0\1\112\1\0\1\113\2\114\1\0\1\115"+ - "\62\0\3\106\1\0\1\106\15\0\1\113\2\114\1\0"+ - "\1\115\62\0\5\225\2\0\1\225\4\0\1\225\2\0"+ - "\1\225\3\0\2\225\2\0\2\225\12\0\1\225\1\0"+ - "\1\225\43\0\1\226\1\0\1\226\1\0\1\226\104\0"+ - "\1\227\3\0\1\227\104\0\3\113\1\0\1\113\16\0"+ - "\2\114\1\0\1\115\62\0\3\230\1\0\1\230\20\0"+ - "\1\231\33\0\1\231\27\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\4\10\1\232\11\10\30\0"+ - "\6\10\1\233\2\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\1\10\1\234\14\10\30\0"+ - "\7\10\1\235\1\10\2\0\4\10\1\235\2\10\1\0"+ - "\2\10\1\0\1\10\4\235\1\22\1\0\1\24\5\0"+ - "\4\10\1\235\11\10\30\0\7\10\1\235\1\10\2\0"+ - "\4\10\1\235\2\10\1\0\1\236\1\10\1\0\1\10"+ - "\4\235\1\22\1\0\1\24\5\0\4\10\1\235\11\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\12\10\1\237\3\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\1\10\1\240\3\10\10\0\16\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\3\10\1\241\3\10\1\242\6\10\30\0\11\10"+ + "\16\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\4\10\1\121\11\10\27\0\7\10\1\122"+ + "\1\10\2\0\4\10\1\122\2\10\1\0\2\10\1\0"+ + "\1\10\4\122\1\22\1\0\1\24\5\0\4\10\1\123"+ + "\11\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\1\124\15\10\26\0\13\14\1\0\23\14"+ + "\1\0\50\14\1\0\7\10\1\122\1\10\2\0\4\10"+ + "\1\122\2\10\1\0\2\10\1\0\1\10\4\122\1\22"+ + "\1\0\1\24\5\0\4\10\1\122\11\10\27\0\3\113"+ + "\1\0\1\113\103\0\5\10\1\125\2\10\1\126\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\111\0"+ + "\1\127\25\0\6\10\1\130\1\122\1\131\2\0\4\10"+ + "\1\122\2\10\1\0\2\10\1\0\1\10\4\122\1\22"+ + "\1\0\1\24\5\0\4\10\1\122\11\10\26\0\13\132"+ + "\1\0\20\132\1\133\1\134\1\132\1\135\50\132\13\136"+ + "\1\0\21\136\1\137\1\140\1\135\50\136\1\0\11\10"+ "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\1\10"+ - "\1\243\14\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\10\0\1\244\15\10\27\0\13\132\1\133"+ - "\20\132\1\245\1\135\1\132\1\136\2\132\2\137\45\132"+ - "\37\0\1\246\64\0\1\133\20\0\1\247\2\0\1\136"+ - "\2\0\2\136\45\0\13\132\1\250\23\132\1\137\2\132"+ - "\2\137\45\132\13\140\1\133\21\140\1\141\1\245\1\136"+ - "\2\140\2\143\60\140\1\251\23\140\1\143\2\140\2\143"+ - "\45\140\13\0\1\133\22\0\1\252\1\136\2\0\2\136"+ - "\46\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\2\10\1\253\13\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\3\10\1\254\12\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\5\10\1\255\10\10\30\0\3\10\1\256\4\10"+ - "\1\257\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\16\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\5\10\1\260\10\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\7\10\1\261"+ - "\6\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\11\10\1\262\4\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\10\10\1\263"+ - "\5\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\3\10\1\264\12\10\30\0\11\10\2\0"+ - "\7\10\1\0\1\265\1\10\1\0\5\10\10\0\16\10"+ - "\30\0\6\10\1\266\2\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\10\0\16\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\7\10\1\267\6\10"+ - "\112\0\1\270\110\0\1\271\110\0\1\272\110\0\1\273"+ - "\35\0\1\274\7\0\1\274\7\0\4\274\1\74\1\0"+ - "\1\75\11\0\1\274\40\0\13\204\1\0\20\204\1\275"+ - "\1\206\1\204\1\207\51\204\34\0\1\276\1\277\1\0"+ - "\1\207\2\300\46\0\1\207\111\204\13\210\1\0\21\210"+ - "\1\211\1\275\1\207\162\210\35\0\1\277\1\301\1\207"+ - "\2\300\46\0\1\207\1\0\7\10\1\302\1\10\2\0"+ - "\4\10\1\302\2\10\1\0\2\10\1\0\1\10\4\302"+ - "\1\101\1\0\1\102\5\0\4\10\1\302\11\10\30\0"+ - "\7\10\1\302\1\10\2\0\4\10\1\302\2\10\1\0"+ - "\1\236\1\10\1\0\1\10\4\302\1\101\1\0\1\102"+ - "\5\0\4\10\1\302\11\10\27\0\13\215\1\0\20\215"+ - "\1\303\1\217\1\215\1\0\51\215\34\0\1\304\54\0"+ - "\111\215\13\220\1\0\21\220\1\221\1\303\1\0\162\220"+ - "\36\0\1\305\53\0\5\225\2\0\1\225\1\112\3\0"+ - "\1\225\2\0\1\225\1\112\2\0\2\225\2\0\2\225"+ - "\12\0\1\225\1\0\1\225\43\0\1\226\1\0\1\226"+ - "\1\0\1\226\3\0\1\112\7\0\1\112\70\0\1\227"+ - "\3\0\1\227\3\0\1\112\7\0\1\112\70\0\3\230"+ - "\1\0\1\230\21\0\1\115\62\0\3\230\1\0\1\230"+ - "\104\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\12\10\1\306\3\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\1\307\15\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\1\310"+ - "\1\0\1\311\5\0\16\10\30\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\1\312\15\10\30\0"+ - "\7\10\1\313\1\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\16\10\30\0\11\10\2\0\7\10\1\0"+ - "\1\314\1\10\1\0\5\10\10\0\16\10\30\0\11\10"+ - "\2\0\7\10\1\0\1\315\1\10\1\0\5\10\10\0"+ - "\16\10\30\0\3\10\1\316\5\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\16\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\5\10\1\317"+ - "\10\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\3\10\1\320\12\10\42\0\1\133\23\0"+ - "\1\136\2\0\2\136\45\0\13\247\1\321\20\247\1\322"+ - "\1\323\1\247\1\324\2\247\2\324\45\247\13\132\1\133"+ - "\20\132\1\245\1\135\1\132\1\246\2\132\2\137\45\132"+ - "\13\140\1\133\21\140\1\141\1\245\1\246\2\140\2\143"+ - "\45\140\13\252\1\325\21\252\1\326\1\327\1\330\2\252"+ - "\2\330\45\252\1\0\11\10\2\0\7\10\1\0\1\331"+ - "\1\10\1\0\5\10\10\0\16\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\4\10\1\332\10\0\16\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\3\10\1\333\12\10\30\0\6\10\1\334\2\10"+ + "\1\141\1\10\1\142\12\10\27\0\6\10\1\143\2\10"+ "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\16\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\3\10\1\335\12\10\30\0\10\10\1\336\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\30\0"+ - "\7\10\1\337\1\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\16\10\30\0\10\10\1\340\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\16\10\63\0\1\341"+ - "\1\0\1\342\107\0\1\277\1\0\1\207\2\300\46\0"+ - "\1\207\34\276\1\343\1\344\53\276\35\301\1\345\1\346"+ - "\52\301\1\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\1\347\1\0\1\350\5\0\16\10\27\0\34\304"+ - "\1\351\1\352\53\304\35\305\1\353\1\354\52\305\1\0"+ - "\10\10\1\355\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\16\10\63\0\1\356\112\0\1\357\53\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\6\10"+ - "\1\360\7\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\10\0\2\10\1\361\13\10\30\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\10\10"+ - "\1\362\5\10\30\0\11\10\2\0\7\10\1\0\2\10"+ - "\1\0\5\10\10\0\7\10\1\363\6\10\30\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\3\10"+ - "\1\364\12\10\27\0\13\247\1\321\20\247\1\322\1\323"+ - "\1\247\1\365\2\247\2\324\101\247\1\366\1\367\164\247"+ - "\13\252\1\325\21\252\1\326\1\327\1\370\2\252\2\330"+ - "\213\252\1\371\1\372\52\252\1\0\11\10\2\0\7\10"+ - "\1\0\2\10\1\0\5\10\10\0\4\10\1\373\11\10"+ - "\30\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\4\10\1\374\11\10\30\0\11\10\2\0\7\10"+ - "\1\0\1\375\1\10\1\0\5\10\10\0\16\10\30\0"+ + "\27\0\11\10\2\0\7\10\1\0\1\144\1\10\1\0"+ + "\5\10\10\0\16\10\27\0\7\10\1\122\1\10\2\0"+ + "\4\10\1\122\2\10\1\0\1\145\1\10\1\0\1\10"+ + "\4\122\1\22\1\0\1\24\5\0\1\146\3\10\1\122"+ + "\11\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\4\10\1\147\11\10\27\0\3\10\1\150"+ + "\5\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\1\10\1\151\1\10\1\152\6\10\1\153\3\10\27\0"+ "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\4\10\1\376\11\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\2\10\1\377\13\10\30\0"+ + "\1\154\15\10\27\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\7\10\1\155\6\10\27\0\10\10"+ + "\1\156\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\16\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\15\10\1\157\111\0\1\160\107\0\1\161"+ + "\107\0\1\162\1\163\106\0\1\164\1\0\1\165\105\0"+ + "\1\166\107\0\1\167\107\0\1\170\107\0\1\171\107\0"+ + "\1\172\6\0\1\173\100\0\1\174\6\0\1\175\1\176"+ + "\77\0\1\177\34\0\1\200\7\0\1\200\7\0\4\200"+ + "\1\74\1\0\1\75\11\0\1\200\37\0\13\201\1\0"+ + "\20\201\1\202\1\203\1\201\1\204\50\201\13\205\1\0"+ + "\21\205\1\206\1\207\1\204\50\205\1\0\7\10\1\210"+ + "\1\10\2\0\4\10\1\210\2\10\1\0\2\10\1\0"+ + "\1\10\4\210\1\101\1\0\1\102\5\0\4\10\1\211"+ + "\11\10\27\0\7\10\1\210\1\10\2\0\4\10\1\210"+ + "\2\10\1\0\2\10\1\0\1\10\4\210\1\101\1\0"+ + "\1\102\5\0\4\10\1\210\11\10\27\0\6\10\1\130"+ + "\1\210\1\131\2\0\4\10\1\210\2\10\1\0\2\10"+ + "\1\0\1\10\4\210\1\101\1\0\1\102\5\0\4\10"+ + "\1\210\11\10\26\0\13\212\1\0\20\212\1\213\1\214"+ + "\1\212\1\0\50\212\13\215\1\0\21\215\1\216\1\217"+ + "\1\0\50\215\1\0\7\10\1\210\1\10\2\0\4\10"+ + "\1\210\2\10\1\0\1\145\1\10\1\0\1\10\4\210"+ + "\1\101\1\0\1\102\5\0\1\146\3\10\1\210\11\10"+ + "\65\0\1\220\1\221\50\0\1\105\1\106\1\105\1\0"+ + "\1\105\3\0\1\112\7\0\1\112\1\0\1\113\2\114"+ + "\1\0\1\115\61\0\3\106\1\0\1\106\15\0\1\113"+ + "\2\114\1\0\1\115\61\0\5\222\2\0\1\222\4\0"+ + "\1\222\2\0\1\222\3\0\2\222\2\0\2\222\12\0"+ + "\1\222\1\0\1\222\42\0\1\223\1\0\1\223\1\0"+ + "\1\223\103\0\1\224\3\0\1\224\103\0\3\113\1\0"+ + "\1\113\16\0\2\114\1\0\1\115\61\0\3\225\1\0"+ + "\1\225\20\0\1\226\33\0\1\226\26\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\4\10\1\227"+ + "\11\10\27\0\6\10\1\230\2\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\16\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\10\1\231"+ + "\14\10\27\0\7\10\1\232\1\10\2\0\4\10\1\232"+ + "\2\10\1\0\2\10\1\0\1\10\4\232\1\22\1\0"+ + "\1\24\5\0\4\10\1\232\11\10\27\0\7\10\1\232"+ + "\1\10\2\0\4\10\1\232\2\10\1\0\1\233\1\10"+ + "\1\0\1\10\4\232\1\22\1\0\1\24\5\0\4\10"+ + "\1\232\11\10\27\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\12\10\1\234\3\10\27\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\1\10\1\235\3\10"+ + "\10\0\16\10\27\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\3\10\1\236\3\10\1\237\6\10"+ + "\27\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\1\10\1\240\14\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\1\241\15\10\26\0"+ + "\13\132\1\0\20\132\1\242\1\134\1\132\1\135\50\132"+ + "\34\0\1\243\1\244\1\0\1\135\2\245\1\0\1\135"+ + "\44\0\110\132\13\136\1\0\21\136\1\137\1\242\1\135"+ + "\160\136\35\0\1\244\1\246\1\135\2\245\1\0\1\135"+ + "\45\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\2\10\1\247\13\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\3\10\1\250\12\10"+ + "\27\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\5\10\1\251\10\10\27\0\3\10\1\252\4\10"+ + "\1\253\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\16\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\5\10\1\254\10\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\7\10\1\255"+ + "\6\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\11\10\1\256\4\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\10\10\1\257"+ + "\5\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\3\10\1\260\12\10\27\0\11\10\2\0"+ + "\7\10\1\0\1\261\1\10\1\0\5\10\10\0\16\10"+ + "\27\0\6\10\1\262\2\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\16\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\7\10\1\263\6\10"+ + "\111\0\1\264\107\0\1\265\107\0\1\266\107\0\1\267"+ + "\34\0\1\270\7\0\1\270\7\0\4\270\1\74\1\0"+ + "\1\75\11\0\1\270\37\0\13\201\1\0\20\201\1\271"+ + "\1\203\1\201\1\204\50\201\34\0\1\272\1\273\1\0"+ + "\1\204\2\274\1\0\1\204\44\0\110\201\13\205\1\0"+ + "\21\205\1\206\1\271\1\204\160\205\35\0\1\273\1\275"+ + "\1\204\2\274\1\0\1\204\45\0\7\10\1\276\1\10"+ + "\2\0\4\10\1\276\2\10\1\0\2\10\1\0\1\10"+ + "\4\276\1\101\1\0\1\102\5\0\4\10\1\276\11\10"+ + "\27\0\7\10\1\276\1\10\2\0\4\10\1\276\2\10"+ + "\1\0\1\233\1\10\1\0\1\10\4\276\1\101\1\0"+ + "\1\102\5\0\4\10\1\276\11\10\26\0\13\212\1\0"+ + "\20\212\1\277\1\214\1\212\1\0\50\212\34\0\1\300"+ + "\53\0\110\212\13\215\1\0\21\215\1\216\1\277\1\0"+ + "\160\215\36\0\1\301\52\0\5\222\2\0\1\222\1\112"+ + "\3\0\1\222\2\0\1\222\1\112\2\0\2\222\2\0"+ + "\2\222\12\0\1\222\1\0\1\222\42\0\1\223\1\0"+ + "\1\223\1\0\1\223\3\0\1\112\7\0\1\112\67\0"+ + "\1\224\3\0\1\224\3\0\1\112\7\0\1\112\67\0"+ + "\3\225\1\0\1\225\21\0\1\115\61\0\3\225\1\0"+ + "\1\225\103\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\12\10\1\302\3\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\303\15\10"+ + "\27\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\1\304\1\0\1\305\5\0\16\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\1\306\15\10"+ + "\27\0\7\10\1\307\1\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\16\10\27\0\11\10\2\0\7\10"+ + "\1\0\1\310\1\10\1\0\5\10\10\0\16\10\27\0"+ + "\11\10\2\0\7\10\1\0\1\311\1\10\1\0\5\10"+ + "\10\0\16\10\27\0\3\10\1\312\5\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\16\10\27\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\5\10"+ + "\1\313\10\10\27\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\3\10\1\314\12\10\63\0\1\244"+ + "\1\0\1\135\2\245\1\0\1\135\44\0\34\243\1\315"+ + "\1\316\52\243\35\246\1\317\1\320\51\246\1\0\11\10"+ + "\2\0\7\10\1\0\1\321\1\10\1\0\5\10\10\0"+ + "\16\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\4\10\1\322\10\0\16\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\3\10\1\323\12\10"+ + "\27\0\6\10\1\324\2\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\16\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\3\10\1\325\12\10"+ + "\27\0\10\10\1\326\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\27\0\7\10\1\327\1\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\27\0"+ + "\10\10\1\330\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\16\10\62\0\1\331\1\0\1\332\106\0\1\273"+ + "\1\0\1\204\2\274\1\0\1\204\44\0\34\272\1\333"+ + "\1\334\52\272\35\275\1\335\1\336\51\275\1\0\11\10"+ + "\2\0\7\10\1\0\2\10\1\0\5\10\1\337\1\0"+ + "\1\340\5\0\16\10\26\0\34\300\1\341\1\342\52\300"+ + "\35\301\1\343\1\344\51\301\1\0\10\10\1\345\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\16\10\62\0"+ + "\1\346\111\0\1\347\52\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\6\10\1\350\7\10\27\0"+ "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\1\u0100\15\10\30\0\11\10\2\0\7\10\1\0\1\u0101"+ - "\1\10\1\0\5\10\10\0\16\10\63\0\1\u0102\112\0"+ - "\1\u0103\52\0\34\276\1\u0104\1\u0105\164\276\146\301\1\u0106"+ - "\1\u0107\52\301\34\0\1\u0108\112\0\1\u0109\52\0\34\304"+ - "\1\u010a\1\u010b\164\304\146\305\1\u010c\1\u010d\52\305\1\0"+ - "\10\10\1\u010e\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\16\10\63\0\1\247\112\0\1\252\53\0\11\10"+ - "\2\0\7\10\1\0\2\10\1\0\5\10\10\0\1\u010f"+ - "\15\10\30\0\11\10\2\0\7\10\1\0\2\10\1\0"+ - "\5\10\10\0\5\10\1\u0110\10\10\30\0\11\10\2\0"+ - "\7\10\1\0\2\10\1\0\5\10\10\0\1\10\1\u0111"+ - "\14\10\27\0\34\247\1\u0112\1\367\66\247\1\321\20\247"+ - "\1\u0113\1\367\1\247\1\324\2\247\2\324\45\247\13\252"+ - "\1\325\21\252\1\371\1\u0114\1\330\2\252\2\330\102\252"+ - "\1\371\1\u0112\52\252\1\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\5\10\1\u0115\10\10\30\0"+ + "\2\10\1\351\13\10\27\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\10\10\1\352\5\10\27\0"+ "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ - "\1\10\1\u0116\14\10\30\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\5\10\1\u0117\10\10\30\0"+ - "\10\10\1\u0118\2\0\7\10\1\0\2\10\1\0\5\10"+ - "\10\0\16\10\63\0\1\276\112\0\1\301\52\0\34\276"+ - "\1\u0119\1\u0105\107\276\1\u011a\1\u0105\53\276\35\301\1\u0106"+ - "\1\u011b\107\301\1\u0106\1\u0119\52\301\34\304\1\u011c\1\u010b"+ - "\107\304\1\u011d\1\u010b\53\304\35\305\1\u010c\1\u011e\107\305"+ - "\1\u010c\1\u011c\52\305\1\0\11\10\2\0\7\10\1\0"+ - "\2\10\1\0\5\10\10\0\11\10\1\u011f\4\10\30\0"+ - "\11\10\2\0\7\10\1\0\2\10\1\0\4\10\1\u0120"+ - "\10\0\16\10\42\0\1\u0121\23\0\1\u0122\2\0\2\u0122"+ - "\45\0\13\247\1\321\20\247\1\u0123\1\367\1\247\1\324"+ - "\2\247\2\324\45\247\13\252\1\325\21\252\1\371\1\u0124"+ - "\1\330\2\252\2\330\45\252\34\276\1\u0125\1\u0105\53\276"+ - "\35\301\1\u0106\1\u0126\52\301\34\304\1\u0127\1\u010b\53\304"+ - "\35\305\1\u010c\1\u0128\52\305\1\0\11\10\2\0\7\10"+ - "\1\0\1\u0129\1\10\1\0\5\10\10\0\16\10\66\0"+ - "\1\u012a\51\0\34\247\1\u012b\1\367\53\247\35\252\1\371"+ - "\1\u012c\52\252\34\276\1\u012d\1\u0105\53\276\35\301\1\u0106"+ - "\1\u012e\52\301\34\304\1\u012f\1\u010b\53\304\35\305\1\u010c"+ - "\1\u0130\52\305\13\247\1\321\20\247\1\u0112\1\367\1\247"+ - "\1\324\2\247\2\324\45\247\13\252\1\325\21\252\1\371"+ - "\1\u0112\1\330\2\252\2\330\45\252"; + "\7\10\1\353\6\10\27\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\3\10\1\354\12\10\26\0"+ + "\34\243\1\355\1\356\162\243\145\246\1\357\1\360\51\246"+ + "\1\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\4\10\1\361\11\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\4\10\1\362\11\10"+ + "\27\0\11\10\2\0\7\10\1\0\1\363\1\10\1\0"+ + "\5\10\10\0\16\10\27\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\4\10\1\364\11\10\27\0"+ + "\11\10\2\0\7\10\1\0\2\10\1\0\5\10\10\0"+ + "\2\10\1\365\13\10\27\0\11\10\2\0\7\10\1\0"+ + "\2\10\1\0\5\10\10\0\1\366\15\10\27\0\11\10"+ + "\2\0\7\10\1\0\1\367\1\10\1\0\5\10\10\0"+ + "\16\10\62\0\1\370\111\0\1\371\51\0\34\272\1\372"+ + "\1\373\162\272\145\275\1\374\1\375\51\275\34\0\1\376"+ + "\111\0\1\377\51\0\34\300\1\u0100\1\u0101\162\300\145\301"+ + "\1\u0102\1\u0103\51\301\1\0\10\10\1\u0104\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\16\10\62\0\1\243"+ + "\111\0\1\246\52\0\11\10\2\0\7\10\1\0\2\10"+ + "\1\0\5\10\10\0\1\u0105\15\10\27\0\11\10\2\0"+ + "\7\10\1\0\2\10\1\0\5\10\10\0\5\10\1\u0106"+ + "\10\10\27\0\11\10\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\1\10\1\u0107\14\10\26\0\34\243\1\u0108"+ + "\1\356\106\243\1\u0109\1\356\52\243\35\246\1\357\1\u010a"+ + "\106\246\1\357\1\u0108\51\246\1\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\5\10\1\u010b\10\10"+ + "\27\0\11\10\2\0\7\10\1\0\2\10\1\0\5\10"+ + "\10\0\1\10\1\u010c\14\10\27\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\5\10\1\u010d\10\10"+ + "\27\0\10\10\1\u010e\2\0\7\10\1\0\2\10\1\0"+ + "\5\10\10\0\16\10\62\0\1\272\111\0\1\275\51\0"+ + "\34\272\1\u010f\1\373\106\272\1\u0110\1\373\52\272\35\275"+ + "\1\374\1\u0111\106\275\1\374\1\u010f\51\275\34\300\1\u0112"+ + "\1\u0101\106\300\1\u0113\1\u0101\52\300\35\301\1\u0102\1\u0114"+ + "\106\301\1\u0102\1\u0112\51\301\1\0\11\10\2\0\7\10"+ + "\1\0\2\10\1\0\5\10\10\0\11\10\1\u0115\4\10"+ + "\27\0\11\10\2\0\7\10\1\0\2\10\1\0\4\10"+ + "\1\u0116\10\0\16\10\63\0\1\u0117\1\0\1\u0118\2\u0119"+ + "\1\0\1\u0118\44\0\34\243\1\u011a\1\356\52\243\35\246"+ + "\1\357\1\u011b\51\246\34\272\1\u011c\1\373\52\272\35\275"+ + "\1\374\1\u011d\51\275\34\300\1\u011e\1\u0101\52\300\35\301"+ + "\1\u0102\1\u011f\51\301\1\0\11\10\2\0\7\10\1\0"+ + "\1\u0120\1\10\1\0\5\10\10\0\16\10\26\0\34\243"+ + "\1\u0121\1\356\52\243\35\246\1\357\1\u0122\51\246\34\272"+ + "\1\u0123\1\373\52\272\35\275\1\374\1\u0124\51\275\34\300"+ + "\1\u0125\1\u0101\52\300\35\301\1\u0102\1\u0126\51\301"; private static int [] zzUnpackTrans() { - int [] result = new int[15768]; + int [] result = new int[14976]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -621,19 +604,19 @@ class _PythonLexer implements FlexLexer { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\1\11\16\1\1\11\1\1\4\11\25\1\15\11"+ + "\3\0\1\11\16\1\1\11\1\1\5\11\25\1\14\11"+ "\13\1\4\0\1\11\1\1\1\0\1\11\11\1\1\11"+ - "\6\1\1\11\24\1\3\11\1\1\1\11\1\1\5\11"+ + "\5\1\1\11\22\1\3\11\1\1\1\11\1\1\5\11"+ "\1\1\2\11\1\1\1\11\1\0\3\1\1\11\13\1"+ - "\1\11\1\0\4\1\1\0\14\1\1\11\21\1\4\11"+ - "\1\0\2\1\1\11\1\0\2\1\1\11\4\1\2\0"+ - "\10\1\2\0\2\1\2\0\11\1\3\0\2\1\7\0"+ - "\1\1\2\0\6\1\1\0\3\1\1\0\7\1\3\0"+ - "\2\1\4\0\2\1\1\0\16\1\1\11\5\1\1\11"+ - "\6\0\1\1\1\11\6\1"; + "\1\11\1\0\4\1\1\0\15\1\1\11\1\0\16\1"+ + "\4\11\1\0\2\1\1\11\1\0\2\1\1\11\4\1"+ + "\2\0\7\1\1\0\2\1\1\0\10\1\3\0\2\1"+ + "\7\0\1\1\2\0\5\1\1\0\2\1\1\0\7\1"+ + "\3\0\2\1\4\0\2\1\1\0\16\1\1\11\4\1"+ + "\2\11\7\0\7\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[304]; + int [] result = new int[294]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -723,7 +706,7 @@ return yylength()-i-1; char [] map = new char[0x10000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 3346) { + while (i < 3338) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -945,396 +928,402 @@ return yylength()-i-1; zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 86: + case 87: { return PyTokenTypes.YIELD_KEYWORD; } - case 96: break; + case 98: break; + case 82: + { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.TRIPLE_QUOTED_STRING; + yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; + } + case 99: break; case 2: { return PyTokenTypes.INTEGER_LITERAL; } - case 97: break; - case 16: + case 100: break; + case 17: { return PyTokenTypes.DIV; } - case 98: break; - case 17: + case 101: break; + case 18: { return PyTokenTypes.PERC; } - case 99: break; + case 102: break; case 8: { return PyTokenTypes.BACKSLASH; } - case 100: break; - case 25: + case 103: break; + case 26: { return PyTokenTypes.RPAR; } - case 101: break; + case 104: break; case 1: { return PyTokenTypes.BAD_CHARACTER; } - case 102: break; - case 28: + case 105: break; + case 29: { return PyTokenTypes.LBRACE; } - case 103: break; + case 106: break; case 35: { yypushback(1); yybegin(YYINITIAL); } - case 104: break; - case 68: + case 107: break; + case 69: { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.DEF_KEYWORD; } - case 105: break; - case 83: + case 108: break; + case 85: { yybegin(IN_DOCSTRING_OWNER); return PyTokenTypes.CLASS_KEYWORD; } - case 106: break; - case 76: + case 109: break; + case 77: { yypushback(getSpaceLength(yytext())); return PyTokenTypes.DOCSTRING; } - case 107: break; + case 110: break; case 6: { return PyTokenTypes.MINUS; } - case 108: break; - case 82: + case 111: break; + case 7: + { if (zzInput == YYEOF && zzStartRead == 0) return PyTokenTypes.DOCSTRING; + else return PyTokenTypes.SINGLE_QUOTED_STRING; + } + case 112: break; + case 84: { return PyTokenTypes.BREAK_KEYWORD; } - case 109: break; - case 27: + case 113: break; + case 28: { return PyTokenTypes.RBRACKET; } - case 110: break; - case 61: + case 114: break; + case 62: { yypushback(getSpaceLength(yytext())); yybegin(YYINITIAL); return PyTokenTypes.DOCSTRING; } - case 111: break; + case 115: break; case 5: { return PyTokenTypes.DOT; } - case 112: break; + case 116: break; case 3: { return PyTokenTypes.IDENTIFIER; } - case 113: break; - case 24: + case 117: break; + case 25: { return PyTokenTypes.LPAR; } - case 114: break; - case 22: + case 118: break; + case 23: { return PyTokenTypes.LT; } - case 115: break; - case 43: + case 119: break; + case 44: { return PyTokenTypes.IN_KEYWORD; } - case 116: break; - case 84: - // lookahead expression with fixed lookahead length - yypushback(2); - { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; - } - case 117: break; - case 80: - // lookahead expression with fixed lookahead length - yypushback(1); - { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.TRIPLE_QUOTED_STRING; - } - case 118: break; - case 85: + case 120: break; + case 86: { return PyTokenTypes.RAISE_KEYWORD; } - case 119: break; - case 73: + case 121: break; + case 74: { return PyTokenTypes.GTGTEQ; } - case 120: break; + case 122: break; case 10: { return PyTokenTypes.SPACE; } - case 121: break; - case 89: + case 123: break; + case 90: { return PyTokenTypes.EXCEPT_KEYWORD; } - case 122: break; - case 38: + case 124: break; + case 39: { return PyTokenTypes.IMAGINARY_LITERAL; } - case 123: break; - case 7: + case 125: break; + case 37: { return PyTokenTypes.SINGLE_QUOTED_STRING; } - case 124: break; + case 126: break; case 12: { return PyTokenTypes.FORMFEED; } - case 125: break; - case 34: + case 127: break; + case 13: { return PyTokenTypes.SEMICOLON; } - case 126: break; - case 21: + case 128: break; + case 22: { return PyTokenTypes.GT; } - case 127: break; - case 26: + case 129: break; + case 27: { return PyTokenTypes.LBRACKET; } - case 128: break; - case 32: + case 130: break; + case 33: { return PyTokenTypes.COLON; } - case 129: break; - case 74: + case 131: break; + case 75: { return PyTokenTypes.LTLTEQ; } - case 130: break; - case 78: + case 132: break; + case 80: { return PyTokenTypes.ELSE_KEYWORD; } - case 131: break; - case 19: + case 133: break; + case 20: { return PyTokenTypes.OR; } - case 132: break; - case 47: - { return PyTokenTypes.MULTEQ; - } - case 133: break; - case 94: - { return PyTokenTypes.FINALLY_KEYWORD; - } case 134: break; - case 87: - { return PyTokenTypes.WHILE_KEYWORD; + case 66: + { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.SINGLE_QUOTED_STRING; + yybegin(PENDING_DOCSTRING); return PyTokenTypes.DOCSTRING; } case 135: break; - case 15: - { return PyTokenTypes.MULT; + case 65: + { if (zzInput == YYEOF && zzStartRead == 0) return PyTokenTypes.DOCSTRING; + else return PyTokenTypes.TRIPLE_QUOTED_STRING; } case 136: break; - case 90: - { return PyTokenTypes.ASSERT_KEYWORD; + case 48: + { return PyTokenTypes.MULTEQ; } case 137: break; - case 50: - { return PyTokenTypes.FLOORDIV; + case 95: + { return PyTokenTypes.FINALLY_KEYWORD; } case 138: break; - case 93: - { return PyTokenTypes.GLOBAL_KEYWORD; + case 88: + { return PyTokenTypes.WHILE_KEYWORD; } case 139: break; + case 16: + { return PyTokenTypes.MULT; + } + case 140: break; + case 91: + { return PyTokenTypes.ASSERT_KEYWORD; + } + case 141: break; + case 51: + { return PyTokenTypes.FLOORDIV; + } + case 142: break; + case 94: + { return PyTokenTypes.GLOBAL_KEYWORD; + } + case 143: break; case 36: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.SINGLE_QUOTED_STRING; } - case 140: break; - case 88: + case 144: break; + case 89: { return PyTokenTypes.LAMBDA_KEYWORD; } - case 141: break; - case 54: + case 145: break; + case 55: { return PyTokenTypes.XOREQ; } - case 142: break; - case 63: + case 146: break; + case 64: { return PyTokenTypes.FOR_KEYWORD; } - case 143: break; - case 30: + case 147: break; + case 31: { return PyTokenTypes.AT; } - case 144: break; - case 67: + case 148: break; + case 68: { return PyTokenTypes.NOT_KEYWORD; } - case 145: break; - case 13: + case 149: break; + case 14: { return PyTokenTypes.PLUS; } - case 146: break; - case 40: + case 150: break; + case 41: { return PyTokenTypes.MINUSEQ; } - case 147: break; - case 60: + case 151: break; + case 61: { return PyTokenTypes.NE; } - case 148: break; - case 31: + case 152: break; + case 32: { return PyTokenTypes.COMMA; } - case 149: break; - case 46: + case 153: break; + case 47: { return PyTokenTypes.EQEQ; } - case 150: break; - case 33: + case 154: break; + case 34: { return PyTokenTypes.TICK; } - case 151: break; - case 48: + case 155: break; + case 49: { return PyTokenTypes.EXP; } - case 152: break; - case 65: + case 156: break; + case 78: { return PyTokenTypes.TRIPLE_QUOTED_STRING; } - case 153: break; - case 95: + case 157: break; + case 97: { return PyTokenTypes.CONTINUE_KEYWORD; } - case 154: break; - case 59: + case 158: break; + case 60: { return PyTokenTypes.LTLT; } - case 155: break; - case 57: + case 159: break; + case 58: { return PyTokenTypes.LE; } - case 156: break; - case 66: + case 160: break; + case 67: { return PyTokenTypes.AND_KEYWORD; } - case 157: break; - case 39: + case 161: break; + case 40: { return PyTokenTypes.OR_KEYWORD; } - case 158: break; - case 81: + case 162: break; + case 42: + { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.SINGLE_QUOTED_STRING; +return PyTokenTypes.DOCSTRING; + } + case 163: break; + case 83: { return PyTokenTypes.PASS_KEYWORD; } - case 159: break; - case 62: + case 164: break; + case 63: { yypushback(yylength()-1); yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON; } - case 160: break; + case 165: break; case 4: { return PyTokenTypes.END_OF_LINE_COMMENT; } - case 161: break; - case 53: - { return PyTokenTypes.OREQ; - } - case 162: break; - case 56: - { return PyTokenTypes.GTGT; - } - case 163: break; - case 18: - { return PyTokenTypes.AND; - } - case 164: break; - case 49: - { return PyTokenTypes.DIVEQ; - } - case 165: break; - case 91: - { return PyTokenTypes.RETURN_KEYWORD; - } case 166: break; - case 92: - { return PyTokenTypes.IMPORT_KEYWORD; + case 96: + { yypushback(getSpaceLength(yytext())); if (zzCurrentPos != 0) return PyTokenTypes.TRIPLE_QUOTED_STRING; +return PyTokenTypes.DOCSTRING; } case 167: break; - case 55: - { return PyTokenTypes.GE; + case 54: + { return PyTokenTypes.OREQ; } case 168: break; - case 45: - { return PyTokenTypes.PLUSEQ; + case 57: + { return PyTokenTypes.GTGT; } case 169: break; - case 75: + case 19: + { return PyTokenTypes.AND; + } + case 170: break; + case 50: + { return PyTokenTypes.DIVEQ; + } + case 171: break; + case 92: + { return PyTokenTypes.RETURN_KEYWORD; + } + case 172: break; + case 93: + { return PyTokenTypes.IMPORT_KEYWORD; + } + case 173: break; + case 56: + { return PyTokenTypes.GE; + } + case 174: break; + case 46: + { return PyTokenTypes.PLUSEQ; + } + case 175: break; + case 76: { if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING; else yybegin(YYINITIAL); return PyTokenTypes.TRIPLE_QUOTED_STRING; } - case 170: break; - case 44: + case 176: break; + case 45: { return PyTokenTypes.IS_KEYWORD; } - case 171: break; - case 72: + case 177: break; + case 73: { return PyTokenTypes.FLOORDIVEQ; } - case 172: break; - case 37: + case 178: break; + case 38: { return PyTokenTypes.FLOAT_LITERAL; } - case 173: break; + case 179: break; case 9: { return PyTokenTypes.LINE_BREAK; } - case 174: break; - case 51: - { return PyTokenTypes.PERCEQ; - } - case 175: break; - case 70: - { return PyTokenTypes.TRY_KEYWORD; - } - case 176: break; - case 52: - { return PyTokenTypes.ANDEQ; - } - case 177: break; - case 14: - { return PyTokenTypes.EQ; - } - case 178: break; - case 77: - { return PyTokenTypes.FROM_KEYWORD; - } - case 179: break; - case 41: - // lookahead expression with fixed lookahead length - yypushback(1); - { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; - } case 180: break; - case 64: - // lookahead expression with fixed lookahead length - yypushback(2); - { if (zzCurrentPos == 0) return PyTokenTypes.DOCSTRING; return PyTokenTypes.SINGLE_QUOTED_STRING; + case 52: + { return PyTokenTypes.PERCEQ; } case 181: break; case 71: - { return PyTokenTypes.EXPEQ; + { return PyTokenTypes.TRY_KEYWORD; } case 182: break; - case 79: - { return PyTokenTypes.ELIF_KEYWORD; + case 53: + { return PyTokenTypes.ANDEQ; } case 183: break; - case 29: - { return PyTokenTypes.RBRACE; + case 15: + { return PyTokenTypes.EQ; } case 184: break; - case 42: - { return PyTokenTypes.IF_KEYWORD; + case 79: + { return PyTokenTypes.FROM_KEYWORD; } case 185: break; + case 72: + { return PyTokenTypes.EXPEQ; + } + case 186: break; + case 81: + { return PyTokenTypes.ELIF_KEYWORD; + } + case 187: break; + case 30: + { return PyTokenTypes.RBRACE; + } + case 188: break; + case 43: + { return PyTokenTypes.IF_KEYWORD; + } + case 189: break; case 11: { return PyTokenTypes.TAB; } - case 186: break; - case 58: + case 190: break; + case 59: { return PyTokenTypes.NE_OLD; } - case 187: break; - case 23: + case 191: break; + case 24: { return PyTokenTypes.TILDE; } - case 188: break; - case 20: + case 192: break; + case 21: { return PyTokenTypes.XOR; } - case 189: break; - case 69: + case 193: break; + case 70: { return PyTokenTypes.DEL_KEYWORD; } - case 190: break; + case 194: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true;