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