master > master: codego - Formulae package

This commit is contained in:
RD
2021-05-18 11:31:29 +02:00
parent 4be6896a0f
commit 2ab9b63a08
7 changed files with 549 additions and 100 deletions

View File

@@ -31,33 +31,33 @@ func (fml Formula) GetExpr() string { return fml.expr }
func (fml Formula) GetName() string { return fml.name }
func (fml *Formula) SetSubformulae(subfmls [](*Formula)) {
fml.subformulae = subfmls
fml.valence = len(subfmls)
func (fml *Formula) SetSubformulae(subFmls [](*Formula)) {
fml.subformulae = subFmls
fml.valence = len(subFmls)
}
func (fml Formula) GetSubFormulae() []Formula {
var n int = fml.valence
var subfmls = make([]Formula, n)
for i, subfml := range fml.subformulae {
subfmls[i] = *subfml
var subFmls = make([]Formula, n)
for i, subFml := range fml.subformulae {
subFmls[i] = *subFml
}
return subfmls
return subFmls
}
func (fml Formula) GetAllSubFormulae() []Formula {
var subfml = fml.GetSubFormulae()
var subFml = fml.GetSubFormulae()
var result = []Formula{fml.Copy()}
for _, child := range subfml {
for _, child := range subFml {
result = append(result, child.GetAllSubFormulae()...)
}
return result
}
func (fml Formula) GetAllSubFormulaeStrict() []Formula {
var subfml = fml.GetSubFormulae()
var subFml = fml.GetSubFormulae()
var result = []Formula{}
for _, child := range subfml {
for _, child := range subFml {
result = append(result, child.GetAllSubFormulae()...)
}
return result
@@ -68,13 +68,13 @@ func (fml Formula) GetChild(indexOpt ...int) Formula {
if len(indexOpt) > 0 {
index = indexOpt[0]
}
var subfml Formula
var subFml Formula
if 0 <= index && index < fml.valence {
subfml = *(fml.subformulae[index])
subFml = *(fml.subformulae[index])
} else {
panic(fmt.Sprintf("Instance has no child of index %d !", index))
}
return subfml
return subFml
}
func (fml Formula) Pretty(preindentOpt ...string) string {
@@ -98,8 +98,8 @@ func (fml Formula) pretty(preindent string, tab string, prepend string, depth in
default:
var lines string = indent + prepend + fml.kind
prepend = "|__ "
for _, subfml := range fml.subformulae {
lines += "\n" + subfml.pretty(preindent, tab, prepend, depth+1)
for _, subFml := range fml.subformulae {
lines += "\n" + subFml.pretty(preindent, tab, prepend, depth+1)
}
return lines
}
@@ -116,16 +116,16 @@ func (fml Formula) Copy() Formula {
}
func (fml Formula) Deepcopy() Formula {
var subfmls = make([](*Formula), len(fml.subformulae))
for i, subfml := range fml.subformulae {
subfmlCopy := subfml.Deepcopy()
subfmls[i] = &subfmlCopy
var subFmls = make([](*Formula), len(fml.subformulae))
for i, subFml := range fml.subformulae {
subFmlCopy := subFml.Deepcopy()
subFmls[i] = &subFmlCopy
}
return Formula{
expr: fml.expr,
kind: fml.kind,
valence: fml.valence,
subformulae: subfmls,
subformulae: subFmls,
}
}