Skip to content

v2.scanner

fn new_scanner #

fn new_scanner(prefs &pref.Preferences, mode Mode) &Scanner

fn Mode.from #

fn Mode.from[W](input W) !Mode

fn Mode.zero #

fn Mode.zero() Mode

enum Mode #

@[flag]
enum Mode {
	normal
	scan_comments
	skip_interpolation
}

fn (Mode) all #

fn (e &Mode) all(flag_ Mode) bool

fn (Mode) clear #

fn (mut e Mode) clear(flag_ Mode)

fn (Mode) clear_all #

fn (mut e Mode) clear_all()

fn (Mode) has #

fn (e &Mode) has(flag_ Mode) bool

fn (Mode) is_empty #

fn (e &Mode) is_empty() bool

fn (Mode) set #

fn (mut e Mode) set(flag_ Mode)

fn (Mode) set_all #

fn (mut e Mode) set_all()

fn (Mode) toggle #

fn (mut e Mode) toggle(flag_ Mode)

struct Scanner #

struct Scanner {
	pref               &pref.Preferences
	mode               Mode
	skip_interpolation bool
mut:
	file        &token.File = &token.File{}
	insert_semi bool
pub mut:
	src    string
	offset int // current char offset
	pos    int // token offset (start of current token)
	lit    string
	// strings literals & interpolation
	in_str_incomplete   bool
	in_str_inter        bool
	str_inter_cbr_depth int
	str_quote           u8
}

fn (Scanner) init #

fn (mut s Scanner) init(file &token.File, src string)

fn (Scanner) current_file #

fn (s &Scanner) current_file() &token.File

current_file returns the scanner's current source file handle.

fn (Scanner) scan #

fn (mut s Scanner) scan() token.Token