master > master: codego - generics

This commit is contained in:
RD
2021-05-15 10:58:17 +02:00
parent b315e666b8
commit 0856bfc0b0
3 changed files with 21 additions and 21 deletions

View File

@@ -3,6 +3,7 @@ package schema
import (
"logik/aussagenlogik/formulae"
parser "logik/grammars/aussagenlogik"
"regexp"
"github.com/antlr/antlr4/runtime/Go/antlr"
)
@@ -65,22 +66,13 @@ func (ant antlrTree) getLabel() string {
}
func (ant antlrTree) getTextContent() string {
var expr string = ant.getLabel()
for _, subant := range ant.getChildren() {
expr += subant.getTextContent()
}
return expr
}
func (ant antlrTree) getTextContentLeaves() string {
var expr string = ""
var subants = ant.getChildren()
if len(subants) == 0 {
expr = ant.getLabel()
} else {
for _, subant := range subants {
expr += subant.getTextContent()
}
return ant.getLabel()
}
for _, subant := range subants {
expr += subant.getTextContent()
}
return expr
}
@@ -116,9 +108,12 @@ func (ant antlrTree) toFormula() formulae.Formula {
case "contradiction":
return formulae.Contradiction
case "atom":
return formulae.Atom(ant.getTextContentLeaves())
name := ant.getTextContent()
return formulae.Atom(name)
case "generic":
return formulae.Generic(ant.getTextContentLeaves())
re := regexp.MustCompile(`^{|}$`)
name := string(re.ReplaceAll([]byte(ant.getTextContent()), []byte("")))
return formulae.Generic(name)
case "not":
// NOTE: expr = ! expr
if nChildren == 2 {