Versions in this module Expand all Collapse all v0 v0.2.0 Aug 14, 2024 v0.1.0 Dec 15, 2023 Changes in this version + func CheckDecl(decl ast.Decl) []error + func ExtractPackages(program []parse.SourceUnit) (map[string]*packages.Package, error) + func RectifyAtom(atom ast.Atom, usedVars VarList) (ast.Atom, []ast.Term, []ast.Variable, []ast.Variable) + func RewriteClause(decls map[ast.PredicateSym]*ast.Decl, clause ast.Clause) ast.Clause + type Analyzer struct + func New(extraPredicates map[ast.PredicateSym]ast.Decl, decls []ast.Decl, ...) (*Analyzer, error) + func (a *Analyzer) Analyze(program []ast.Clause) (*ProgramInfo, error) + func (a *Analyzer) CheckRule(clause ast.Clause) error + func (a *Analyzer) EnsureDecl(clauses []ast.Clause) error + type BoundsAnalyzer struct + RulesMap map[ast.PredicateSym][]ast.Clause + func (bc *BoundsAnalyzer) BoundsCheck() error + type BoundsCheckingMode int + const ErrorForBoundsMismatch + const LogBoundsMismatch + const NoBoundsChecking + type Nodeset map[ast.PredicateSym]struct + func Stratify(program Program) ([]Nodeset, map[ast.PredicateSym]int, error) + type Program struct + EdbPredicates map[ast.PredicateSym]struct{} + IdbPredicates map[ast.PredicateSym]struct{} + Rules []ast.Clause + type ProgramInfo struct + Decls map[ast.PredicateSym]*ast.Decl + EdbPredicates map[ast.PredicateSym]struct{} + IdbPredicates map[ast.PredicateSym]struct{} + InitialFacts []ast.Atom + Rules []ast.Clause + func Analyze(program []parse.SourceUnit, extraPredicates map[ast.PredicateSym]ast.Decl) (*ProgramInfo, error) + func AnalyzeAndCheckBounds(program []parse.SourceUnit, extraPredicates map[ast.PredicateSym]ast.Decl, ...) (*ProgramInfo, error) + func AnalyzeOneUnit(unit parse.SourceUnit, extraPredicates map[ast.PredicateSym]ast.Decl) (*ProgramInfo, error) + type VarList struct + Vars []ast.Variable + func NewVarList(m map[ast.Variable]bool) VarList + func (vs VarList) AsMap() map[ast.Variable]bool + func (vs VarList) Contains(v ast.Variable) bool + func (vs VarList) Extend(vars []ast.Variable) VarList + func (vs VarList) Find(v ast.Variable) int