mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-23279, PY-9963: Support quotes in commandline interface:
* GeneralCommandLine does not support "as is" command line: it should be splitted to arguments (due to ProcessBuilder interface). So, we need to support quotes in command line to use to split arguments
This commit is contained in:
@@ -18,6 +18,12 @@ public interface CommandLineElementTypes {
|
||||
IElementType LITERAL_STARTS_FROM_SYMBOL = new IElementType("LITERAL_STARTS_FROM_SYMBOL", null);
|
||||
IElementType LONG_OPTION_NAME_TOKEN = new IElementType("LONG_OPTION_NAME_TOKEN", null);
|
||||
IElementType SHORT_OPTION_NAME_TOKEN = new IElementType("SHORT_OPTION_NAME_TOKEN", null);
|
||||
IElementType SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT = new IElementType("SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT", null);
|
||||
IElementType SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER = new IElementType("SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER", null);
|
||||
IElementType SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL = new IElementType("SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL", null);
|
||||
IElementType SPACED_LITERAL_STARTS_FROM_DIGIT = new IElementType("SPACED_LITERAL_STARTS_FROM_DIGIT", null);
|
||||
IElementType SPACED_LITERAL_STARTS_FROM_LETTER = new IElementType("SPACED_LITERAL_STARTS_FROM_LETTER", null);
|
||||
IElementType SPACED_LITERAL_STARTS_FROM_SYMBOL = new IElementType("SPACED_LITERAL_STARTS_FROM_SYMBOL", null);
|
||||
|
||||
class Factory {
|
||||
public static PsiElement createElement(ASTNode node) {
|
||||
|
||||
@@ -43,7 +43,9 @@ public class CommandLineParser implements PsiParser, LightPsiParser {
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// LITERAL_STARTS_FROM_LETTER | LITERAL_STARTS_FROM_DIGIT | LITERAL_STARTS_FROM_SYMBOL
|
||||
// LITERAL_STARTS_FROM_LETTER | LITERAL_STARTS_FROM_DIGIT | LITERAL_STARTS_FROM_SYMBOL |
|
||||
// SPACED_LITERAL_STARTS_FROM_LETTER | SPACED_LITERAL_STARTS_FROM_DIGIT | SPACED_LITERAL_STARTS_FROM_SYMBOL |
|
||||
// SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER | SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT | SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL
|
||||
public static boolean argument(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "argument")) return false;
|
||||
boolean r;
|
||||
@@ -51,6 +53,12 @@ public class CommandLineParser implements PsiParser, LightPsiParser {
|
||||
r = consumeToken(b, LITERAL_STARTS_FROM_LETTER);
|
||||
if (!r) r = consumeToken(b, LITERAL_STARTS_FROM_DIGIT);
|
||||
if (!r) r = consumeToken(b, LITERAL_STARTS_FROM_SYMBOL);
|
||||
if (!r) r = consumeToken(b, SPACED_LITERAL_STARTS_FROM_LETTER);
|
||||
if (!r) r = consumeToken(b, SPACED_LITERAL_STARTS_FROM_DIGIT);
|
||||
if (!r) r = consumeToken(b, SPACED_LITERAL_STARTS_FROM_SYMBOL);
|
||||
if (!r) r = consumeToken(b, SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER);
|
||||
if (!r) r = consumeToken(b, SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT);
|
||||
if (!r) r = consumeToken(b, SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */
|
||||
|
||||
package com.jetbrains.commandInterface.commandLine;
|
||||
import com.intellij.lexer.*;
|
||||
|
||||
import com.intellij.lexer.FlexLexer;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import static com.intellij.psi.TokenType.*;
|
||||
|
||||
import static com.intellij.psi.TokenType.BAD_CHARACTER;
|
||||
import static com.intellij.psi.TokenType.WHITE_SPACE;
|
||||
import static com.jetbrains.commandInterface.commandLine.CommandLineElementTypes.*;
|
||||
|
||||
|
||||
@@ -109,47 +112,47 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
|
||||
/* The ZZ_CMAP_A table has 3088 entries */
|
||||
static final char ZZ_CMAP_A[] = zzUnpackCMap(
|
||||
"\11\0\5\1\22\0\1\1\14\0\1\7\2\6\12\11\1\5\2\0\1\13\3\0\32\4\1\0\1\5\2\0\1"+
|
||||
"\3\13\4\3\0\1\12\6\0\1\1\12\0\1\1\11\0\1\2\12\0\1\2\4\0\1\2\5\0\27\2\1\0\12"+
|
||||
"\2\4\0\14\2\16\0\5\2\7\0\1\2\1\0\1\2\1\0\5\2\1\0\2\2\2\0\4\2\1\0\1\2\6\0\1"+
|
||||
"\2\1\0\3\2\1\0\1\2\1\0\4\2\1\0\23\2\1\0\13\2\10\0\6\2\1\0\26\2\2\0\1\2\6\0"+
|
||||
"\10\2\10\0\13\2\5\0\3\2\15\0\12\10\4\0\6\2\1\0\1\2\17\0\2\2\7\0\2\2\12\10"+
|
||||
"\3\2\2\0\2\2\1\0\16\2\15\0\11\2\13\0\1\2\16\0\12\10\6\2\4\0\2\2\4\0\1\2\5"+
|
||||
"\0\6\2\4\0\1\2\11\0\1\2\3\0\1\2\7\0\11\2\7\0\5\2\17\0\26\2\3\0\1\2\2\0\1\2"+
|
||||
"\7\0\12\2\4\0\12\10\1\2\4\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\1\2\3\0\4\2"+
|
||||
"\3\0\1\2\20\0\1\2\15\0\2\2\1\0\1\2\5\0\6\2\4\0\2\2\1\0\2\2\1\0\2\2\1\0\2\2"+
|
||||
"\17\0\4\2\1\0\1\2\7\0\12\10\2\0\3\2\20\0\11\2\1\0\2\2\1\0\2\2\1\0\5\2\3\0"+
|
||||
"\1\2\2\0\1\2\30\0\1\2\13\0\10\2\2\0\1\2\3\0\1\2\1\0\6\2\3\0\3\2\1\0\4\2\3"+
|
||||
"\0\2\2\1\0\1\2\1\0\2\2\3\0\2\2\3\0\3\2\3\0\14\2\13\0\10\2\1\0\2\2\10\0\3\2"+
|
||||
"\5\0\4\2\1\0\5\2\3\0\1\2\3\0\2\2\15\0\13\2\2\0\1\2\21\0\1\2\12\0\6\2\5\0\22"+
|
||||
"\2\3\0\10\2\1\0\11\2\1\0\1\2\2\0\7\2\11\0\1\2\1\0\2\2\14\0\12\10\7\0\2\2\1"+
|
||||
"\0\1\2\2\0\2\2\1\0\1\2\2\0\1\2\6\0\4\2\1\0\7\2\1\0\3\2\1\0\1\2\1\0\1\2\2\0"+
|
||||
"\2\2\1\0\4\2\1\0\2\2\11\0\1\2\2\0\5\2\1\0\1\2\11\0\12\10\2\0\14\2\1\0\24\2"+
|
||||
"\13\0\5\2\3\0\6\2\4\0\4\2\3\0\1\2\3\0\2\2\7\0\3\2\4\0\15\2\14\0\1\2\1\0\6"+
|
||||
"\2\1\0\1\2\5\0\1\2\2\0\13\2\1\0\15\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\1"+
|
||||
"\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\16\2\2\0\6\2\2\0\15\2\2\0\1\2\1\1\17"+
|
||||
"\2\1\0\10\2\7\0\15\2\1\0\6\2\23\0\1\2\4\0\1\2\3\0\11\2\1\0\1\2\5\0\17\2\1"+
|
||||
"\0\16\2\2\0\14\2\13\0\1\2\15\0\7\2\7\0\16\2\15\0\2\2\12\10\3\0\3\2\11\0\4"+
|
||||
"\2\1\0\4\2\3\0\2\2\11\0\10\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\6\2\1\0\7\2\1\0\1"+
|
||||
"\2\3\0\3\2\1\0\7\2\3\0\4\2\2\0\6\2\4\0\13\1\15\0\2\1\5\0\1\1\17\0\1\1\1\0"+
|
||||
"\1\2\15\0\1\2\2\0\1\2\4\0\1\2\2\0\12\2\1\0\1\2\3\0\5\2\6\0\1\2\1\0\1\2\1\0"+
|
||||
"\1\2\1\0\4\2\1\0\13\2\2\0\4\2\5\0\5\2\4\0\1\2\4\0\2\2\13\0\5\2\6\0\4\2\3\0"+
|
||||
"\2\2\14\0\10\2\7\0\10\2\1\0\7\2\1\0\1\1\4\0\2\2\12\0\5\2\5\0\2\2\3\0\7\2\6"+
|
||||
"\0\3\2\12\10\2\2\13\0\11\2\2\0\27\2\2\0\7\2\1\0\3\2\1\0\4\2\1\0\4\2\2\0\6"+
|
||||
"\2\3\0\1\2\1\0\1\2\2\0\5\2\1\0\12\2\12\10\5\2\1\0\3\2\1\0\10\2\4\0\7\2\3\0"+
|
||||
"\1\2\3\0\2\2\1\0\1\2\3\0\2\2\2\0\5\2\2\0\1\2\1\0\1\2\30\0\3\2\3\0\6\2\2\0"+
|
||||
"\6\2\2\0\6\2\11\0\7\2\4\0\5\2\3\0\5\2\5\0\1\2\1\0\10\2\1\0\5\2\1\0\1\2\1\0"+
|
||||
"\2\2\1\0\2\2\1\0\12\2\6\0\12\2\2\0\6\2\2\0\6\2\2\0\6\2\2\0\3\2\3\0\14\2\1"+
|
||||
"\0\16\2\1\0\2\2\1\0\2\2\1\0\10\2\6\0\4\2\4\0\16\2\2\0\1\2\1\0\14\2\1\0\2\2"+
|
||||
"\3\0\1\2\2\0\4\2\1\0\2\2\12\0\10\2\6\0\6\2\1\0\3\2\1\0\12\2\3\0\1\2\12\0\4"+
|
||||
"\2\13\0\12\10\1\2\1\0\1\2\3\0\7\2\1\0\1\2\1\0\4\2\1\0\17\2\1\0\2\2\14\0\3"+
|
||||
"\2\4\0\2\2\1\0\1\2\20\0\4\2\10\0\1\2\13\0\10\2\5\0\3\2\2\0\1\2\2\0\2\2\2\0"+
|
||||
"\4\2\1\0\14\2\1\0\1\2\1\0\7\2\1\0\21\2\1\0\4\2\2\0\10\2\1\0\7\2\1\0\14\2\1"+
|
||||
"\0\4\2\1\0\5\2\1\0\1\2\3\0\14\2\2\0\13\2\1\0\10\2\2\0\22\10\1\0\2\2\1\0\1"+
|
||||
"\2\2\0\1\2\1\0\12\2\1\0\4\2\1\0\1\2\1\0\1\2\6\0\1\2\4\0\1\2\1\0\1\2\1\0\1"+
|
||||
"\2\1\0\3\2\1\0\2\2\1\0\1\2\2\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0\2\2"+
|
||||
"\1\0\1\2\2\0\4\2\1\0\7\2\1\0\4\2\1\0\4\2\1\0\1\2\1\0\12\2\1\0\5\2\1\0\3\2"+
|
||||
"\1\0\5\2\1\0\5\2");
|
||||
"\11\0\5\2\22\0\1\2\1\0\1\14\4\0\1\15\5\0\1\10\2\7\12\12\1\6\2\0\1\16\3\0\32"+
|
||||
"\5\1\0\1\6\2\0\1\4\13\5\3\0\1\13\6\0\1\1\12\0\1\1\11\0\1\3\12\0\1\3\4\0\1"+
|
||||
"\3\5\0\27\3\1\0\12\3\4\0\14\3\16\0\5\3\7\0\1\3\1\0\1\3\1\0\5\3\1\0\2\3\2\0"+
|
||||
"\4\3\1\0\1\3\6\0\1\3\1\0\3\3\1\0\1\3\1\0\4\3\1\0\23\3\1\0\13\3\10\0\6\3\1"+
|
||||
"\0\26\3\2\0\1\3\6\0\10\3\10\0\13\3\5\0\3\3\15\0\12\11\4\0\6\3\1\0\1\3\17\0"+
|
||||
"\2\3\7\0\2\3\12\11\3\3\2\0\2\3\1\0\16\3\15\0\11\3\13\0\1\3\16\0\12\11\6\3"+
|
||||
"\4\0\2\3\4\0\1\3\5\0\6\3\4\0\1\3\11\0\1\3\3\0\1\3\7\0\11\3\7\0\5\3\17\0\26"+
|
||||
"\3\3\0\1\3\2\0\1\3\7\0\12\3\4\0\12\11\1\3\4\0\10\3\2\0\2\3\2\0\26\3\1\0\7"+
|
||||
"\3\1\0\1\3\3\0\4\3\3\0\1\3\20\0\1\3\15\0\2\3\1\0\1\3\5\0\6\3\4\0\2\3\1\0\2"+
|
||||
"\3\1\0\2\3\1\0\2\3\17\0\4\3\1\0\1\3\7\0\12\11\2\0\3\3\20\0\11\3\1\0\2\3\1"+
|
||||
"\0\2\3\1\0\5\3\3\0\1\3\2\0\1\3\30\0\1\3\13\0\10\3\2\0\1\3\3\0\1\3\1\0\6\3"+
|
||||
"\3\0\3\3\1\0\4\3\3\0\2\3\1\0\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\14\3\13\0\10"+
|
||||
"\3\1\0\2\3\10\0\3\3\5\0\4\3\1\0\5\3\3\0\1\3\3\0\2\3\15\0\13\3\2\0\1\3\21\0"+
|
||||
"\1\3\12\0\6\3\5\0\22\3\3\0\10\3\1\0\11\3\1\0\1\3\2\0\7\3\11\0\1\3\1\0\2\3"+
|
||||
"\14\0\12\11\7\0\2\3\1\0\1\3\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3\1\0\3"+
|
||||
"\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\4\3\1\0\2\3\11\0\1\3\2\0\5\3\1\0\1\3\11\0\12"+
|
||||
"\11\2\0\14\3\1\0\24\3\13\0\5\3\3\0\6\3\4\0\4\3\3\0\1\3\3\0\2\3\7\0\3\3\4\0"+
|
||||
"\15\3\14\0\1\3\1\0\6\3\1\0\1\3\5\0\1\3\2\0\13\3\1\0\15\3\1\0\4\3\2\0\7\3\1"+
|
||||
"\0\1\3\1\0\4\3\2\0\1\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0\4\3\2\0\16\3\2\0\6\3\2"+
|
||||
"\0\15\3\2\0\1\3\1\1\17\3\1\0\10\3\7\0\15\3\1\0\6\3\23\0\1\3\4\0\1\3\3\0\11"+
|
||||
"\3\1\0\1\3\5\0\17\3\1\0\16\3\2\0\14\3\13\0\1\3\15\0\7\3\7\0\16\3\15\0\2\3"+
|
||||
"\12\11\3\0\3\3\11\0\4\3\1\0\4\3\3\0\2\3\11\0\10\3\1\0\1\3\1\0\1\3\1\0\1\3"+
|
||||
"\1\0\6\3\1\0\7\3\1\0\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0\13\1\15\0\2\1"+
|
||||
"\5\0\1\1\17\0\1\1\1\0\1\3\15\0\1\3\2\0\1\3\4\0\1\3\2\0\12\3\1\0\1\3\3\0\5"+
|
||||
"\3\6\0\1\3\1\0\1\3\1\0\1\3\1\0\4\3\1\0\13\3\2\0\4\3\5\0\5\3\4\0\1\3\4\0\2"+
|
||||
"\3\13\0\5\3\6\0\4\3\3\0\2\3\14\0\10\3\7\0\10\3\1\0\7\3\1\0\1\1\4\0\2\3\12"+
|
||||
"\0\5\3\5\0\2\3\3\0\7\3\6\0\3\3\12\11\2\3\13\0\11\3\2\0\27\3\2\0\7\3\1\0\3"+
|
||||
"\3\1\0\4\3\1\0\4\3\2\0\6\3\3\0\1\3\1\0\1\3\2\0\5\3\1\0\12\3\12\11\5\3\1\0"+
|
||||
"\3\3\1\0\10\3\4\0\7\3\3\0\1\3\3\0\2\3\1\0\1\3\3\0\2\3\2\0\5\3\2\0\1\3\1\0"+
|
||||
"\1\3\30\0\3\3\3\0\6\3\2\0\6\3\2\0\6\3\11\0\7\3\4\0\5\3\3\0\5\3\5\0\1\3\1\0"+
|
||||
"\10\3\1\0\5\3\1\0\1\3\1\0\2\3\1\0\2\3\1\0\12\3\6\0\12\3\2\0\6\3\2\0\6\3\2"+
|
||||
"\0\6\3\2\0\3\3\3\0\14\3\1\0\16\3\1\0\2\3\1\0\2\3\1\0\10\3\6\0\4\3\4\0\16\3"+
|
||||
"\2\0\1\3\1\0\14\3\1\0\2\3\3\0\1\3\2\0\4\3\1\0\2\3\12\0\10\3\6\0\6\3\1\0\3"+
|
||||
"\3\1\0\12\3\3\0\1\3\12\0\4\3\13\0\12\11\1\3\1\0\1\3\3\0\7\3\1\0\1\3\1\0\4"+
|
||||
"\3\1\0\17\3\1\0\2\3\14\0\3\3\4\0\2\3\1\0\1\3\20\0\4\3\10\0\1\3\13\0\10\3\5"+
|
||||
"\0\3\3\2\0\1\3\2\0\2\3\2\0\4\3\1\0\14\3\1\0\1\3\1\0\7\3\1\0\21\3\1\0\4\3\2"+
|
||||
"\0\10\3\1\0\7\3\1\0\14\3\1\0\4\3\1\0\5\3\1\0\1\3\3\0\14\3\2\0\13\3\1\0\10"+
|
||||
"\3\2\0\22\11\1\0\2\3\1\0\1\3\2\0\1\3\1\0\12\3\1\0\4\3\1\0\1\3\1\0\1\3\6\0"+
|
||||
"\1\3\4\0\1\3\1\0\1\3\1\0\1\3\1\0\3\3\1\0\2\3\1\0\1\3\2\0\1\3\1\0\1\3\1\0\1"+
|
||||
"\3\1\0\1\3\1\0\1\3\1\0\2\3\1\0\1\3\2\0\4\3\1\0\7\3\1\0\4\3\1\0\4\3\1\0\1\3"+
|
||||
"\1\0\12\3\1\0\5\3\1\0\3\3\1\0\5\3\1\0\5\3");
|
||||
|
||||
/**
|
||||
* Translates DFA states to action switch labels.
|
||||
@@ -157,11 +160,12 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\1\1\5\1\6"+
|
||||
"\1\7\1\0\1\10";
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\1\1\5\2\1"+
|
||||
"\1\6\1\7\7\0\1\10\1\11\1\12\1\13\1\14"+
|
||||
"\1\15\1\16";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[11];
|
||||
int [] result = new int[25];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -186,11 +190,13 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\14\0\30\0\44\0\60\0\74\0\110\0\14"+
|
||||
"\0\14\0\124\0\140";
|
||||
"\0\0\0\17\0\36\0\55\0\74\0\113\0\132\0\151"+
|
||||
"\0\170\0\17\0\17\0\207\0\226\0\245\0\264\0\303"+
|
||||
"\0\322\0\341\0\360\0\17\0\17\0\17\0\17\0\17"+
|
||||
"\0\17";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[11];
|
||||
int [] result = new int[25];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -213,15 +219,23 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\1\2\1\3\1\4\1\2\1\4\1\2\1\5\1\6"+
|
||||
"\2\7\1\5\1\10\15\0\1\3\15\0\5\4\1\0"+
|
||||
"\1\4\5\0\5\5\1\0\1\5\4\0\1\11\1\0"+
|
||||
"\1\11\2\0\1\12\7\0\5\7\1\0\1\7\4\0"+
|
||||
"\1\13\1\0\1\13\12\0\2\13\2\0\1\13\1\0"+
|
||||
"\1\13\2\0";
|
||||
"\1\2\2\3\1\4\1\2\1\4\1\2\1\5\1\6"+
|
||||
"\2\7\1\5\1\10\1\11\1\12\20\0\2\3\20\0"+
|
||||
"\5\4\1\0\1\4\10\0\5\5\1\0\1\5\7\0"+
|
||||
"\1\13\1\0\1\13\2\0\1\14\12\0\5\7\1\0"+
|
||||
"\1\7\7\0\1\15\1\0\1\15\1\0\1\16\1\0"+
|
||||
"\2\17\1\16\6\0\1\20\1\0\1\20\1\0\1\21"+
|
||||
"\1\0\2\22\1\21\6\0\1\23\1\0\1\23\13\0"+
|
||||
"\1\15\1\0\5\15\1\0\1\15\1\0\1\24\4\0"+
|
||||
"\1\16\1\0\5\16\1\0\1\16\1\0\1\25\4\0"+
|
||||
"\1\17\1\0\5\17\1\0\1\17\1\0\1\26\4\0"+
|
||||
"\1\20\1\0\5\20\1\0\1\20\2\0\1\27\3\0"+
|
||||
"\1\21\1\0\5\21\1\0\1\21\2\0\1\30\3\0"+
|
||||
"\1\22\1\0\5\22\1\0\1\22\2\0\1\31\5\0"+
|
||||
"\2\23\2\0\1\23\1\0\1\23\4\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[108];
|
||||
int [] result = new int[255];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -259,10 +273,10 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\1\0\1\11\5\1\2\11\1\0\1\1";
|
||||
"\1\0\1\11\7\1\2\11\7\0\1\1\6\11";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[11];
|
||||
int [] result = new int[25];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -570,35 +584,59 @@ public class _CommandLineLexer implements FlexLexer {
|
||||
case 1:
|
||||
{ return BAD_CHARACTER;
|
||||
}
|
||||
case 9: break;
|
||||
case 15: break;
|
||||
case 2:
|
||||
{ return WHITE_SPACE;
|
||||
}
|
||||
case 10: break;
|
||||
case 16: break;
|
||||
case 3:
|
||||
{ return LITERAL_STARTS_FROM_LETTER;
|
||||
}
|
||||
case 11: break;
|
||||
case 17: break;
|
||||
case 4:
|
||||
{ return LITERAL_STARTS_FROM_SYMBOL;
|
||||
}
|
||||
case 12: break;
|
||||
case 18: break;
|
||||
case 5:
|
||||
{ return LITERAL_STARTS_FROM_DIGIT;
|
||||
}
|
||||
case 13: break;
|
||||
case 19: break;
|
||||
case 6:
|
||||
{ return EQ;
|
||||
}
|
||||
case 14: break;
|
||||
case 20: break;
|
||||
case 7:
|
||||
{ return SHORT_OPTION_NAME_TOKEN;
|
||||
}
|
||||
case 15: break;
|
||||
case 21: break;
|
||||
case 8:
|
||||
{ return LONG_OPTION_NAME_TOKEN;
|
||||
}
|
||||
case 16: break;
|
||||
case 22: break;
|
||||
case 9:
|
||||
{ return SPACED_LITERAL_STARTS_FROM_LETTER;
|
||||
}
|
||||
case 23: break;
|
||||
case 10:
|
||||
{ return SPACED_LITERAL_STARTS_FROM_SYMBOL;
|
||||
}
|
||||
case 24: break;
|
||||
case 11:
|
||||
{ return SPACED_LITERAL_STARTS_FROM_DIGIT;
|
||||
}
|
||||
case 25: break;
|
||||
case 12:
|
||||
{ return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER;
|
||||
}
|
||||
case 26: break;
|
||||
case 13:
|
||||
{ return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL;
|
||||
}
|
||||
case 27: break;
|
||||
case 14:
|
||||
{ return SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT;
|
||||
}
|
||||
case 28: break;
|
||||
default:
|
||||
zzScanError(ZZ_NO_MATCH);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,24 @@ public interface CommandLineArgument extends CommandLinePart {
|
||||
@Nullable
|
||||
PsiElement getLiteralStartsFromSymbol();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSingleQSpacedLiteralStartsFromDigit();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSingleQSpacedLiteralStartsFromLetter();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSingleQSpacedLiteralStartsFromSymbol();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSpacedLiteralStartsFromDigit();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSpacedLiteralStartsFromLetter();
|
||||
|
||||
@Nullable
|
||||
PsiElement getSpacedLiteralStartsFromSymbol();
|
||||
|
||||
@Nullable
|
||||
Option findOptionForOptionArgument();
|
||||
|
||||
@@ -29,4 +47,7 @@ public interface CommandLineArgument extends CommandLinePart {
|
||||
@Nullable
|
||||
Help findBestHelp();
|
||||
|
||||
@NotNull
|
||||
String getValueNoQuotes();
|
||||
|
||||
}
|
||||
|
||||
@@ -24,4 +24,7 @@ public interface CommandLineOption extends CommandLinePart {
|
||||
@Nullable
|
||||
Option findRealOption();
|
||||
|
||||
@Nullable
|
||||
CommandLineArgument findArgument();
|
||||
|
||||
}
|
||||
|
||||
+41
@@ -47,6 +47,42 @@ public class CommandLineArgumentImpl extends CommandLineElement implements Comma
|
||||
return findChildByType(LITERAL_STARTS_FROM_SYMBOL);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSingleQSpacedLiteralStartsFromDigit() {
|
||||
return findChildByType(SINGLE_Q_SPACED_LITERAL_STARTS_FROM_DIGIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSingleQSpacedLiteralStartsFromLetter() {
|
||||
return findChildByType(SINGLE_Q_SPACED_LITERAL_STARTS_FROM_LETTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSingleQSpacedLiteralStartsFromSymbol() {
|
||||
return findChildByType(SINGLE_Q_SPACED_LITERAL_STARTS_FROM_SYMBOL);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSpacedLiteralStartsFromDigit() {
|
||||
return findChildByType(SPACED_LITERAL_STARTS_FROM_DIGIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSpacedLiteralStartsFromLetter() {
|
||||
return findChildByType(SPACED_LITERAL_STARTS_FROM_LETTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getSpacedLiteralStartsFromSymbol() {
|
||||
return findChildByType(SPACED_LITERAL_STARTS_FROM_SYMBOL);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Option findOptionForOptionArgument() {
|
||||
return CommandLinePsiImplUtils.findOptionForOptionArgument(this);
|
||||
@@ -62,4 +98,9 @@ public class CommandLineArgumentImpl extends CommandLineElement implements Comma
|
||||
return CommandLinePsiImplUtils.findBestHelp(this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getValueNoQuotes() {
|
||||
return CommandLinePsiImplUtils.getValueNoQuotes(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
@@ -54,4 +54,9 @@ public class CommandLineOptionImpl extends CommandLineElement implements Command
|
||||
return CommandLinePsiImplUtils.findRealOption(this);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public CommandLineArgument findArgument() {
|
||||
return CommandLinePsiImplUtils.findArgument(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user