GraphMine

graphmine-util / io.github.sof3.graphmine.util.string / FormattedStringReader / nextQuoted

nextQuoted

fun nextQuoted(open: Char = '"', close: Char = open, delimiter: Char = ' ', openEscape: Char? = '\\', closeEscape: Char? = openEscape, delimiterEscape: Char? = null, dumb: Boolean = false): QuotedResult?

Similar to nextDelimiter(delimiter), but if open is found in the token, the reader will read until the next close regardless of delimiter, and continue reading with the same rule until a delimiter beyond a pair of open/close is found or the string comes to the end.

If there is an odd number of opens, the last open is parsed normally.

Recursive open/close is not supported, i.e. for open = '{', close = '}', a{b{c}d}e is parsed as ab{cd}e.

Parameters

open - the character

close - the character to be paired

delimiter - the character to terminate the token

openEscape - the character used in front of open to prevent it from starting a pair. Pass null to disable escaping. Two consecutive openEscape characters are merged (i.e. \\ will become \)

closeEscape - the character used in front of close to prevent it from closing a pair. Pass null to disable escaping. Two consecutive closeEscape characters are merged.

delimiterEscape - the character used in front of delimiter to prevent it from ending the token. Pass null to disable escaping. Two consecutive delimiterEscape characters are merged.

dumb - in dumb mode, all escapes are ignored, and open is only effective at offset 0

Return Returns null if end of string was already reached before calling this method.