-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_test.py
38 lines (31 loc) · 1003 Bytes
/
run_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from src.lexer import Lexer
from src.parser_1 import Parser
from src.interpreter import Interpreter
from src.ast import Program # Asegúrate de que el archivo se llama custom_ast.py
from src.object import Integer
# Código fuente de ejemplo en tu lenguaje
codigo_fuente = '''
let x = 5;
let y = 25;
return x + y;
return "Hello, World!";
'''
# Crear un lexer y un parser
lexer = Lexer(codigo_fuente)
parser = Parser(lexer)
# Parsear el código fuente para obtener el AST
program = parser.getProgram()
# Verificar errores de parseo
if parser.errors:
print("Errores de parseo:")
for error in parser.errors:
print(error)
else:
# Si no hay errores, interpretar el programa
interpreter = Interpreter()
resultado = interpreter.interpret(program)
# Si el resultado es un objeto Integer, muestra su valor
if isinstance(resultado, Integer):
print(f"Resultado del programa: {resultado.value}")
else:
print(f"Resultado del programa: {resultado}")