souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
48 assert(pos !=
var_references.end() &&
"Undefined variable referenced!");
49 return *pos->second.begin();
60 if (*cur.first == arg) {
67 if (cur.first == &arg) {
72 fatal(
"arg `%s` has no generator location", arg);
89 fatal(
"requested location for undefined record!");
95 [&level](
const auto& location) {
return location.second.identifier == level; });
101 if (cur.second.begin()->identifier == level) {
107 if (cur.second.identifier == level) {
116 out <<
"Variables:\n\t";
const Location & getDefinitionPoint(const ast::Variable &var) const
void addVarReference(const ast::Variable &var, const Location &l)
generator_location_map arg_generator_locations
The level of a nested ram operation that is handling a generator operation.
void setGeneratorLoc(const ast::Argument &arg, const Location &loc)
A variable to be utilized within constraints to be handled by the constraint solver.
An abstract class for arguments.
detail::joined_sequence< Iter, Printer > join(const Iter &a, const Iter &b, const std::string &sep, const Printer &p)
Creates an object to be forwarded to some output stream for printing sequences of elements interspers...
void setRecordDefinition(const ast::RecordInit &init, const Location &l)
bool isDefined(const ast::Variable &var) const
bool any_of(const Container &c, UnaryPredicate p)
A generic test checking whether any elements within a container satisfy a certain predicate.
const Location & getGeneratorLoc(const ast::Argument &arg) const
bool isSomethingDefinedOn(int level) const
Defines the aggregator class.
bool isGenerator(const int level) const
void fatal(const char *format, const Args &... args)
void rel(size_t limit, bool showLimit=true)
record_definition_map record_definitions
The index of record definition points.
Defines a record initialization class.
variable_reference_map var_references
The index of variable accesses.
void print(std::ostream &out) const