souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
34 static constexpr
const char* boundPrefix =
"+underscore";
35 static size_t underscoreCount = 0;
38 mutable bool changed =
false;
39 nameVariables() =
default;
42 if (isA<UnnamedVariable>(node.get())) {
44 std::stringstream name;
45 name << boundPrefix <<
"_" << underscoreCount++;
46 return mk<ast::Variable>(name.str());
53 Program& program = translationUnit.getProgram();
57 clause->
apply(update);
58 changed |= update.changed;
An abstract class for manipulating AST Nodes by substitution.
Defines a relation with a name, attributes, qualifiers, and internal representation.
Intermediate representation of a horn clause.
The program class consists of relations, clauses and types.
std::vector< Relation * > getRelations() const
Return relations.
std::vector< Clause * > getClauses(const Program &program, const QualifiedName &relationName)
Returns a vector of clauses in the program describing the relation with the given name.
void rel(size_t limit, bool showLimit=true)
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.