mirror of
https://github.com/Alvin-Zilverstand/femcode.git
synced 2026-03-06 13:23:39 +01:00
Initial commit: Basic interpreter structure
This commit is contained in:
18
src/interpreter.py
Normal file
18
src/interpreter.py
Normal file
@@ -0,0 +1,18 @@
|
||||
class Interpreter:
|
||||
def __init__(self, ast):
|
||||
self.ast = ast
|
||||
|
||||
def interpret(self):
|
||||
for node in self.ast:
|
||||
self.visit(node)
|
||||
|
||||
def visit(self, node):
|
||||
method_name = f'visit_{type(node).__name__}'
|
||||
method = getattr(self, method_name, self.no_visit_method)
|
||||
return method(node)
|
||||
|
||||
def no_visit_method(self, node):
|
||||
raise Exception(f'No visit_{type(node).__name__} method defined')
|
||||
|
||||
def visit_Print(self, node):
|
||||
print(node.value)
|
||||
Reference in New Issue
Block a user