master > master: codego main aufgeräumt

This commit is contained in:
RD 2021-05-12 18:45:58 +02:00
parent 8dcf781b96
commit 8778d31676
1 changed files with 28 additions and 21 deletions

View File

@ -1,12 +1,12 @@
package main package main
import ( import (
"encoding/json"
"fmt" "fmt"
"logik/aussagenlogik/rekursion" "logik/aussagenlogik/rekursion"
"logik/aussagenlogik/schema" "logik/aussagenlogik/schema"
"logik/aussagenlogik/syntaxbaum" "logik/aussagenlogik/syntaxbaum"
env "logik/core/environment" env "logik/core/environment"
"logik/core/utils"
"strings" "strings"
"github.com/lithammer/dedent" "github.com/lithammer/dedent"
@ -31,23 +31,10 @@ var data dataType
func main() { func main() {
// Extrahiere Daten // Extrahiere Daten
err := getData() getData()
if err != nil {
return
}
// Ausdruck -> Syntaxbaum // Ausdruck -> Syntaxbaum
tree, err := schema.ParseExpr(data.expr) tree := schema.ParseExpr(data.expr)
if err != nil { results := getResults(tree)
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),
}
// Resultate anzeigen: // Resultate anzeigen:
displayResults(tree, results) displayResults(tree, results)
} }
@ -56,12 +43,32 @@ func main() {
// SONSTIGE METHODEN // SONSTIGE METHODEN
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
func getData() error { func getData() {
env.ENV_FILE_NAME = DATA_ENV env.ENV_FILE_NAME = DATA_ENV
data.expr = env.ReadEnvKey("expr") data.expr = env.ReadEnvKey("expr")
s := env.ReadEnvKey("interpretation") s := env.ReadEnvKey("interpretation")
err := json.Unmarshal([]byte(s), &data.interpretation) utils.JsonToArrayOfStrings(s, &data.interpretation)
return err }
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) { func displayResults(tree syntaxbaum.SyntaxBaum, results resultsType) {
@ -82,7 +89,7 @@ func displayResults(tree syntaxbaum.SyntaxBaum, results resultsType) {
* noch nicht implementiert! * noch nicht implementiert!
Challenge: schreibe diese Methoden! (siehe README.md) Challenge: schreibe diese Methoden! (siehe README.md)
`), `),
tree.Expr, tree.GetExpr(),
tree.Pretty(" "), tree.Pretty(" "),
strings.Join(data.interpretation, ", "), strings.Join(data.interpretation, ", "),
results.eval, results.eval,