Package org.jline.reader.impl
Class DefaultParser
- java.lang.Object
-
- org.jline.reader.impl.DefaultParser
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
DefaultParser.ArgumentList
The result of a delimited buffer.static class
DefaultParser.BlockCommentDelims
static class
DefaultParser.Bracket
private class
DefaultParser.BracketChecker
-
Nested classes/interfaces inherited from interface org.jline.reader.Parser
Parser.ParseContext
-
-
Field Summary
Fields Modifier and Type Field Description private DefaultParser.BlockCommentDelims
blockCommentDelims
private char[]
closingBrackets
private int
commandGroup
private boolean
eofOnEscapedNewLine
private boolean
eofOnUnclosedQuote
private char[]
escapeChars
private java.lang.String[]
lineCommentDelims
private char[]
openingBrackets
private char[]
quoteChars
private java.lang.String
regexCommand
private java.lang.String
regexVariable
-
Fields inherited from interface org.jline.reader.Parser
REGEX_COMMAND, REGEX_VARIABLE
-
-
Constructor Summary
Constructors Constructor Description DefaultParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DefaultParser
blockCommentDelims(DefaultParser.BlockCommentDelims blockCommentDelims)
DefaultParser
commandGroup(int commandGroup)
DefaultParser
eofOnEscapedNewLine(boolean eofOnEscapedNewLine)
DefaultParser
eofOnUnclosedBracket(DefaultParser.Bracket... brackets)
DefaultParser
eofOnUnclosedQuote(boolean eofOnUnclosedQuote)
DefaultParser
escapeChars(char[] chars)
DefaultParser.BlockCommentDelims
getBlockCommentDelims()
java.lang.String
getCommand(java.lang.String line)
char[]
getEscapeChars()
java.lang.String[]
getLineCommentDelims()
char[]
getQuoteChars()
java.lang.String
getVariable(java.lang.String line)
private int
handleDelimiterAndGetRawWordLength(java.lang.StringBuilder current, java.util.List<java.lang.String> words, int rawWordStart, int rawWordCursor, int rawWordLength, int pos)
private boolean
isCommentDelim(java.lang.CharSequence buffer, int pos, java.lang.String pattern)
boolean
isDelimiter(java.lang.CharSequence buffer, int pos)
Returns true if the specified character is a whitespace parameter.boolean
isDelimiterChar(java.lang.CharSequence buffer, int pos)
Returns true if the character at the specified position if a delimiter.boolean
isEofOnEscapedNewLine()
boolean
isEofOnUnclosedQuote()
boolean
isEscapeChar(char ch)
boolean
isEscapeChar(java.lang.CharSequence buffer, int pos)
Check if this character is a valid escape char (i.e.boolean
isEscaped(java.lang.CharSequence buffer, int pos)
Check if a character is escaped (i.e.boolean
isLineCommentStarted(java.lang.CharSequence buffer, int pos)
boolean
isQuoteChar(java.lang.CharSequence buffer, int pos)
boolean
isQuoted(java.lang.CharSequence buffer, int pos)
private boolean
isRawEscapeChar(char key)
private boolean
isRawQuoteChar(char key)
DefaultParser
lineCommentDelims(java.lang.String[] lineCommentDelims)
ParsedLine
parse(java.lang.String line, int cursor, Parser.ParseContext context)
DefaultParser
quoteChars(char[] chars)
DefaultParser
regexCommand(java.lang.String regexCommand)
DefaultParser
regexVariable(java.lang.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(java.lang.String[] lineCommentDelims)
void
setQuoteChars(char[] chars)
void
setRegexCommand(java.lang.String regexCommand)
void
setRegexVariable(java.lang.String regexVariable)
boolean
validCommandName(java.lang.String name)
boolean
validVariableName(java.lang.String name)
-
-
-
Field Detail
-
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
private java.lang.String[] lineCommentDelims
-
blockCommentDelims
private DefaultParser.BlockCommentDelims blockCommentDelims
-
regexVariable
private java.lang.String regexVariable
-
regexCommand
private java.lang.String regexCommand
-
commandGroup
private int commandGroup
-
-
Method Detail
-
lineCommentDelims
public DefaultParser lineCommentDelims(java.lang.String[] lineCommentDelims)
-
blockCommentDelims
public DefaultParser blockCommentDelims(DefaultParser.BlockCommentDelims blockCommentDelims)
-
quoteChars
public DefaultParser quoteChars(char[] chars)
-
escapeChars
public DefaultParser escapeChars(char[] chars)
-
eofOnUnclosedQuote
public DefaultParser eofOnUnclosedQuote(boolean eofOnUnclosedQuote)
-
eofOnUnclosedBracket
public DefaultParser eofOnUnclosedBracket(DefaultParser.Bracket... brackets)
-
eofOnEscapedNewLine
public DefaultParser eofOnEscapedNewLine(boolean eofOnEscapedNewLine)
-
regexVariable
public DefaultParser regexVariable(java.lang.String regexVariable)
-
regexCommand
public DefaultParser regexCommand(java.lang.String regexCommand)
-
commandGroup
public DefaultParser commandGroup(int commandGroup)
-
setQuoteChars
public void setQuoteChars(char[] chars)
-
getQuoteChars
public char[] getQuoteChars()
-
setEscapeChars
public void setEscapeChars(char[] chars)
-
getEscapeChars
public char[] getEscapeChars()
-
setLineCommentDelims
public void setLineCommentDelims(java.lang.String[] lineCommentDelims)
-
getLineCommentDelims
public java.lang.String[] getLineCommentDelims()
-
setBlockCommentDelims
public void setBlockCommentDelims(DefaultParser.BlockCommentDelims blockCommentDelims)
-
getBlockCommentDelims
public DefaultParser.BlockCommentDelims getBlockCommentDelims()
-
setEofOnUnclosedQuote
public void setEofOnUnclosedQuote(boolean eofOnUnclosedQuote)
-
isEofOnUnclosedQuote
public boolean isEofOnUnclosedQuote()
-
setEofOnEscapedNewLine
public void setEofOnEscapedNewLine(boolean eofOnEscapedNewLine)
-
isEofOnEscapedNewLine
public boolean isEofOnEscapedNewLine()
-
setEofOnUnclosedBracket
public void setEofOnUnclosedBracket(DefaultParser.Bracket... brackets)
-
setRegexVariable
public void setRegexVariable(java.lang.String regexVariable)
-
setRegexCommand
public void setRegexCommand(java.lang.String regexCommand)
-
setCommandGroup
public void setCommandGroup(int commandGroup)
-
validCommandName
public boolean validCommandName(java.lang.String name)
- Specified by:
validCommandName
in interfaceParser
-
validVariableName
public boolean validVariableName(java.lang.String name)
- Specified by:
validVariableName
in interfaceParser
-
getCommand
public java.lang.String getCommand(java.lang.String line)
- Specified by:
getCommand
in interfaceParser
-
getVariable
public java.lang.String getVariable(java.lang.String line)
- Specified by:
getVariable
in interfaceParser
-
parse
public ParsedLine parse(java.lang.String line, int cursor, Parser.ParseContext context)
-
isDelimiter
public boolean isDelimiter(java.lang.CharSequence buffer, int pos)
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(java.lang.StringBuilder current, java.util.List<java.lang.String> words, int rawWordStart, int rawWordCursor, int rawWordLength, int pos)
-
isQuoted
public boolean isQuoted(java.lang.CharSequence buffer, int pos)
-
isQuoteChar
public boolean isQuoteChar(java.lang.CharSequence buffer, int pos)
-
isCommentDelim
private boolean isCommentDelim(java.lang.CharSequence buffer, int pos, java.lang.String pattern)
-
isLineCommentStarted
public boolean isLineCommentStarted(java.lang.CharSequence buffer, int pos)
-
isEscapeChar
public boolean isEscapeChar(char ch)
- Specified by:
isEscapeChar
in interfaceParser
-
isEscapeChar
public boolean isEscapeChar(java.lang.CharSequence buffer, int pos)
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
public boolean isEscaped(java.lang.CharSequence buffer, int pos)
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
public boolean isDelimiterChar(java.lang.CharSequence buffer, int pos)
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)
-
-