Create standard library proof of concept

This commit is contained in:
Bartłomiej Pluta
2019-07-10 13:23:40 +02:00
parent 83ea3aaf0f
commit 739610c663
6 changed files with 24 additions and 11 deletions

View File

@@ -9,12 +9,20 @@ from smnp.token.tokenizer import tokenize
class Interpreter:
@staticmethod
def interpretFile(file, printTokens=False, printAst=False):
def interpretString(string, printTokens=False, printAst=False, baseEnvironment=None):
return Interpreter._interpret(string.splitlines(), printTokens, printAst, baseEnvironment)
@staticmethod
def interpretFile(file, printTokens=False, printAst=False, baseEnvironment=None):
return Interpreter._interpret(readLines(file), printTokens, printAst, baseEnvironment)
@staticmethod
def _interpret(lines, printTokens=False, printAst=False, baseEnvironment=None):
environment = createEnvironment()
if baseEnvironment is not None:
environment.extend(baseEnvironment)
try:
lines = readLines(file)
tokens = tokenize(lines)
if printTokens:
print(tokens)