MCPcopy
hub / github.com/google/mangle / AddVars

Function AddVars

ast/ast.go:1399–1435  ·  view source on GitHub ↗

AddVars adds all variables from term to map, where term is either variable, constant or atom.

(term Term, m map[Variable]bool)

Source from the content-addressed store, hash-verified

1397// AddVars adds all variables from term to map, where term is either
1398// variable, constant or atom.
1399func AddVars(term Term, m map[Variable]bool) {
1400 switch t := term.(type) {
1401 case Constant:
1402 return
1403 case Variable:
1404 m[t] = true
1405 case ApplyFn:
1406 for _, baseTerm := range t.Args {
1407 AddVars(baseTerm, m)
1408 }
1409 case Atom:
1410 for _, baseTerm := range t.Args {
1411 AddVars(baseTerm, m)
1412 }
1413 case NegAtom:
1414 AddVars(t.Atom, m)
1415 case Eq:
1416 AddVars(t.Left, m)
1417 AddVars(t.Right, m)
1418 case Ineq:
1419 AddVars(t.Left, m)
1420 AddVars(t.Right, m)
1421 case TemporalLiteral:
1422 AddVars(t.Literal, m)
1423 if t.Interval != nil {
1424 addVarsFromInterval(*t.Interval, m)
1425 }
1426 if t.Operator != nil {
1427 addVarsFromInterval(t.Operator.Interval, m)
1428 }
1429 case TemporalAtom:
1430 AddVars(t.Atom, m)
1431 if t.Interval != nil {
1432 addVarsFromInterval(*t.Interval, m)
1433 }
1434 }
1435}
1436
1437func addVarsFromInterval(interval Interval, m map[Variable]bool) {
1438 if interval.Start.Type == VariableBound {

Callers 14

getVarsFunction · 0.92
getPushdownFunction · 0.92
CheckFactMethod · 0.92
RewriteClauseFunction · 0.92
CheckRuleMethod · 0.92
addTransformVarsFunction · 0.92
feasibleAlternativesMethod · 0.92
NewBoundHandleFunction · 0.92
WellformedBoundFunction · 0.92
CheckFunTypeExpressionFunction · 0.92
GetTypeContextFunction · 0.92
AddVarsFromClauseFunction · 0.85

Calls 1

addVarsFromIntervalFunction · 0.85

Tested by 1

TestAddVarsFunction · 0.68