feat: Implement function parameters and return values

This commit is contained in:
Alvin
2025-07-22 16:46:57 +02:00
parent 08e2ea17dd
commit b6a3b3041d
4 changed files with 75 additions and 20 deletions

View File

@@ -31,11 +31,13 @@ class Lexer:
if current_char == '"':
self.pos += 1
string_end = self.text.find('"', self.pos)
if string_end == -1:
self.error()
string = self.text[self.pos:string_end]
self.pos = string_end + 1
start_string = self.pos
while self.pos < len(self.text) and self.text[self.pos] != '"':
self.pos += 1
if self.pos == len(self.text):
self.error() # Unterminated string
string = self.text[start_string:self.pos]
self.pos += 1 # Consume closing quote
return Token('STRING', string)
if current_char.isdigit():
@@ -65,6 +67,9 @@ class Lexer:
if current_char == '/':
self.pos += 1
return Token('DIV', '/')
if current_char == ',':
self.pos += 1
return Token('COMMA', ',')
if current_char == '=':
if self.pos + 1 < len(self.text) and self.text[self.pos + 1] == '=':
self.pos += 2
@@ -133,4 +138,4 @@ class Lexer:
tokens.append(token)
if token.type == 'EOF':
break
return tokens
return tokens