# Hand-writen lexer of nitcc
# Used only for the boostrap of the tool.
-class MyLexer
+class Lexer_nitcc
var text: String
- var iter: Iterator[Char] = "".iterator
+ var iter: Iterator[Char] = "".chars.iterator
var pos = 0
var tokens = new Array[NToken]
fun lex: Array[NToken]
do
- iter = text.iterator
+ iter = text.chars.iterator
while iter.is_ok do
trim
if not iter.is_ok then break
tokens.add new Nccur
else if c == '|' then
tokens.add new Npipe
+ else if c == ',' then
+ tokens.add new Ncomma
else if c == ':' then
tokens.add new Ncolo
else if c == ';' then
fun str
do
- var b = new Buffer
+ var b = new FlatBuffer
b.add('\'')
while iter.is_ok do
var c = iter.item
fun id(c: Char)
do
- var b = new Buffer
+ var b = new FlatBuffer
b.add c
while iter.is_ok do
c = iter.item
fun kw(c: Char)
do
- var b = new Buffer
+ var b = new FlatBuffer
b.add c
while iter.is_ok do
c = iter.item