Enable importing other source files

This commit is contained in:
Bartłomiej Pluta
2019-07-08 22:32:59 +02:00
parent 38df0bf8df
commit d4b4aa48ee
7 changed files with 59 additions and 16 deletions

View File

@@ -0,0 +1,3 @@
def readLines(file):
with open(file, 'r') as source:
return [line.rstrip('\n') for line in source.readlines()]

0
smnp/program/__init__.py Normal file
View File

View File

@@ -0,0 +1,26 @@
from smnp.ast.parser import parse
from smnp.environment.factory import createEnvironment
from smnp.program.FileReader import readLines
from smnp.runtime.evaluator import evaluate
from smnp.token.tokenizer import tokenize
class Interpreter:
@staticmethod
def interpretFile(file, printTokens=False, printAst=False):
lines = readLines(file)
tokens = tokenize(lines)
if printTokens:
print(tokens)
ast = parse(tokens)
if printAst:
ast.print()
environment = createEnvironment()
evaluate(ast, environment)
return environment