api
SourceProvider.ch
Declarations in SourceProvider.ch
4 declarationscompiler
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
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