From 8778d3167648cb7a0e4ead7cabd5a289ede03915 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Wed, 12 May 2021 18:45:58 +0200 Subject: [PATCH] =?UTF-8?q?master=20>=20master:=20codego=20main=20aufger?= =?UTF-8?q?=C3=A4umt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codego/main.go | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/codego/main.go b/codego/main.go index af65904..5b1a015 100644 --- a/codego/main.go +++ b/codego/main.go @@ -1,12 +1,12 @@ package main import ( - "encoding/json" "fmt" "logik/aussagenlogik/rekursion" "logik/aussagenlogik/schema" "logik/aussagenlogik/syntaxbaum" env "logik/core/environment" + "logik/core/utils" "strings" "github.com/lithammer/dedent" @@ -31,23 +31,10 @@ var data dataType func main() { // Extrahiere Daten - err := getData() - if err != nil { - return - } + getData() // Ausdruck -> Syntaxbaum - tree, err := schema.ParseExpr(data.expr) - if err != nil { - return - } - // Methoden ausführen: - results := resultsType{ - eval: rekursion.RekursivEval(tree, data.interpretation), - atoms: rekursion.RekursivAtoms(tree), - depth: rekursion.RekursivDepth(tree), - length: rekursion.RekursivLength(tree), - nParentheses: rekursion.RekursivParentheses(tree), - } + tree := schema.ParseExpr(data.expr) + results := getResults(tree) // Resultate anzeigen: displayResults(tree, results) } @@ -56,12 +43,32 @@ func main() { // SONSTIGE METHODEN // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -func getData() error { +func getData() { env.ENV_FILE_NAME = DATA_ENV data.expr = env.ReadEnvKey("expr") s := env.ReadEnvKey("interpretation") - err := json.Unmarshal([]byte(s), &data.interpretation) - return err + utils.JsonToArrayOfStrings(s, &data.interpretation) +} + +func getResults(tree syntaxbaum.SyntaxBaum) resultsType { + ch1 := make(chan int) + ch2 := make(chan []string) + ch3 := make(chan int) + ch4 := make(chan int) + ch5 := make(chan int) + go rekursion.RekursivEval(ch1, tree, data.interpretation) + go rekursion.RekursivAtoms(ch2, tree) + go rekursion.RekursivDepth(ch3, tree) + go rekursion.RekursivLength(ch4, tree) + go rekursion.RekursivParentheses(ch5, tree) + // Methoden ausführen: + return resultsType{ + eval: <-ch1, + atoms: <-ch2, + depth: <-ch3, + length: <-ch4, + nParentheses: <-ch5, + } } func displayResults(tree syntaxbaum.SyntaxBaum, results resultsType) { @@ -82,7 +89,7 @@ func displayResults(tree syntaxbaum.SyntaxBaum, results resultsType) { * noch nicht implementiert! Challenge: schreibe diese Methoden! (siehe README.md) `), - tree.Expr, + tree.GetExpr(), tree.Pretty(" "), strings.Join(data.interpretation, ", "), results.eval,