feat: Implement built-in functions (len, type)

This commit is contained in:
Alvin
2025-07-22 18:23:41 +02:00
parent 8e305629b8
commit 244647e6a3
2 changed files with 22 additions and 2 deletions

View File

@@ -3,7 +3,9 @@ class Interpreter:
self.ast = ast
self.scope_stack = [{}]
self.functions = {
"ask": self._ask_builtin
"ask": self._ask_builtin,
"len": self._len_builtin,
"type": self._type_builtin
}
def _ask_builtin(self, prompt):
@@ -174,6 +176,14 @@ class Interpreter:
def visit_ReturnStatement(self, node):
raise ReturnValue(self.visit(node.value))
@staticmethod
def _len_builtin(obj):
return len(obj)
@staticmethod
def _type_builtin(obj):
return str(type(obj).__name__)
class ReturnValue(Exception):
def __init__(self, value):
self.value = value
self.value = value