master > master: codego - generics
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user