class markdown::Scanner
sys::Obj markdown::Scanner
@Js
Scanner is a utility class for parsing lines
- find
-
Scan until we find the given
ch. Return the number of characters skipped, or -1 if we hit the end of the line. - findMatch
-
Consume characters until the given function returns true, or the end-of-line is reached. Return the number of characters skipped, or -1 if we reach the end.
- hasNext
-
Bool hasNext()Are there more characters to consume
- make
-
new make(SourceLine[] lines, Int lineIndex := 0, Int index := 0) - makeLine
-
new makeLine(SourceLine line) - makeSourceLines
-
new makeSourceLines(SourceLines sourceLines) - match
-
Consume characters while the given function returns
trueand return the number of characters consumed. - matchMultiple
-
Consume as many
chin a row as possible and return the number consumed. - next
-
Void next()Advance the scanner to the next character
- nextCh
-
Check if the specified char is next and advance the position.
ch: the char to check (including newline chars)Return true if matched and position was advanced; false otherwise
- nextStr
-
Check if we have the specified content on the line and advance the position. Note that if you want to match newline characters, use
nextCh.content: the text content to match on a single line (excluding newline)Return true if matched and position was advanced; false otherwise
- peek
-
Int peek()Peek at the next character without consuming it
- peekCodePoint
-
Int peekCodePoint()Peek at the next code point
- peekPrevCodePoint
-
Int peekPrevCodePoint()Peek at the previous codepoint
- pos
-
Position pos()Get the current position (current line, index into that line)
- setPos
-
Set the current position for the scanner
- source
-
SourceLines source(Position begin, Position end)For cases where the caller appends the result to a StrBuf, we could offer another method to avoid some unnecessary copying.
- whitespace
-
Int whitespace()Consume whitespace and return the number of whitespace characters consumed
Whitespace is defined as space, \t, \n, \u000B, \f, and \r