v3.scanner
fn new_scanner #
fn new_scanner(prefs &pref.Preferences, mode Mode) Scanner
new_scanner supports new scanner handling for 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
}
Mode lists mode values used by scanner.
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 Diagnostic #
struct Diagnostic {
pub:
offset int
end int
message string
}
Diagnostic describes a lexical error at a byte offset in the current source.
struct Scanner #
struct Scanner {
pref &pref.Preferences
mode Mode
skip_interpolation bool
mut:
file &token.File = unsafe { nil }
insert_semi bool
after_dot bool
pub mut:
src string
offset int
pos int
lit string
in_str_incomplete bool
in_str_inter bool
in_str_inter_format bool
str_inter_cbr_depth int
str_quote u8
str_parent_quotes []u8
str_parent_depths []int
diagnostics []Diagnostic
}
Scanner represents scanner data used by scanner.
fn (Scanner) skip_block_to #
fn (mut s Scanner) skip_block_to(offset int)
skip_block_to resumes scanning at offset, right after the } that closes a top-level block whose contents the caller does not need to lex (the FastC declaration passes record function bodies once and skip them in the later passes); the scanner state is what scanning that } leaves.
fn (Scanner) init #
fn (mut s Scanner) init(file &token.File, src string)
init supports init handling for Scanner.
fn (Scanner) current_file #
fn (s &Scanner) current_file() &token.File
current_file returns current file data for Scanner.
fn (Scanner) scan #
fn (mut s Scanner) scan() token.Token
scan supports scan handling for Scanner.