| souffle
    2.0.2-371-g6315b36
    | 
 
 
 
Go to the documentation of this file.
   38 class IO : 
public RelationStatement {
 
   49     const std::string 
get(
const std::string& key)
 const {
 
   58     void print(std::ostream& os, 
int tabpos)
 const override {
 
   59         os << 
times(
" ", tabpos);
 
   61         os << 
join(
directives, 
",", [](std::ostream& out, 
const auto& arg) {
 
   62             out << arg.first << 
"=\"" << 
escape(arg.second) << 
"\"";
 
   64         os << 
")" << std::endl;
 
   67     bool equal(
const Node& node)
 const override {
 
   68         const auto& other = 
static_cast<const IO&
>(node);
 
   73     const std::map<std::string, std::string> 
directives;
 
  
IO(std::string rel, std::map< std::string, std::string > directives)
bool equal(const Node &node) const override
Equality check for two RAM nodes.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
RelationStatement(std::string rel)
std::string relation
Relation.
const std::string get(const std::string &key) const
@get value of I/O directive
detail::multiplying_printer< T > times(const T &value, unsigned num)
A utility printing a given value multiple times.
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...
const std::map< std::string, std::string > directives
IO directives.
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
IO * clone() const override
Create a clone (i.e.
const std::map< std::string, std::string > & getDirectives() const
get I/O directives
I/O statement for a relation.
std::string escape(const std::string &inputString, const std::string &needle, const std::string &replacement)
void rel(size_t limit, bool showLimit=true)