From dc0330202781b08e9114a78adaedd88b5a1ac7b8 Mon Sep 17 00:00:00 2001 From: SpGerg Date: Sun, 21 Jan 2024 03:51:24 +0500 Subject: [PATCH] type fix --- Imports/PaganismCustomConsole/Paganism.dll | Bin 68608 -> 68608 bytes Paganism/Interpreter/Data/DataStorage.cs | 15 +++++++++++++++ .../PParser/AST/BinaryOperatorExpression.cs | 17 ++++++++++------- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Imports/PaganismCustomConsole/Paganism.dll b/Imports/PaganismCustomConsole/Paganism.dll index de9d0610ba37f8f360d0850019c1192240d1a9b9..7e270c4b77f205ed3408fe59d65f97ec7878c1ad 100644 GIT binary patch delta 18513 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 diff --git a/Paganism/Interpreter/Data/DataStorage.cs b/Paganism/Interpreter/Data/DataStorage.cs index b7eca72..4e8ed43 100644 --- a/Paganism/Interpreter/Data/DataStorage.cs +++ b/Paganism/Interpreter/Data/DataStorage.cs @@ -97,6 +97,21 @@ public bool IsLanguage(string name) return Language.ContainsKey(name); } + public bool TryGet(BlockStatementExpression expression, string name, out T value) + { + try + { + value = Get(expression, name); + + return true; + } + catch + { + value = default; + return false; + } + } + public T Get(BlockStatementExpression expression, string name) { if (Language.ContainsKey(name)) diff --git a/Paganism/PParser/AST/BinaryOperatorExpression.cs b/Paganism/PParser/AST/BinaryOperatorExpression.cs index b25a308..21a64c2 100644 --- a/Paganism/PParser/AST/BinaryOperatorExpression.cs +++ b/Paganism/PParser/AST/BinaryOperatorExpression.cs @@ -310,21 +310,24 @@ public Value Assign() if (Left is VariableExpression variableExpression) { - if (variableExpression.Type is null) + if (!Variables.Instance.Value.TryGet(Parent, variableExpression.Name, out var result)) { - variableExpression = new VariableExpression(variableExpression.Parent, variableExpression.Line, variableExpression.Position, variableExpression.Filepath, - variableExpression.Name, new TypeValue(value.Type, value is TypeValue typeValue ? typeValue.StructureName : string.Empty)); + if (variableExpression.Type is null) + { + variableExpression = new VariableExpression(variableExpression.Parent, variableExpression.Line, variableExpression.Position, variableExpression.Filepath, + variableExpression.Name, new TypeValue(value.Type, value is TypeValue typeValue ? typeValue.StructureName : string.Empty)); + } } else { - if (value.Type != variableExpression.Type.Value) + if (value.Type != result.Type) { - throw new InterpreterException($"Except {variableExpression.Type.Value} type", variableExpression.Line, variableExpression.Position); + throw new InterpreterException($"Except {result.Type} type", variableExpression.Line, variableExpression.Position); } - if (variableExpression.Type.Value is TypesType.Structure && value is StructureValue structureValue && variableExpression.Type.StructureName != structureValue.Structure.Name) + if (result is StructureValue structureValue1 && value is StructureValue structureValue && structureValue1.Structure.Name != structureValue.Structure.Name) { - throw new InterpreterException($"Except {variableExpression.Type.StructureName} structure type", variableExpression.Line, variableExpression.Position); + throw new InterpreterException($"Except {structureValue1.Structure.Name} structure type", variableExpression.Line, variableExpression.Position); } }