mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote branch 'origin/master'
This commit is contained in:
@@ -510,9 +510,9 @@
|
||||
<configurationProducer implementation="com.jetbrains.rest.run.docutils.DocutilsConfigurationProducer"/>
|
||||
|
||||
<!-- Mako files -->
|
||||
<lang.substitutor language="HTML" implementationClass="com.jetbrains.mako.MakoLanguageSubstitutor"/>
|
||||
<lang.substitutor language="XHTML" implementationClass="com.jetbrains.mako.MakoLanguageSubstitutor"/>
|
||||
<lang.substitutor language="XML" implementationClass="com.jetbrains.mako.MakoLanguageSubstitutor"/>
|
||||
<lang.substitutor language="HTML" implementationClass="com.jetbrains.mako.TemplateLanguageSubstitutor"/>
|
||||
<lang.substitutor language="XHTML" implementationClass="com.jetbrains.mako.TemplateLanguageSubstitutor"/>
|
||||
<lang.substitutor language="XML" implementationClass="com.jetbrains.mako.TemplateLanguageSubstitutor"/>
|
||||
|
||||
<colorSettingsPage implementation="com.jetbrains.mako.highlighting.MakoColorsPage"/>
|
||||
<lang.syntaxHighlighterFactory key="Mako"
|
||||
@@ -526,6 +526,8 @@
|
||||
<quoteHandler fileType="Mako" className="com.jetbrains.mako.editor.MakoQuoteHandler"/>
|
||||
<completion.contributor language="Mako"
|
||||
implementationClass="com.jetbrains.mako.editor.MakoCompletionContributor"/>
|
||||
<completion.contributor language="Mako"
|
||||
implementationClass="com.jetbrains.mako.editor.MakoFunctionsCompletionContributor"/>
|
||||
|
||||
<typedHandler implementation="com.jetbrains.mako.editor.MakoBracesHandler"
|
||||
id="MakoBracesHandler"/>
|
||||
@@ -533,6 +535,14 @@
|
||||
|
||||
<projectService serviceInterface="com.jetbrains.mako.TemplatesService"
|
||||
serviceImplementation="com.jetbrains.mako.TemplatesService"/>
|
||||
|
||||
<!-- Jinja2 -->
|
||||
<editorHighlighterProvider filetype="Jinja2" implementationClass="com.jetbrains.jinja2.highlighting.Jinja2EditorHighlighterProvider"/>
|
||||
<lang.syntaxHighlighterFactory key="Jinja2" implementationClass="com.jetbrains.jinja2.highlighting.Jinja2HighlighterFactory"/>
|
||||
<lang.parserDefinition language="Jinja2"
|
||||
implementationClass="com.jetbrains.jinja2.parsing.Jinja2ParserDefinition"/>
|
||||
<lang.fileViewProviderFactory language="Jinja2"
|
||||
implementationClass="com.jetbrains.jinja2.Jinja2FileViewProviderFactory"/>
|
||||
</extensions>
|
||||
|
||||
<extensionPoints>
|
||||
|
||||
@@ -56,6 +56,7 @@ QFIX.augment.assignment=Assignment can be replaced with augmented assignment
|
||||
QFIX.chained.comparison=Simplify chained comparison
|
||||
|
||||
QFIX.statement.effect=Statement can be replaced with function call
|
||||
QFIX.statement.effect.move.docstring=Move docstring to the proper place
|
||||
|
||||
QFIX.statement.effect.introduce.variable=Introduce variable
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.jetbrains.python.actions;
|
||||
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* User: catherine
|
||||
*
|
||||
* QuickFix to move misplaced docstring
|
||||
*/
|
||||
public class StatementEffectDocstringQuickFix implements LocalQuickFix {
|
||||
|
||||
public StatementEffectDocstringQuickFix() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getName() {
|
||||
return PyBundle.message("QFIX.statement.effect.move.docstring");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getFamilyName() {
|
||||
return PyBundle.message("INSP.GROUP.python");
|
||||
}
|
||||
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
PsiElement expression = descriptor.getPsiElement();
|
||||
if (expression instanceof PyStringLiteralExpression) {
|
||||
PyStatement st = PsiTreeUtil.getParentOfType(expression, PyStatement.class);
|
||||
if (st != null) {
|
||||
PyDocStringOwner parent = PsiTreeUtil.getParentOfType(expression, PyDocStringOwner.class);
|
||||
|
||||
if (parent instanceof PyClass || parent instanceof PyFunction) {
|
||||
PyStatementList statementList = PsiTreeUtil.findChildOfType(parent, PyStatementList.class);
|
||||
if (statementList != null) {
|
||||
PyStatement[] statements = statementList.getStatements();
|
||||
if (statements.length > 0) {
|
||||
statementList.addBefore(st, statements[0]);
|
||||
st.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import com.intellij.openapi.fileTypes.SyntaxHighlighter;
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.jetbrains.django.lang.template.highlighting.DjangoTemplateFileHighlighter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.jetbrains.python.codeInsight.completion;
|
||||
|
||||
import com.intellij.codeInsight.AutoPopupController;
|
||||
import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.codeInsight.completion.InsertHandler;
|
||||
import com.intellij.codeInsight.completion.InsertionContext;
|
||||
import com.intellij.codeInsight.lookup.Lookup;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -38,8 +36,5 @@ public class PyClassInsertHandler implements InsertHandler<LookupElement> {
|
||||
editor.getCaretModel().moveToOffset(offset+2);
|
||||
}
|
||||
}
|
||||
else if (context.getCompletionChar() == Lookup.COMPLETE_STATEMENT_SELECT_CHAR) {
|
||||
TailType.SMART_COMPLETION.processTail(editor, context.getTailOffset());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,7 @@ import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.actions.PyDefaultArgumentQuickFix;
|
||||
import com.jetbrains.python.psi.PyDictLiteralExpression;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyListLiteralExpression;
|
||||
import com.jetbrains.python.psi.PyNamedParameter;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -41,6 +38,11 @@ public class PyDefaultArgumentInspection extends PyInspection {
|
||||
if (defaultValue instanceof PyListLiteralExpression || defaultValue instanceof PyDictLiteralExpression) {
|
||||
registerProblem(defaultValue, "Default argument value is mutable", new PyDefaultArgumentQuickFix());
|
||||
}
|
||||
if (defaultValue instanceof PyCallExpression) {
|
||||
PyExpression callee = ((PyCallExpression)defaultValue).getCallee();
|
||||
if (callee != null && "dict".equals(callee.getText()))
|
||||
registerProblem(defaultValue, "Default argument value is mutable", new PyDefaultArgumentQuickFix());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.ResolveResult;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.actions.StatementEffectDocstringQuickFix;
|
||||
import com.jetbrains.python.actions.StatementEffectFunctionCallQuickFix;
|
||||
import com.jetbrains.python.actions.StatementEffectIntroduceVariableQuickFix;
|
||||
import com.jetbrains.python.console.PydevConsoleRunner;
|
||||
@@ -64,10 +65,24 @@ public class PyStatementEffectInspection extends PyInspection {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (checkStringLiteral(expression))
|
||||
return;
|
||||
registerProblem(expression, "Statement seems to have no effect",
|
||||
new StatementEffectIntroduceVariableQuickFix(expression));
|
||||
}
|
||||
|
||||
private boolean checkStringLiteral(PyExpression expression) {
|
||||
if (expression instanceof PyStringLiteralExpression) {
|
||||
PyDocStringOwner parent = PsiTreeUtil.getParentOfType(expression, PyFunction.class, PyClass.class);
|
||||
if (parent != null && parent.getDocStringExpression() == null) {
|
||||
registerProblem(expression, "Docstring seems to be misplaced",
|
||||
new StatementEffectDocstringQuickFix());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean hasEffect(@Nullable PyExpression expression) {
|
||||
if (expression == null) {
|
||||
return false;
|
||||
|
||||
@@ -171,7 +171,8 @@ return yylength()-i-1;
|
||||
"}" { return PyTokenTypes.RBRACE; }
|
||||
"@" { return PyTokenTypes.AT; }
|
||||
"," { return PyTokenTypes.COMMA; }
|
||||
":" { yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON; }
|
||||
":" { return PyTokenTypes.COLON; }
|
||||
":"(\ )*"\n" { yypushback(yylength()-1); yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON; }
|
||||
"." { return PyTokenTypes.DOT; }
|
||||
"`" { return PyTokenTypes.TICK; }
|
||||
"=" { return PyTokenTypes.EQ; }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 7/14/11 7:46 PM */
|
||||
/* The following code was generated by JFlex 1.4.3 on 9/15/11 2:15 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
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
|
||||
* on 7/14/11 7:46 PM from the specification file
|
||||
* on 9/15/11 2:15 PM from the specification file
|
||||
* <tt>./Python.flex</tt>
|
||||
*/
|
||||
class _PythonLexer implements FlexLexer {
|
||||
@@ -226,19 +226,19 @@ class _PythonLexer implements FlexLexer {
|
||||
"\1\13\1\47\1\0\1\50\3\14\1\51\4\14\1\52"+
|
||||
"\2\14\6\17\7\14\1\53\1\54\1\55\5\14\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\11"+
|
||||
"\1\76\1\77\1\0\1\76\3\13\1\47\1\0\1\100"+
|
||||
"\11\14\1\17\2\101\1\102\1\14\1\103\1\104\1\105"+
|
||||
"\1\106\7\14\1\107\1\110\1\111\1\112\1\0\2\77"+
|
||||
"\1\0\1\113\4\14\1\114\1\115\2\14\4\0\4\14"+
|
||||
"\1\116\3\14\1\0\2\76\1\0\1\14\1\117\3\14"+
|
||||
"\1\120\1\0\2\101\1\0\2\14\1\121\1\14\1\122"+
|
||||
"\1\14\1\123\3\76\1\14\1\124\1\125\1\126\3\101"+
|
||||
"\1\127\1\14\1\130\1\131\2\0\1\132\2\0\1\14"+
|
||||
"\2\76\2\101\1\133";
|
||||
"\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+
|
||||
"\1\0\1\11\1\77\1\100\1\0\1\77\3\13\1\47"+
|
||||
"\1\0\1\101\11\14\1\17\2\102\1\103\1\14\1\104"+
|
||||
"\1\105\1\106\1\107\7\14\1\110\1\111\1\112\1\113"+
|
||||
"\1\0\2\100\1\0\1\114\4\14\1\115\1\116\2\14"+
|
||||
"\4\0\4\14\1\117\3\14\1\0\2\77\1\0\1\14"+
|
||||
"\1\120\3\14\1\121\1\0\2\102\1\0\2\14\1\122"+
|
||||
"\1\14\1\123\1\14\1\124\3\77\1\14\1\125\1\126"+
|
||||
"\1\127\3\102\1\130\1\14\1\131\1\132\2\0\1\133"+
|
||||
"\2\0\1\14\2\77\2\102\1\134";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[240];
|
||||
int [] result = new int[242];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -270,32 +270,33 @@ class _PythonLexer implements FlexLexer {
|
||||
"\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\u0b40"+
|
||||
"\0\u0b88\0\u0bd0\0\u0c18\0\u0c60\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\u01b0\0\u0ca8\0\u0cf0\0\u0d38\0\330\0\u0d80\0\u0dc8\0\u0e10"+
|
||||
"\0\u0e58\0\u0ea0\0\u0ee8\0\u0f30\0\u0f78\0\330\0\u0fc0\0\u1008"+
|
||||
"\0\330\0\u1050\0\u1098\0\u10e0\0\u0360\0\u1128\0\u1170\0\u11b8"+
|
||||
"\0\u1200\0\330\0\u1248\0\u1290\0\u12d8\0\u1320\0\u1368\0\u13b0"+
|
||||
"\0\u13f8\0\u1440\0\u1488\0\u14d0\0\u1518\0\u1560\0\u15a8\0\u15f0"+
|
||||
"\0\u1638\0\u0360\0\u0360\0\u0360\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\330\0\u1908\0\u1998\0\u19e0\0\u1a28"+
|
||||
"\0\u1a70\0\u1ab8\0\u1b00\0\u0360\0\u1b48\0\u1b90\0\u1bd8\0\u1c20"+
|
||||
"\0\u1c68\0\u1cb0\0\u1cf8\0\u1d40\0\u1d88\0\330\0\u1dd0\0\u1e18"+
|
||||
"\0\u0360\0\u1e60\0\u0360\0\u0360\0\u0360\0\u0360\0\u1ea8\0\u1ef0"+
|
||||
"\0\u1f38\0\u1f80\0\u1fc8\0\u2010\0\u2058\0\330\0\330\0\330"+
|
||||
"\0\330\0\u20a0\0\u20e8\0\u2130\0\u2178\0\u0360\0\u21c0\0\u2208"+
|
||||
"\0\u2250\0\u2298\0\u0360\0\u0360\0\u22e0\0\u2328\0\u2370\0\u23b8"+
|
||||
"\0\u2400\0\u2448\0\u2490\0\u24d8\0\u2520\0\u2568\0\u0360\0\u25b0"+
|
||||
"\0\u25f8\0\u2640\0\u2688\0\u26d0\0\u2718\0\u2760\0\u27a8\0\u0360"+
|
||||
"\0\u27f0\0\u2838\0\u2880\0\u0360\0\u28c8\0\u2910\0\u2958\0\u29a0"+
|
||||
"\0\u29e8\0\u2a30\0\u0360\0\u2a78\0\u0360\0\u2ac0\0\u0360\0\u1908"+
|
||||
"\0\u2b08\0\u2b50\0\u2b98\0\u0360\0\u0360\0\u0360\0\330\0\u2be0"+
|
||||
"\0\u2c28\0\u0360\0\u2c70\0\u0360\0\u0360\0\u2cb8\0\u2d00\0\u0360"+
|
||||
"\0\u2d48\0\u2d90\0\u2dd8\0\u2688\0\u2760\0\u28c8\0\u29a0\0\u0360";
|
||||
"\0\330\0\330\0\330\0\330\0\330\0\u0ca8\0\330\0\330"+
|
||||
"\0\u01b0\0\u0cf0\0\u0d38\0\u0d80\0\330\0\u0dc8\0\u0e10\0\u0e58"+
|
||||
"\0\u0ea0\0\u0ee8\0\u0f30\0\u0f78\0\u0fc0\0\330\0\u1008\0\u1050"+
|
||||
"\0\330\0\u1098\0\u10e0\0\u1128\0\u0360\0\u1170\0\u11b8\0\u1200"+
|
||||
"\0\u1248\0\330\0\u1290\0\u12d8\0\u1320\0\u1368\0\u13b0\0\u13f8"+
|
||||
"\0\u1440\0\u1488\0\u14d0\0\u1518\0\u1560\0\u15a8\0\u15f0\0\u1638"+
|
||||
"\0\u1680\0\u0360\0\u0360\0\u0360\0\u16c8\0\u1710\0\u1758\0\u17a0"+
|
||||
"\0\u17e8\0\330\0\330\0\330\0\u1830\0\330\0\u1878\0\330"+
|
||||
"\0\330\0\330\0\330\0\330\0\u18c0\0\330\0\330\0\u1908"+
|
||||
"\0\330\0\330\0\u0ca8\0\u1950\0\u1998\0\330\0\u1950\0\u19e0"+
|
||||
"\0\u1a28\0\u1a70\0\u1ab8\0\u1b00\0\u1b48\0\u0360\0\u1b90\0\u1bd8"+
|
||||
"\0\u1c20\0\u1c68\0\u1cb0\0\u1cf8\0\u1d40\0\u1d88\0\u1dd0\0\330"+
|
||||
"\0\u1e18\0\u1e60\0\u0360\0\u1ea8\0\u0360\0\u0360\0\u0360\0\u0360"+
|
||||
"\0\u1ef0\0\u1f38\0\u1f80\0\u1fc8\0\u2010\0\u2058\0\u20a0\0\330"+
|
||||
"\0\330\0\330\0\330\0\u20e8\0\u2130\0\u2178\0\u21c0\0\u0360"+
|
||||
"\0\u2208\0\u2250\0\u2298\0\u22e0\0\u0360\0\u0360\0\u2328\0\u2370"+
|
||||
"\0\u23b8\0\u2400\0\u2448\0\u2490\0\u24d8\0\u2520\0\u2568\0\u25b0"+
|
||||
"\0\u0360\0\u25f8\0\u2640\0\u2688\0\u26d0\0\u2718\0\u2760\0\u27a8"+
|
||||
"\0\u27f0\0\u0360\0\u2838\0\u2880\0\u28c8\0\u0360\0\u2910\0\u2958"+
|
||||
"\0\u29a0\0\u29e8\0\u2a30\0\u2a78\0\u0360\0\u2ac0\0\u0360\0\u2b08"+
|
||||
"\0\u0360\0\u1950\0\u2b50\0\u2b98\0\u2be0\0\u0360\0\u0360\0\u0360"+
|
||||
"\0\330\0\u2c28\0\u2c70\0\u0360\0\u2cb8\0\u0360\0\u0360\0\u2d00"+
|
||||
"\0\u2d48\0\u0360\0\u2d90\0\u2dd8\0\u2e20\0\u26d0\0\u27a8\0\u2910"+
|
||||
"\0\u29e8\0\u0360";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[240];
|
||||
int [] result = new int[242];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -374,136 +375,136 @@ class _PythonLexer implements FlexLexer {
|
||||
"\1\163\107\0\1\164\1\165\106\0\1\166\1\0\1\167"+
|
||||
"\105\0\1\170\107\0\1\171\107\0\1\172\107\0\1\173"+
|
||||
"\107\0\1\174\6\0\1\175\100\0\1\176\6\0\1\177"+
|
||||
"\1\200\77\0\1\201\25\0\13\102\1\0\20\102\1\202"+
|
||||
"\1\104\1\102\1\105\50\102\34\0\1\203\1\204\1\0"+
|
||||
"\1\105\2\205\45\0\1\105\110\102\13\106\1\0\21\106"+
|
||||
"\1\107\1\202\1\105\160\106\35\0\1\204\1\206\1\105"+
|
||||
"\2\205\45\0\1\105\1\0\1\111\1\112\1\111\1\0"+
|
||||
"\1\111\3\0\1\116\7\0\1\116\1\0\1\117\2\120"+
|
||||
"\1\0\1\121\61\0\3\112\1\0\1\112\15\0\1\117"+
|
||||
"\2\120\1\0\1\121\61\0\5\207\2\0\1\207\4\0"+
|
||||
"\1\207\2\0\1\207\3\0\2\207\15\0\1\207\1\0"+
|
||||
"\1\207\3\0\1\207\37\0\1\210\1\0\1\210\1\0"+
|
||||
"\1\210\103\0\1\211\3\0\1\211\103\0\3\117\1\0"+
|
||||
"\1\117\16\0\2\120\1\0\1\121\61\0\3\212\1\0"+
|
||||
"\1\212\20\0\1\213\32\0\1\213\27\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\4\24\1\214\7\0\16\24"+
|
||||
"\30\0\6\24\1\215\2\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\16\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\1\24\1\216\14\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\1\217\1\24\1\0"+
|
||||
"\5\24\1\36\1\0\1\37\4\0\16\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\12\24"+
|
||||
"\1\220\3\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\6\24\1\221\7\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\3\24"+
|
||||
"\1\222\3\24\1\223\6\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\4\24\1\224\11\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\2\24\1\0\5\24"+
|
||||
"\7\0\7\24\1\225\6\24\27\0\13\135\1\0\20\135"+
|
||||
"\1\226\1\137\1\135\1\0\50\135\34\0\1\227\53\0"+
|
||||
"\110\135\13\140\1\0\21\140\1\141\1\226\1\0\160\140"+
|
||||
"\36\0\1\230\52\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\2\24\1\231\13\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\3\24"+
|
||||
"\1\232\12\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\4\24\1\233\11\24\30\0\3\24"+
|
||||
"\1\234\4\24\1\235\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\16\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\11\24\1\236\4\24\30\0"+
|
||||
"\1\200\77\0\1\201\64\0\1\202\1\203\47\0\13\102"+
|
||||
"\1\0\20\102\1\204\1\104\1\102\1\105\50\102\34\0"+
|
||||
"\1\205\1\206\1\0\1\105\2\207\45\0\1\105\110\102"+
|
||||
"\13\106\1\0\21\106\1\107\1\204\1\105\160\106\35\0"+
|
||||
"\1\206\1\210\1\105\2\207\45\0\1\105\1\0\1\111"+
|
||||
"\1\112\1\111\1\0\1\111\3\0\1\116\7\0\1\116"+
|
||||
"\1\0\1\117\2\120\1\0\1\121\61\0\3\112\1\0"+
|
||||
"\1\112\15\0\1\117\2\120\1\0\1\121\61\0\5\211"+
|
||||
"\2\0\1\211\4\0\1\211\2\0\1\211\3\0\2\211"+
|
||||
"\15\0\1\211\1\0\1\211\3\0\1\211\37\0\1\212"+
|
||||
"\1\0\1\212\1\0\1\212\103\0\1\213\3\0\1\213"+
|
||||
"\103\0\3\117\1\0\1\117\16\0\2\120\1\0\1\121"+
|
||||
"\61\0\3\214\1\0\1\214\20\0\1\215\32\0\1\215"+
|
||||
"\27\0\11\24\2\0\7\24\1\0\2\24\1\0\4\24"+
|
||||
"\1\216\7\0\16\24\30\0\6\24\1\217\2\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\16\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\1\24\1\237\14\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\1\240\15\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\10\24"+
|
||||
"\1\241\5\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\3\24\1\242\12\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\1\243\1\24\1\0\5\24\7\0"+
|
||||
"\16\24\30\0\6\24\1\244\2\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\16\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\7\24\1\245"+
|
||||
"\6\24\111\0\1\246\107\0\1\247\107\0\1\250\107\0"+
|
||||
"\1\251\62\0\1\204\1\0\1\105\2\205\45\0\1\105"+
|
||||
"\34\203\1\252\1\253\52\203\35\206\1\254\1\255\51\206"+
|
||||
"\1\0\5\207\2\0\1\207\1\116\3\0\1\207\2\0"+
|
||||
"\1\207\1\116\2\0\2\207\15\0\1\207\1\0\1\207"+
|
||||
"\3\0\1\207\37\0\1\210\1\0\1\210\1\0\1\210"+
|
||||
"\3\0\1\116\7\0\1\116\67\0\1\211\3\0\1\211"+
|
||||
"\3\0\1\116\7\0\1\116\67\0\3\212\1\0\1\212"+
|
||||
"\21\0\1\121\61\0\3\212\1\0\1\212\103\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\12\24"+
|
||||
"\1\256\3\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\1\257\15\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\1\260\15\24"+
|
||||
"\30\0\7\24\1\261\1\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\16\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\1\262\1\24\1\0\5\24\7\0\16\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\1\263\1\24\1\0\5\24"+
|
||||
"\7\0\16\24\30\0\3\24\1\264\5\24\2\0\7\24"+
|
||||
"\1\24\1\220\14\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\1\221\1\24\1\0\5\24\1\36\1\0\1\37\4\0"+
|
||||
"\16\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\12\24\1\222\3\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\6\24\1\223"+
|
||||
"\7\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\3\24\1\224\3\24\1\225\6\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\4\24\1\226\11\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\7\24\1\227\6\24\27\0"+
|
||||
"\13\135\1\0\20\135\1\230\1\137\1\135\1\0\50\135"+
|
||||
"\34\0\1\231\53\0\110\135\13\140\1\0\21\140\1\141"+
|
||||
"\1\230\1\0\160\140\36\0\1\232\52\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\2\24\1\233"+
|
||||
"\13\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\3\24\1\234\12\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\4\24\1\235"+
|
||||
"\11\24\30\0\3\24\1\236\4\24\1\237\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\16\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\2\24\1\265\2\24"+
|
||||
"\7\0\16\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\3\24\1\266\12\24\27\0\34\227"+
|
||||
"\1\267\1\270\52\227\35\230\1\271\1\272\51\230\1\0"+
|
||||
"\11\24\2\0\7\24\1\0\1\273\1\24\1\0\5\24"+
|
||||
"\7\0\16\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\4\24\1\274\11\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\3\24"+
|
||||
"\1\275\12\24\30\0\6\24\1\276\2\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\16\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\3\24"+
|
||||
"\1\277\12\24\30\0\10\24\1\300\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\16\24\30\0\7\24\1\301"+
|
||||
"\1\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\16\24\30\0\10\24\1\302\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\16\24\27\0\34\203\1\303\1\304"+
|
||||
"\162\203\145\206\1\305\1\306\51\206\1\0\10\24\1\307"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\11\24"+
|
||||
"\1\240\4\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\1\24\1\241\14\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\1\242"+
|
||||
"\15\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\10\24\1\243\5\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\3\24\1\244"+
|
||||
"\12\24\30\0\11\24\2\0\7\24\1\0\1\245\1\24"+
|
||||
"\1\0\5\24\7\0\16\24\30\0\6\24\1\246\2\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\16\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\2\24\1\0\5\24"+
|
||||
"\7\0\5\24\1\310\10\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\2\24\1\311\13\24"+
|
||||
"\7\0\7\24\1\247\6\24\111\0\1\250\107\0\1\251"+
|
||||
"\107\0\1\252\107\0\1\253\62\0\1\206\1\0\1\105"+
|
||||
"\2\207\45\0\1\105\34\205\1\254\1\255\52\205\35\210"+
|
||||
"\1\256\1\257\51\210\1\0\5\211\2\0\1\211\1\116"+
|
||||
"\3\0\1\211\2\0\1\211\1\116\2\0\2\211\15\0"+
|
||||
"\1\211\1\0\1\211\3\0\1\211\37\0\1\212\1\0"+
|
||||
"\1\212\1\0\1\212\3\0\1\116\7\0\1\116\67\0"+
|
||||
"\1\213\3\0\1\213\3\0\1\116\7\0\1\116\67\0"+
|
||||
"\3\214\1\0\1\214\21\0\1\121\61\0\3\214\1\0"+
|
||||
"\1\214\103\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\12\24\1\260\3\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\1\261\15\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\2\24\1\0\5\24"+
|
||||
"\7\0\10\24\1\312\5\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\4\24\1\313\7\0\16\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\1\314\1\24\1\0\5\24"+
|
||||
"\7\0\16\24\27\0\34\227\1\315\1\316\162\227\145\230"+
|
||||
"\1\317\1\320\51\230\1\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\4\24\1\321\7\0\16\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\7\24"+
|
||||
"\1\322\6\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\3\24\1\323\12\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\4\24\1\324\7\0"+
|
||||
"\7\0\1\262\15\24\30\0\7\24\1\263\1\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\16\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\1\264\1\24\1\0\5\24"+
|
||||
"\7\0\16\24\30\0\11\24\2\0\7\24\1\0\1\265"+
|
||||
"\1\24\1\0\5\24\7\0\16\24\30\0\3\24\1\266"+
|
||||
"\5\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\16\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\2\24\1\325\13\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\1\326\15\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\1\327\1\24\1\0"+
|
||||
"\5\24\7\0\16\24\27\0\34\203\1\330\1\304\106\203"+
|
||||
"\1\331\1\304\52\203\35\206\1\305\1\332\106\206\1\305"+
|
||||
"\1\330\51\206\1\0\10\24\1\333\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\16\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\1\334\15\24"+
|
||||
"\2\24\1\267\2\24\7\0\16\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\3\24\1\270"+
|
||||
"\12\24\27\0\34\231\1\271\1\272\52\231\35\232\1\273"+
|
||||
"\1\274\51\232\1\0\11\24\2\0\7\24\1\0\1\275"+
|
||||
"\1\24\1\0\5\24\7\0\16\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\4\24\1\276"+
|
||||
"\11\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\3\24\1\277\12\24\30\0\6\24\1\300"+
|
||||
"\2\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\16\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\3\24\1\301\12\24\30\0\10\24\1\302"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\16\24"+
|
||||
"\30\0\7\24\1\303\1\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\16\24\30\0\10\24\1\304\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\16\24\27\0"+
|
||||
"\34\205\1\305\1\306\162\205\145\210\1\307\1\310\51\210"+
|
||||
"\1\0\10\24\1\311\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\16\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\5\24\1\312\10\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\2\24\1\313\13\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\10\24\1\314\5\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\4\24\1\315"+
|
||||
"\7\0\16\24\30\0\11\24\2\0\7\24\1\0\1\316"+
|
||||
"\1\24\1\0\5\24\7\0\16\24\27\0\34\231\1\317"+
|
||||
"\1\320\162\231\145\232\1\321\1\322\51\232\1\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\4\24\1\323\7\0"+
|
||||
"\16\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\5\24\7\0\7\24\1\324\6\24\30\0\11\24\2\0"+
|
||||
"\7\24\1\0\2\24\1\0\5\24\7\0\3\24\1\325"+
|
||||
"\12\24\30\0\11\24\2\0\7\24\1\0\2\24\1\0"+
|
||||
"\4\24\1\326\7\0\16\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\2\24\1\327\13\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\2\24\1\0\5\24"+
|
||||
"\7\0\4\24\1\335\11\24\30\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\1\24\1\336\14\24"+
|
||||
"\27\0\34\227\1\337\1\316\106\227\1\340\1\316\52\227"+
|
||||
"\35\230\1\317\1\341\106\230\1\317\1\337\51\230\1\0"+
|
||||
"\7\0\1\330\15\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\1\331\1\24\1\0\5\24\7\0\16\24\27\0\34\205"+
|
||||
"\1\332\1\306\106\205\1\333\1\306\52\205\35\210\1\307"+
|
||||
"\1\334\106\210\1\307\1\332\51\210\1\0\10\24\1\335"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\16\24"+
|
||||
"\30\0\11\24\2\0\7\24\1\0\2\24\1\0\5\24"+
|
||||
"\7\0\1\336\15\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\4\24\1\337\11\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\4\24\1\342\11\24\30\0\11\24\2\0\7\24\1\0"+
|
||||
"\2\24\1\0\5\24\7\0\1\24\1\343\14\24\30\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\4\24\1\344\11\24\30\0\10\24\1\345\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\5\24\7\0\16\24\27\0\34\203"+
|
||||
"\1\346\1\304\52\203\35\206\1\305\1\347\51\206\1\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\11\24\1\350\4\24\27\0\34\227\1\351\1\316\52\227"+
|
||||
"\35\230\1\317\1\352\51\230\1\0\11\24\2\0\7\24"+
|
||||
"\1\0\2\24\1\0\2\24\1\353\2\24\7\0\16\24"+
|
||||
"\27\0\34\203\1\354\1\304\52\203\35\206\1\305\1\355"+
|
||||
"\51\206\34\227\1\356\1\316\52\227\35\230\1\317\1\357"+
|
||||
"\51\230\1\0\11\24\2\0\7\24\1\0\1\360\1\24"+
|
||||
"\1\0\5\24\7\0\16\24\27\0";
|
||||
"\1\24\1\340\14\24\27\0\34\231\1\341\1\320\106\231"+
|
||||
"\1\342\1\320\52\231\35\232\1\321\1\343\106\232\1\321"+
|
||||
"\1\341\51\232\1\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\4\24\1\344\11\24\30\0\11\24"+
|
||||
"\2\0\7\24\1\0\2\24\1\0\5\24\7\0\1\24"+
|
||||
"\1\345\14\24\30\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\4\24\1\346\11\24\30\0\10\24"+
|
||||
"\1\347\2\0\7\24\1\0\2\24\1\0\5\24\7\0"+
|
||||
"\16\24\27\0\34\205\1\350\1\306\52\205\35\210\1\307"+
|
||||
"\1\351\51\210\1\0\11\24\2\0\7\24\1\0\2\24"+
|
||||
"\1\0\5\24\7\0\11\24\1\352\4\24\27\0\34\231"+
|
||||
"\1\353\1\320\52\231\35\232\1\321\1\354\51\232\1\0"+
|
||||
"\11\24\2\0\7\24\1\0\2\24\1\0\2\24\1\355"+
|
||||
"\2\24\7\0\16\24\27\0\34\205\1\356\1\306\52\205"+
|
||||
"\35\210\1\307\1\357\51\210\34\231\1\360\1\320\52\231"+
|
||||
"\35\232\1\321\1\361\51\232\1\0\11\24\2\0\7\24"+
|
||||
"\1\0\1\362\1\24\1\0\5\24\7\0\16\24\27\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[11808];
|
||||
int [] result = new int[11880];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -544,17 +545,17 @@ class _PythonLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\3\0\1\11\1\1\6\11\4\1\1\11\44\1\14\11"+
|
||||
"\1\0\3\1\1\11\4\1\4\0\1\11\1\1\1\0"+
|
||||
"\1\11\10\1\1\11\27\1\3\11\1\1\1\11\1\1"+
|
||||
"\5\11\1\1\2\11\1\1\1\11\2\1\1\11\1\0"+
|
||||
"\5\1\1\0\12\1\1\11\17\1\4\11\1\0\2\1"+
|
||||
"\1\0\11\1\4\0\10\1\1\0\2\1\1\0\6\1"+
|
||||
"\1\0\2\1\1\0\16\1\1\11\6\1\2\0\1\1"+
|
||||
"\2\0\6\1";
|
||||
"\3\0\1\11\1\1\6\11\4\1\1\11\44\1\11\11"+
|
||||
"\1\1\2\11\1\0\3\1\1\11\4\1\4\0\1\11"+
|
||||
"\1\1\1\0\1\11\10\1\1\11\27\1\3\11\1\1"+
|
||||
"\1\11\1\1\5\11\1\1\2\11\1\1\2\11\1\0"+
|
||||
"\2\1\1\11\1\0\5\1\1\0\12\1\1\11\17\1"+
|
||||
"\4\11\1\0\2\1\1\0\11\1\4\0\10\1\1\0"+
|
||||
"\2\1\1\0\6\1\1\0\2\1\1\0\16\1\1\11"+
|
||||
"\6\1\2\0\1\1\2\0\6\1";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[240];
|
||||
int [] result = new int[242];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -866,372 +867,376 @@ return yylength()-i-1;
|
||||
zzMarkedPos = zzMarkedPosL;
|
||||
|
||||
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
||||
case 82:
|
||||
case 83:
|
||||
{ return PyTokenTypes.YIELD_KEYWORD;
|
||||
}
|
||||
case 92: break;
|
||||
case 93: break;
|
||||
case 11:
|
||||
{ return PyTokenTypes.INTEGER_LITERAL;
|
||||
}
|
||||
case 93: break;
|
||||
case 94: break;
|
||||
case 19:
|
||||
{ return PyTokenTypes.DIV;
|
||||
}
|
||||
case 94: break;
|
||||
case 95: break;
|
||||
case 20:
|
||||
{ return PyTokenTypes.PERC;
|
||||
}
|
||||
case 95: break;
|
||||
case 96: break;
|
||||
case 3:
|
||||
{ return PyTokenTypes.BACKSLASH;
|
||||
}
|
||||
case 96: break;
|
||||
case 97: break;
|
||||
case 28:
|
||||
{ return PyTokenTypes.RPAR;
|
||||
}
|
||||
case 97: break;
|
||||
case 98: break;
|
||||
case 10:
|
||||
{ return PyTokenTypes.BAD_CHARACTER;
|
||||
}
|
||||
case 98: break;
|
||||
case 99: break;
|
||||
case 31:
|
||||
{ return PyTokenTypes.LBRACE;
|
||||
}
|
||||
case 99: break;
|
||||
case 63:
|
||||
case 100: break;
|
||||
case 64:
|
||||
{ yypushback(getSpaceLength(yytext())); return PyTokenTypes.DOCSTRING;
|
||||
}
|
||||
case 100: break;
|
||||
case 101: break;
|
||||
case 14:
|
||||
{ return PyTokenTypes.MINUS;
|
||||
}
|
||||
case 101: break;
|
||||
case 79:
|
||||
case 102: break;
|
||||
case 80:
|
||||
{ return PyTokenTypes.BREAK_KEYWORD;
|
||||
}
|
||||
case 102: break;
|
||||
case 103: break;
|
||||
case 30:
|
||||
{ return PyTokenTypes.RBRACKET;
|
||||
}
|
||||
case 103: break;
|
||||
case 104: break;
|
||||
case 1:
|
||||
{ yypushback(1); yybegin(PENDING_DOCSTRING);
|
||||
}
|
||||
case 104: break;
|
||||
case 105: break;
|
||||
case 8:
|
||||
{ yypushback(1); yybegin(USUAL);
|
||||
}
|
||||
case 105: break;
|
||||
case 106: break;
|
||||
case 13:
|
||||
{ return PyTokenTypes.DOT;
|
||||
}
|
||||
case 106: break;
|
||||
case 107: break;
|
||||
case 12:
|
||||
{ return PyTokenTypes.IDENTIFIER;
|
||||
}
|
||||
case 107: break;
|
||||
case 108: break;
|
||||
case 27:
|
||||
{ return PyTokenTypes.LPAR;
|
||||
}
|
||||
case 108: break;
|
||||
case 109: break;
|
||||
case 25:
|
||||
{ return PyTokenTypes.LT;
|
||||
}
|
||||
case 109: break;
|
||||
case 110: break;
|
||||
case 44:
|
||||
{ return PyTokenTypes.IN_KEYWORD;
|
||||
}
|
||||
case 110: break;
|
||||
case 80:
|
||||
case 111: break;
|
||||
case 81:
|
||||
{ return PyTokenTypes.RAISE_KEYWORD;
|
||||
}
|
||||
case 111: break;
|
||||
case 73:
|
||||
case 112: break;
|
||||
case 74:
|
||||
{ return PyTokenTypes.GTGTEQ;
|
||||
}
|
||||
case 112: break;
|
||||
case 113: break;
|
||||
case 5:
|
||||
{ return PyTokenTypes.SPACE;
|
||||
}
|
||||
case 113: break;
|
||||
case 85:
|
||||
case 114: break;
|
||||
case 86:
|
||||
{ return PyTokenTypes.EXCEPT_KEYWORD;
|
||||
}
|
||||
case 114: break;
|
||||
case 115: break;
|
||||
case 40:
|
||||
{ return PyTokenTypes.IMAGINARY_LITERAL;
|
||||
}
|
||||
case 115: break;
|
||||
case 116: break;
|
||||
case 15:
|
||||
{ return PyTokenTypes.SINGLE_QUOTED_STRING;
|
||||
}
|
||||
case 116: break;
|
||||
case 117: break;
|
||||
case 7:
|
||||
{ return PyTokenTypes.FORMFEED;
|
||||
}
|
||||
case 117: break;
|
||||
case 118: break;
|
||||
case 37:
|
||||
{ return PyTokenTypes.SEMICOLON;
|
||||
}
|
||||
case 118: break;
|
||||
case 119: break;
|
||||
case 24:
|
||||
{ return PyTokenTypes.GT;
|
||||
}
|
||||
case 119: break;
|
||||
case 120: break;
|
||||
case 29:
|
||||
{ return PyTokenTypes.LBRACKET;
|
||||
}
|
||||
case 120: break;
|
||||
case 74:
|
||||
case 121: break;
|
||||
case 35:
|
||||
{ return PyTokenTypes.COLON;
|
||||
}
|
||||
case 122: break;
|
||||
case 75:
|
||||
{ return PyTokenTypes.LTLTEQ;
|
||||
}
|
||||
case 121: break;
|
||||
case 123: break;
|
||||
case 9:
|
||||
{ if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING;
|
||||
else yybegin(USUAL); return PyTokenTypes.SINGLE_QUOTED_STRING;
|
||||
}
|
||||
case 122: break;
|
||||
case 76:
|
||||
case 124: break;
|
||||
case 77:
|
||||
{ return PyTokenTypes.ELSE_KEYWORD;
|
||||
}
|
||||
case 123: break;
|
||||
case 125: break;
|
||||
case 22:
|
||||
{ return PyTokenTypes.OR;
|
||||
}
|
||||
case 124: break;
|
||||
case 126: break;
|
||||
case 48:
|
||||
{ return PyTokenTypes.MULTEQ;
|
||||
}
|
||||
case 125: break;
|
||||
case 90:
|
||||
case 127: break;
|
||||
case 91:
|
||||
{ return PyTokenTypes.FINALLY_KEYWORD;
|
||||
}
|
||||
case 126: break;
|
||||
case 83:
|
||||
case 128: break;
|
||||
case 84:
|
||||
{ return PyTokenTypes.WHILE_KEYWORD;
|
||||
}
|
||||
case 127: break;
|
||||
case 129: break;
|
||||
case 18:
|
||||
{ return PyTokenTypes.MULT;
|
||||
}
|
||||
case 128: break;
|
||||
case 87:
|
||||
case 130: break;
|
||||
case 88:
|
||||
{ return PyTokenTypes.ASSERT_KEYWORD;
|
||||
}
|
||||
case 129: break;
|
||||
case 131: break;
|
||||
case 51:
|
||||
{ return PyTokenTypes.FLOORDIV;
|
||||
}
|
||||
case 130: break;
|
||||
case 89:
|
||||
case 132: break;
|
||||
case 90:
|
||||
{ return PyTokenTypes.GLOBAL_KEYWORD;
|
||||
}
|
||||
case 131: break;
|
||||
case 84:
|
||||
case 133: break;
|
||||
case 85:
|
||||
{ return PyTokenTypes.LAMBDA_KEYWORD;
|
||||
}
|
||||
case 132: break;
|
||||
case 134: break;
|
||||
case 55:
|
||||
{ return PyTokenTypes.XOREQ;
|
||||
}
|
||||
case 133: break;
|
||||
case 64:
|
||||
case 135: break;
|
||||
case 65:
|
||||
{ return PyTokenTypes.FOR_KEYWORD;
|
||||
}
|
||||
case 134: break;
|
||||
case 136: break;
|
||||
case 33:
|
||||
{ return PyTokenTypes.AT;
|
||||
}
|
||||
case 135: break;
|
||||
case 67:
|
||||
case 137: break;
|
||||
case 68:
|
||||
{ return PyTokenTypes.NOT_KEYWORD;
|
||||
}
|
||||
case 136: break;
|
||||
case 138: break;
|
||||
case 16:
|
||||
{ return PyTokenTypes.PLUS;
|
||||
}
|
||||
case 137: break;
|
||||
case 139: break;
|
||||
case 42:
|
||||
{ return PyTokenTypes.MINUSEQ;
|
||||
}
|
||||
case 138: break;
|
||||
case 140: break;
|
||||
case 38:
|
||||
{ yypushback(getSpaceLength(yytext())); yybegin(USUAL); return PyTokenTypes.DOCSTRING;
|
||||
}
|
||||
case 139: break;
|
||||
case 141: break;
|
||||
case 61:
|
||||
{ return PyTokenTypes.NE;
|
||||
}
|
||||
case 140: break;
|
||||
case 142: break;
|
||||
case 34:
|
||||
{ return PyTokenTypes.COMMA;
|
||||
}
|
||||
case 141: break;
|
||||
case 143: break;
|
||||
case 47:
|
||||
{ return PyTokenTypes.EQEQ;
|
||||
}
|
||||
case 142: break;
|
||||
case 144: break;
|
||||
case 36:
|
||||
{ return PyTokenTypes.TICK;
|
||||
}
|
||||
case 143: break;
|
||||
case 145: break;
|
||||
case 49:
|
||||
{ return PyTokenTypes.EXP;
|
||||
}
|
||||
case 144: break;
|
||||
case 65:
|
||||
case 146: break;
|
||||
case 66:
|
||||
{ return PyTokenTypes.TRIPLE_QUOTED_STRING;
|
||||
}
|
||||
case 145: break;
|
||||
case 91:
|
||||
case 147: break;
|
||||
case 92:
|
||||
{ return PyTokenTypes.CONTINUE_KEYWORD;
|
||||
}
|
||||
case 146: break;
|
||||
case 148: break;
|
||||
case 60:
|
||||
{ return PyTokenTypes.LTLT;
|
||||
}
|
||||
case 147: break;
|
||||
case 149: break;
|
||||
case 58:
|
||||
{ return PyTokenTypes.LE;
|
||||
}
|
||||
case 148: break;
|
||||
case 66:
|
||||
case 150: break;
|
||||
case 67:
|
||||
{ return PyTokenTypes.AND_KEYWORD;
|
||||
}
|
||||
case 149: break;
|
||||
case 151: break;
|
||||
case 41:
|
||||
{ return PyTokenTypes.OR_KEYWORD;
|
||||
}
|
||||
case 150: break;
|
||||
case 78:
|
||||
case 152: break;
|
||||
case 79:
|
||||
{ return PyTokenTypes.PASS_KEYWORD;
|
||||
}
|
||||
case 151: break;
|
||||
case 153: break;
|
||||
case 62:
|
||||
{ yypushback(yylength()-1); yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON;
|
||||
}
|
||||
case 154: break;
|
||||
case 2:
|
||||
{ return PyTokenTypes.END_OF_LINE_COMMENT;
|
||||
}
|
||||
case 152: break;
|
||||
case 62:
|
||||
case 155: break;
|
||||
case 63:
|
||||
{ if (zzInput == YYEOF) return PyTokenTypes.DOCSTRING;
|
||||
else yybegin(USUAL); return PyTokenTypes.TRIPLE_QUOTED_STRING;
|
||||
}
|
||||
case 153: break;
|
||||
case 156: break;
|
||||
case 54:
|
||||
{ return PyTokenTypes.OREQ;
|
||||
}
|
||||
case 154: break;
|
||||
case 157: break;
|
||||
case 57:
|
||||
{ return PyTokenTypes.GTGT;
|
||||
}
|
||||
case 155: break;
|
||||
case 158: break;
|
||||
case 21:
|
||||
{ return PyTokenTypes.AND;
|
||||
}
|
||||
case 156: break;
|
||||
case 159: break;
|
||||
case 50:
|
||||
{ return PyTokenTypes.DIVEQ;
|
||||
}
|
||||
case 157: break;
|
||||
case 35:
|
||||
{ yybegin(PENDING_DOCSTRING); return PyTokenTypes.COLON;
|
||||
}
|
||||
case 158: break;
|
||||
case 86:
|
||||
case 160: break;
|
||||
case 87:
|
||||
{ return PyTokenTypes.RETURN_KEYWORD;
|
||||
}
|
||||
case 159: break;
|
||||
case 88:
|
||||
case 161: break;
|
||||
case 89:
|
||||
{ return PyTokenTypes.IMPORT_KEYWORD;
|
||||
}
|
||||
case 160: break;
|
||||
case 162: break;
|
||||
case 56:
|
||||
{ return PyTokenTypes.GE;
|
||||
}
|
||||
case 161: break;
|
||||
case 163: break;
|
||||
case 46:
|
||||
{ return PyTokenTypes.PLUSEQ;
|
||||
}
|
||||
case 162: break;
|
||||
case 68:
|
||||
case 164: break;
|
||||
case 69:
|
||||
{ return PyTokenTypes.DEF_KEYWORD;
|
||||
}
|
||||
case 163: break;
|
||||
case 165: break;
|
||||
case 45:
|
||||
{ return PyTokenTypes.IS_KEYWORD;
|
||||
}
|
||||
case 164: break;
|
||||
case 72:
|
||||
case 166: break;
|
||||
case 73:
|
||||
{ return PyTokenTypes.FLOORDIVEQ;
|
||||
}
|
||||
case 165: break;
|
||||
case 167: break;
|
||||
case 39:
|
||||
{ return PyTokenTypes.FLOAT_LITERAL;
|
||||
}
|
||||
case 166: break;
|
||||
case 168: break;
|
||||
case 4:
|
||||
{ return PyTokenTypes.LINE_BREAK;
|
||||
}
|
||||
case 167: break;
|
||||
case 169: break;
|
||||
case 52:
|
||||
{ return PyTokenTypes.PERCEQ;
|
||||
}
|
||||
case 168: break;
|
||||
case 70:
|
||||
case 170: break;
|
||||
case 71:
|
||||
{ return PyTokenTypes.TRY_KEYWORD;
|
||||
}
|
||||
case 169: break;
|
||||
case 171: break;
|
||||
case 53:
|
||||
{ return PyTokenTypes.ANDEQ;
|
||||
}
|
||||
case 170: break;
|
||||
case 172: break;
|
||||
case 17:
|
||||
{ return PyTokenTypes.EQ;
|
||||
}
|
||||
case 171: break;
|
||||
case 75:
|
||||
case 173: break;
|
||||
case 76:
|
||||
{ return PyTokenTypes.FROM_KEYWORD;
|
||||
}
|
||||
case 172: break;
|
||||
case 71:
|
||||
case 174: break;
|
||||
case 72:
|
||||
{ return PyTokenTypes.EXPEQ;
|
||||
}
|
||||
case 173: break;
|
||||
case 77:
|
||||
case 175: break;
|
||||
case 78:
|
||||
{ return PyTokenTypes.ELIF_KEYWORD;
|
||||
}
|
||||
case 174: break;
|
||||
case 176: break;
|
||||
case 32:
|
||||
{ return PyTokenTypes.RBRACE;
|
||||
}
|
||||
case 175: break;
|
||||
case 81:
|
||||
case 177: break;
|
||||
case 82:
|
||||
{ return PyTokenTypes.CLASS_KEYWORD;
|
||||
}
|
||||
case 176: break;
|
||||
case 178: break;
|
||||
case 43:
|
||||
{ return PyTokenTypes.IF_KEYWORD;
|
||||
}
|
||||
case 177: break;
|
||||
case 179: break;
|
||||
case 6:
|
||||
{ return PyTokenTypes.TAB;
|
||||
}
|
||||
case 178: break;
|
||||
case 180: break;
|
||||
case 59:
|
||||
{ return PyTokenTypes.NE_OLD;
|
||||
}
|
||||
case 179: break;
|
||||
case 181: break;
|
||||
case 26:
|
||||
{ return PyTokenTypes.TILDE;
|
||||
}
|
||||
case 180: break;
|
||||
case 182: break;
|
||||
case 23:
|
||||
{ return PyTokenTypes.XOR;
|
||||
}
|
||||
case 181: break;
|
||||
case 69:
|
||||
case 183: break;
|
||||
case 70:
|
||||
{ return PyTokenTypes.DEL_KEYWORD;
|
||||
}
|
||||
case 182: break;
|
||||
case 184: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
|
||||
@@ -17,7 +17,7 @@ import javax.swing.*;
|
||||
* User : catherine
|
||||
*/
|
||||
public class PythonTestConfigurationType implements ConfigurationType {
|
||||
public static final String ID = "PythonTestConfigurationType";
|
||||
private String myId = "tests";
|
||||
|
||||
public final PythonDocTestConfigurationFactory PY_DOCTEST_FACTORY = new PythonDocTestConfigurationFactory(this);
|
||||
public final PythonUnitTestConfigurationFactory PY_UNITTEST_FACTORY = new PythonUnitTestConfigurationFactory(this);
|
||||
@@ -37,6 +37,13 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
super(configurationType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigurationType getType() {
|
||||
ConfigurationType type = super.getType();
|
||||
((PythonTestConfigurationType)type).setId("PythonUnitTestConfigurationType");
|
||||
return type;
|
||||
}
|
||||
|
||||
public RunConfiguration createTemplateConfiguration(Project project) {
|
||||
return new PythonUnitTestRunConfiguration(new RunConfigurationModule(project), this, "");
|
||||
}
|
||||
@@ -56,6 +63,13 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
return new PythonDocTestRunConfiguration(new RunConfigurationModule(project), this, "");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigurationType getType() {
|
||||
ConfigurationType type = super.getType();
|
||||
((PythonTestConfigurationType)type).setId("PythonDocTestRunConfigurationType");
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return PyBundle.message("runcfg.doctest.display_name");
|
||||
@@ -71,6 +85,13 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
return new PyTestRunConfiguration("", new RunConfigurationModule(project), this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigurationType getType() {
|
||||
ConfigurationType type = super.getType();
|
||||
((PythonTestConfigurationType)type).setId("py.test");
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return PyBundle.message("runcfg.pytest.display_name");
|
||||
@@ -86,6 +107,13 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
return new PythonNoseTestRunConfiguration(new RunConfigurationModule(project), this, "");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigurationType getType() {
|
||||
ConfigurationType type = super.getType();
|
||||
((PythonTestConfigurationType)type).setId("PythonNoseTestRunConfigurationType");
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return PyBundle.message("runcfg.nosetests.display_name");
|
||||
@@ -101,6 +129,13 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
return new PythonAtTestRunConfiguration(new RunConfigurationModule(project), this, "");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ConfigurationType getType() {
|
||||
ConfigurationType type = super.getType();
|
||||
((PythonTestConfigurationType)type).setId("attests");
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return PyBundle.message("runcfg.attest.display_name");
|
||||
@@ -125,7 +160,11 @@ public class PythonTestConfigurationType implements ConfigurationType {
|
||||
@NotNull
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
return myId;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
myId = id;
|
||||
}
|
||||
|
||||
public ConfigurationFactory[] getConfigurationFactories() {
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ public class PythonTestRunConfigurationsConverter extends ConversionProcessor<Ru
|
||||
final String confType = element.getAttributeValue("type");
|
||||
final String factoryName = ourTypeToFactoryNameMap.get(confType);
|
||||
if (factoryName != null) {
|
||||
element.setAttribute("type", PythonTestConfigurationType.ID);
|
||||
element.setAttribute("type", PythonTestConfigurationType.getInstance().getId());
|
||||
element.setAttribute("factoryName", factoryName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class GetCustomerPaymentProfileRequest(CustomerRequest):
|
||||
_keys = CustomerRequest._keys + ["customerPaymentProfileId"]
|
||||
<warning descr="Docstring seems to be misplaced">"""
|
||||
Gets a payment profile by user <caret>Account object and authorize.net
|
||||
profileid of the payment profile.
|
||||
"""</warning>
|
||||
def __init__(self, user, profileid):
|
||||
CustomerRequest.__init__(self, user,
|
||||
customerPaymentProfileId=profileid)
|
||||
@@ -0,0 +1,10 @@
|
||||
class GetCustomerPaymentProfileRequest(CustomerRequest):
|
||||
"""
|
||||
Gets a payment profile by user Account object and authorize.net
|
||||
profileid of the payment profile.
|
||||
"""
|
||||
_keys = CustomerRequest._keys + ["customerPaymentProfileId"]
|
||||
|
||||
def __init__(self, user, profileid):
|
||||
CustomerRequest.__init__(self, user,
|
||||
customerPaymentProfileId=profileid)
|
||||
@@ -287,6 +287,11 @@ public class PyQuickFixTest extends PyLightFixtureTestCase {
|
||||
PyBundle.message("QFIX.remove.decorator"), true, true);
|
||||
}
|
||||
|
||||
public void testMoveDocstring() { //PY-4398
|
||||
doInspectionTest("MoveDocstring.py", PyStatementEffectInspection.class,
|
||||
PyBundle.message("QFIX.statement.effect.move.docstring"), true, true);
|
||||
}
|
||||
|
||||
public void testSetFunctionToLiteral() { //PY-3120
|
||||
setLanguageLevel(LanguageLevel.PYTHON27);
|
||||
doInspectionTest("SetFunctionToLiteral.py", PySetFunctionToLiteralInspection.class,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.jetbrains.python;
|
||||
|
||||
import com.jetbrains.django.lang.template.DjangoTemplateParserTest;
|
||||
import com.jetbrains.jinja2.Jinja2ParserTest;
|
||||
import com.jetbrains.python.codeInsight.PyCompletionPatternsTest;
|
||||
import com.jetbrains.python.inspections.*;
|
||||
import com.jetbrains.python.refactoring.*;
|
||||
@@ -81,7 +83,9 @@ public class PythonAllTestsSuite {
|
||||
PyUnusedImportTest.class,
|
||||
PyDeprecationTest.class,
|
||||
PythonHighlightingLexerTest.class,
|
||||
PyOldStyleClassInspectionTest.class
|
||||
PyOldStyleClassInspectionTest.class,
|
||||
Jinja2ParserTest.class,
|
||||
DjangoTemplateParserTest.class
|
||||
};
|
||||
|
||||
public static TestSuite suite() {
|
||||
|
||||
@@ -145,6 +145,16 @@ public class PythonHighlightingLexerTest extends PyLexerTestCase {
|
||||
"Py:SINGLE_QUOTED_STRING");
|
||||
}
|
||||
|
||||
public void testNotDocstring() { // PY-4481
|
||||
doTest(LanguageLevel.PYTHON27, "d = {\n" +
|
||||
" 'abc': 'def',\n" +
|
||||
" 'ghi': 'jkl'\n" +
|
||||
" }",
|
||||
"Py:IDENTIFIER", "Py:SPACE", "Py:EQ", "Py:SPACE", "Py:LBRACE", "Py:LINE_BREAK", "Py:SPACE", "Py:SINGLE_QUOTED_STRING",
|
||||
"Py:COLON", "Py:SPACE", "Py:SINGLE_QUOTED_STRING", "Py:COMMA", "Py:LINE_BREAK", "Py:SPACE", "Py:SINGLE_QUOTED_STRING",
|
||||
"Py:COLON", "Py:SPACE", "Py:SINGLE_QUOTED_STRING", "Py:LINE_BREAK", "Py:SPACE", "Py:RBRACE");
|
||||
}
|
||||
|
||||
private static void doTest(LanguageLevel languageLevel, String text, String... expectedTokens) {
|
||||
doLexerTest(text, new PythonHighlightingLexer(languageLevel), expectedTokens);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user