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
eof#
Publicfunction
func eof(self : &SourceProvider) : bool
* checks the stream is at the end
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