Package org.jline.reader.impl
Class DefaultParser
java.lang.Object
org.jline.reader.impl.DefaultParser
- All Implemented Interfaces:
Parser
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
The result of a delimited buffer.static class
static enum
private class
Nested classes/interfaces inherited from interface org.jline.reader.Parser
Parser.ParseContext
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate DefaultParser.BlockCommentDelims
private char[]
private int
private boolean
private boolean
private char[]
private String[]
private char[]
private char[]
private String
private String
Fields inherited from interface org.jline.reader.Parser
REGEX_COMMAND, REGEX_VARIABLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionblockCommentDelims
(DefaultParser.BlockCommentDelims blockCommentDelims) commandGroup
(int commandGroup) eofOnEscapedNewLine
(boolean eofOnEscapedNewLine) eofOnUnclosedBracket
(DefaultParser.Bracket... brackets) eofOnUnclosedQuote
(boolean eofOnUnclosedQuote) escapeChars
(char[] chars) getCommand
(String line) char[]
String[]
char[]
getVariable
(String line) private int
handleDelimiterAndGetRawWordLength
(StringBuilder current, List<String> words, int rawWordStart, int rawWordCursor, int rawWordLength, int pos) private boolean
isCommentDelim
(CharSequence buffer, int pos, String pattern) boolean
isDelimiter
(CharSequence buffer, int pos) Returns true if the specified character is a whitespace parameter.boolean
isDelimiterChar
(CharSequence buffer, int pos) Returns true if the character at the specified position if a delimiter.boolean
boolean
boolean
isEscapeChar
(char ch) boolean
isEscapeChar
(CharSequence buffer, int pos) Check if this character is a valid escape char (i.e.boolean
isEscaped
(CharSequence buffer, int pos) Check if a character is escaped (i.e.boolean
isLineCommentStarted
(CharSequence buffer, int pos) boolean
isQuoteChar
(CharSequence buffer, int pos) boolean
isQuoted
(CharSequence buffer, int pos) private boolean
isRawEscapeChar
(char key) private boolean
isRawQuoteChar
(char key) lineCommentDelims
(String[] lineCommentDelims) parse
(String line, int cursor, Parser.ParseContext context) quoteChars
(char[] chars) regexCommand
(String regexCommand) regexVariable
(String regexVariable) void
setBlockCommentDelims
(DefaultParser.BlockCommentDelims blockCommentDelims) void
setCommandGroup
(int commandGroup) void
setEofOnEscapedNewLine
(boolean eofOnEscapedNewLine) void
setEofOnUnclosedBracket
(DefaultParser.Bracket... brackets) void
setEofOnUnclosedQuote
(boolean eofOnUnclosedQuote) void
setEscapeChars
(char[] chars) void
setLineCommentDelims
(String[] lineCommentDelims) void
setQuoteChars
(char[] chars) void
setRegexCommand
(String regexCommand) void
setRegexVariable
(String regexVariable) boolean
validCommandName
(String name) boolean
validVariableName
(String name)
-
Field Details
-
quoteChars
private char[] quoteChars -
escapeChars
private char[] escapeChars -
eofOnUnclosedQuote
private boolean eofOnUnclosedQuote -
eofOnEscapedNewLine
private boolean eofOnEscapedNewLine -
openingBrackets
private char[] openingBrackets -
closingBrackets
private char[] closingBrackets -
lineCommentDelims
-
blockCommentDelims
-
regexVariable
-
regexCommand
-
commandGroup
private int commandGroup
-
-
Constructor Details
-
DefaultParser
public DefaultParser()
-
-
Method Details
-
lineCommentDelims
-
blockCommentDelims
-
quoteChars
-
escapeChars
-
eofOnUnclosedQuote
-
eofOnUnclosedBracket
-
eofOnEscapedNewLine
-
regexVariable
-
regexCommand
-
commandGroup
-
setQuoteChars
public void setQuoteChars(char[] chars) -
getQuoteChars
public char[] getQuoteChars() -
setEscapeChars
public void setEscapeChars(char[] chars) -
getEscapeChars
public char[] getEscapeChars() -
setLineCommentDelims
-
getLineCommentDelims
-
setBlockCommentDelims
-
getBlockCommentDelims
-
setEofOnUnclosedQuote
public void setEofOnUnclosedQuote(boolean eofOnUnclosedQuote) -
isEofOnUnclosedQuote
public boolean isEofOnUnclosedQuote() -
setEofOnEscapedNewLine
public void setEofOnEscapedNewLine(boolean eofOnEscapedNewLine) -
isEofOnEscapedNewLine
public boolean isEofOnEscapedNewLine() -
setEofOnUnclosedBracket
-
setRegexVariable
-
setRegexCommand
-
setCommandGroup
public void setCommandGroup(int commandGroup) -
validCommandName
- Specified by:
validCommandName
in interfaceParser
-
validVariableName
- Specified by:
validVariableName
in interfaceParser
-
getCommand
- Specified by:
getCommand
in interfaceParser
-
getVariable
- Specified by:
getVariable
in interfaceParser
-
parse
-
isDelimiter
Returns true if the specified character is a whitespace parameter. Check to ensure that the character is not escaped by any ofgetQuoteChars()
, and is not escaped by any of thegetEscapeChars()
, and returns true fromisDelimiterChar(java.lang.CharSequence, int)
.- Parameters:
buffer
- The complete command bufferpos
- The index of the character in the buffer- Returns:
- True if the character should be a delimiter
-
handleDelimiterAndGetRawWordLength
private int handleDelimiterAndGetRawWordLength(StringBuilder current, List<String> words, int rawWordStart, int rawWordCursor, int rawWordLength, int pos) -
isQuoted
-
isQuoteChar
-
isCommentDelim
-
isLineCommentStarted
-
isEscapeChar
public boolean isEscapeChar(char ch) - Specified by:
isEscapeChar
in interfaceParser
-
isEscapeChar
Check if this character is a valid escape char (i.e. one that has not been escaped)- Parameters:
buffer
- the buffer to check inpos
- the position of the character to check- Returns:
- true if the character at the specified position in the given buffer is an escape character and the character immediately preceding it is not an escape character.
-
isEscaped
Check if a character is escaped (i.e. if the previous character is an escape)- Parameters:
buffer
- the buffer to check inpos
- the position of the character to check- Returns:
- true if the character at the specified position in the given buffer is an escape character and the character immediately preceding it is an escape character.
-
isDelimiterChar
Returns true if the character at the specified position if a delimiter. This method will only be called if the character is not enclosed in any of thegetQuoteChars()
, and is not escaped by any of thegetEscapeChars()
. To perform escaping manually, overrideisDelimiter(java.lang.CharSequence, int)
instead.- Parameters:
buffer
- the buffer to check inpos
- the position of the character to check- Returns:
- true if the character at the specified position in the given buffer is a delimiter.
-
isRawEscapeChar
private boolean isRawEscapeChar(char key) -
isRawQuoteChar
private boolean isRawQuoteChar(char key)
-