souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
48 std::map<const std::string, const std::string>
identifiers;
51 std::map<std::string, unsigned>
idxMap;
94 assert(it !=
relationMap.end() &&
"relation not found");
112 void generateCode(std::ostream& os,
const std::string&
id,
bool& withSharedLibrary);
void generateRelationTypeStruct(std::ostream &out, Own< Relation > relationType)
Get relation struct definition.
void emitCode(std::ostream &out, const ram::Statement &stmt)
Generate code.
const ram::Relation * lookup(const std::string &relName)
Lookup relation by relation name.
const std::string getRelationName(const ram::Relation &rel)
Get relation name.
unsigned lookupFreqIdx(const std::string &txt)
Lookup frequency counter.
const RecordTable & getRecordTable()
Get record table.
std::set< std::string > typeCache
Cache for generated types for relations.
virtual ~Synthesiser()=default
void generateCode(std::ostream &os, const std::string &id, bool &withSharedLibrary)
Generate code.
Synthesiser(ram::TranslationUnit &tUnit)
size_t lookupReadIdx(const std::string &txt)
Lookup read counter.
ram::TranslationUnit & getTranslationUnit()
Get translation unit.
Program & getProgram() const
Get the RAM Program of the translation unit
Translating a RAM program.
std::map< std::string, size_t > neIdxMap
Frequency profiling of non-existence checks.
An abstract class for performing indexed operations.
Souffle - A Datalog Compiler Copyright (c) 2013, 2015, Oracle and/or its affiliates.
const std::string getOpContextName(const ram::Relation &rel)
Get context name.
Abstract class for a relational algebra operation.
ram::TranslationUnit & translationUnit
RAM translation unit.
const std::string convertRamIdent(const std::string &name)
Convert RAM identifier.
std::map< std::string, const ram::Relation * > relationMap
Relation map.
Abstract class for RAM statements.
std::map< std::string, unsigned > idxMap
Frequency profiling of searches.
std::map< const std::string, const std::string > identifiers
RAM identifier to C++ identifier map.
RecordTable recordTable
Record Table.
void visitDepthFirst(const Node &root, Visitor< R, Ps... > &visitor, Args &... args)
A utility function visiting all nodes within the RAM fragments rooted by the given node recursively i...
void rel(size_t limit, bool showLimit=true)
std::set< const ram::Relation * > getReferencedRelations(const ram::Operation &op)
Get referenced relations.