//! returns: 97 //! Test scanner current character access. export record Scanner { source: *[u8], cursor: u32, } fn isEof(s: *Scanner) -> bool { return s.cursor >= s.source.len; } export fn current(s: *Scanner) -> ?u8 { if isEof(s) { return nil; } return s.source[s.cursor]; } fn peek(s: *Scanner) -> ?u8 { if s.cursor + 1 >= s.source.len { return nil; } return s.source[s.cursor + 1]; } @default fn main() -> u8 { let s: Scanner = Scanner { source: "abc", cursor: 0 }; if let c = current(&s) { return c; } return 1; }