[DevState] Changed Parsing

This commit is contained in:
Sven Heidemann
2020-09-23 06:48:38 +02:00
parent dfc4b44b25
commit 7058927970
29 changed files with 224 additions and 541 deletions

View File

@@ -1,14 +1,12 @@
from Models.AbstractSyntaxTree.RuntimeAbstractSyntaxTree import RuntimeAbstractSyntaxTree
from Models.Interpreter.Booleans import Booleans
from Models.Interpreter.FormatCharacters import FormatCharacters
from Models.Interpreter.Keywords import Keywords
from Models.Interpreter.Types import Types
from Models.Interpreter.Datatypes import Datatypes
from Models.Token.TokenValueTypes import FormatCharacters, Booleans, Keywords, ExpressionCharacters
class Repo:
def __init__(self) -> None:
self.debug = True
self.line_number: int = 0
# interpreter
self.keywords = [
@@ -29,7 +27,7 @@ class Repo:
Keywords.If,
Keywords.ElseIf,
Keywords.Else,
Keywords.Pass,
Keywords.Continue,
Keywords.If,
Keywords.Return,
# loops
@@ -38,15 +36,14 @@ class Repo:
# access
Keywords.Public
]
self.types = [
Types.strings.value[Types.Any.value],
Types.strings.value[Types.Number.value],
Types.strings.value[Types.String.value],
Types.strings.value[Types.Bool.value],
Types.strings.value[Types.List.value],
Types.strings.value[Types.Dict.value],
Types.strings.value[Types.Empty.value],
Types.strings.value[Types.Void.value]
self.datatypes = [
Datatypes.strings.value[Datatypes.Empty.value],
Datatypes.strings.value[Datatypes.Any.value],
Datatypes.strings.value[Datatypes.Number.value],
Datatypes.strings.value[Datatypes.String.value],
Datatypes.strings.value[Datatypes.Bool.value],
Datatypes.strings.value[Datatypes.List.value],
Datatypes.strings.value[Datatypes.Dict.value]
]
self.format_chars = [
FormatCharacters.chars.value[FormatCharacters.Left_Brace.value],
@@ -60,10 +57,16 @@ class Repo:
FormatCharacters.chars.value[FormatCharacters.Comma.value],
FormatCharacters.chars.value[FormatCharacters.Point.value]
]
self.expr_chars = ['+', '-', '*', '/', '=', '^']
self.expr_chars = [
ExpressionCharacters.chars.value[ExpressionCharacters.Plus.value],
ExpressionCharacters.chars.value[ExpressionCharacters.Minus.value],
ExpressionCharacters.chars.value[ExpressionCharacters.Asterisk.value],
ExpressionCharacters.chars.value[ExpressionCharacters.Slash.value],
ExpressionCharacters.chars.value[ExpressionCharacters.Equal.value],
ExpressionCharacters.chars.value[ExpressionCharacters.Caret.value]
]
self.bool_expr_chars = ['<', '>', '!', '!=', '==', '>=', '<=', '&&', '||']
self.bool_values = [Booleans.Right, Booleans.Wrong]
# runtime
self.is_error = None
self.AST: RuntimeAbstractSyntaxTree = RuntimeAbstractSyntaxTree()