mighty

The mighty programming language, compiler and tools (WIP)
Log | Files | Refs

commit da6a6faac23dc2e0b9a498cf6a43e10a81efbc6d
parent 776cd9145f657d6bd4a3ae0182adadd9f5e0bb87
Author: citbl <citbl@citbl.org>
Date:   Sat, 23 May 2026 17:59:55 +1000

wip

Diffstat:
Mmtcl/main.lua | 17+++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/mtcl/main.lua b/mtcl/main.lua @@ -11,7 +11,9 @@ function read_ident(start, src) local Z = string.byte("Z") local zero = string.byte("0") local nine = string.byte("9") - for i = start, #src do + local adv = 0 + local i = start + while i <= #src do local c = src:sub(i, i):byte() if not (c >= a and c <= z) @@ -20,13 +22,14 @@ function read_ident(start, src) then break end - word = word .. string.char(c) + i = i + 1 end + word = src:sub(start, i - 1) print(word) + return word, i end function lex(src) - local i = 1 local function skip() end local whitespacers = { ["\t"] = skip, @@ -34,16 +37,18 @@ function lex(src) ["\n"] = skip, [" "] = skip, } - - for i = 1, #src do + local i = 1 + while i <= #src do local c = src:sub(i, i) local char_fx = whitespacers[c] if char_fx then char_fx() else - read_ident(i, src) + word, i = read_ident(i, src) + -- add word to tokens end + i = i + 1 end end