SourceProvider.ch

Declarations

Public Only
SourceProvider
Publicstruct
struct SourceProvider { var data_ptr : *char var data_len : size_t var data_end : *char var lineNumber : uint var lineCharacterNumber : uint }
provides access to the source code provided by the user
increment
Publicfunction
func increment(self : &SourceProvider) : void
* increment a single character forward
readCharacter
Publicfunction
func readCharacter(self : &SourceProvider) : char
* reads a single character and returns it * everytime a character is read, it must check if its the line ending character to track lineNumbers
readCodePoint
Publicfunction
func readCodePoint(provider : *SourceProvider) : u32
* read a utf8 code point
utf8_decode_peek
Publicfunction
func utf8_decode_peek(provider : *SourceProvider, out_len : &size_t) : u32
* peek a utf8 code point, get the length
incrementCodepoint
Publicfunction
func incrementCodepoint(provider : *SourceProvider, cp : u32, len : size_t) : void
* increment a utf8 code point (that you peeked), giving its length
eof
Publicfunction
func eof(self : &SourceProvider) : bool
* checks the stream is at the end * please also use both peek() == -1
peek
Publicfunction
func peek(self : &SourceProvider) : char
* peaks the character to read
increment_char
Publicfunction
func increment_char(self : &SourceProvider, c : char) : bool
* if char c is present at current pos, increments the stream with character * @param c character to look for * @return true if incremented by character length = 1, otherwise false
getLineNumber
Publicfunction
func getLineNumber(self : &SourceProvider) : uint
* get zero-based current line number
getLineCharNumber
Publicfunction
func getLineCharNumber(self : &SourceProvider) : uint
* get zero-based character number
readWhitespaces
Publicfunction
func readWhitespaces(self : &SourceProvider) : uint
* reads whitespaces, returns how many whitespaces were read
hasNewLine
Publicfunction
func hasNewLine(self : &SourceProvider) : bool
* @return whether there's a newline at current position
readNewLineChars
Publicfunction
func readNewLineChars(self : &SourceProvider) : bool
* @return whether new line characters were read
readWhitespacesAndNewLines
Publicfunction
func readWhitespacesAndNewLines(self : &SourceProvider) : void
* reads all whitespaces along with new lines
current_data
PublicfunctionExtension
func current_data(provider : &SourceProvider) : *char
peek2
PublicfunctionExtension
func peek2(provider : &SourceProvider) : char
returns zero if stream ends before that
getPosition
PublicfunctionExtension
func getPosition(provider : &SourceProvider) : Position