31 lines
600 B
V
31 lines
600 B
V
// Copyright (c) 2019 Alexander Medvednikov. All rights reserved.
|
|
// Use of this source code is governed by an MIT license
|
|
// that can be found in the LICENSE file.
|
|
module scanner
|
|
|
|
import (
|
|
compiler2.token
|
|
)
|
|
|
|
fn test_scan() {
|
|
text := 'println(2 + 3)'
|
|
mut scanner := new_scanner(text)
|
|
mut tokens := []token.Token
|
|
for {
|
|
res := scanner.scan()
|
|
if res.tok == .eof {
|
|
break
|
|
}
|
|
tokens << res.tok
|
|
}
|
|
assert tokens.len == 6
|
|
assert tokens[0] == .name
|
|
assert tokens[1] == .lpar
|
|
assert tokens[2] == .number
|
|
assert tokens[3] == .plus
|
|
assert tokens[4] == .number
|
|
assert tokens[5] == .rpar
|
|
|
|
}
|
|
|