Documentation of CSL
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes
csl::matcher::Node Struct Reference

Public Types

enum  ExprType { Sum, Prod }
 
using Container = std::vector< Node * >
 
using iterator = Container::iterator
 
using const_iterator = Container::const_iterator
 

Public Member Functions

bool empty () const
 
auto size () const
 
auto begin ()
 
auto end ()
 
auto begin () const
 
auto end () const
 
bool isRoot () const
 
bool isAbbreviated () const
 
iterator insert (csl::Expr const &t_expr)
 
std::pair< Node *, std::vector< csl::Expr >::const_iterator > findBestMatch (std::vector< csl::Expr >::const_iterator first, std::vector< csl::Expr >::const_iterator last)
 
std::vector< csl::ExprgetArgs () const
 
csl::Expr getChainExpr (ExprType type) const
 
csl::Expr getAbbreviation () const
 
csl::Expr getChainAbbreviation () const
 
void setAbbreviation (std::vector< Tree *> &trees, ExprType type)
 
void parse (std::vector< csl::Expr >::const_iterator first, std::vector< csl::Expr >::const_iterator last)
 
void print (int indent=0) const
 

Static Public Member Functions

static csl::Expr makeAbbreviation (csl::Expr const &expr, ExprType type)
 
static csl::Expr makeExpression (std::vector< csl::Expr > const &args, ExprType type)
 
static size_t distance (Node const *first, Node const *last)
 
static size_t nLeafs (csl::Expr const &expr)
 
static csl::Expr getChainExpr (std::vector< csl::Expr > const &args, ExprType type)
 
static Nodebuild (csl::Expr const &t_expr, Node *t_parent=nullptr)
 
static void destroy (Node *&node)
 
static void removeSingle (Node *&node)
 

Data Fields

csl::Expr expr
 
Nodeparent
 
csl::Expr abbreviation { nullptr }
 
csl::Expr chainAbbreviation { nullptr }
 
size_t nOccurences {1}
 
std::vector< Node * > children {}
 

Static Public Attributes

static bool useDifferedStart = false
 
static size_t maxLeaf = 10
 

The documentation for this struct was generated from the following files: