class markdown::Scanner

sys::Obj
  markdown::Scanner

@Js

Source

Scanner is a utility class for parsing lines

find

Int find(Int ch)

Source

Scan until we find the given ch. Return the number of characters skipped, or -1 if we hit the end of the line.

findMatch

Int findMatch(|Int->Bool| f)

Source

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()

Source

Are there more characters to consume

make

new make(SourceLine[] lines, Int lineIndex := 0, Int index := 0)

Source

makeLine

new makeLine(SourceLine line)

Source

makeSourceLines

new makeSourceLines(SourceLines sourceLines)

Source

match

Int match(|Int->Bool| f)

Source

Consume characters while the given function returns true and return the number of characters consumed.

matchMultiple

Int matchMultiple(Int ch)

Source

Consume as many ch in a row as possible and return the number consumed.

next

Void next()

Source

Advance the scanner to the next character

nextCh

Bool nextCh(Int ch)

Source

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

Bool nextStr(Str content)

Source

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()

Source

Peek at the next character without consuming it

peekCodePoint

Int peekCodePoint()

Source

Peek at the next code point

peekPrevCodePoint

Int peekPrevCodePoint()

Source

Peek at the previous codepoint

pos

Position pos()

Source

Get the current position (current line, index into that line)

setPos

Void setPos(Position pos)

Source

Set the current position for the scanner

source

SourceLines source(Position begin, Position end)

Source

For cases where the caller appends the result to a StrBuf, we could offer another method to avoid some unnecessary copying.

whitespace

Int whitespace()

Source

Consume whitespace and return the number of whitespace characters consumed

Whitespace is defined as space, \t, \n, \u000B, \f, and \r