hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Typedefs | Functions
hobbes::str Namespace Reference

Classes

class  prefix_tree
 
class  ptnode
 

Typedefs

typedef std::vector< std::string > seq
 
typedef std::vector< seqseqs
 
typedef std::vector< unsigned int > lengths
 
typedef std::pair< std::string, std::string > pair
 
typedef std::set< std::string > set
 
typedef std::map< std::string, std::string > named_strings
 

Functions

std::string env (const std::string &varname)
 
void env (const std::string &varname, const std::string &value)
 
void repeat (unsigned int n, const std::string &s, seq *out)
 
seq repeat (unsigned int n, const std::string &s)
 
template<typename C >
unsigned int maxSize (unsigned int d, const std::vector< C > &vs)
 
template<typename C >
unsigned int minSize (unsigned int d, const std::vector< C > &vs)
 
unsigned int tableCols (const seqs &tbl)
 
unsigned int tableRows (const seqs &tbl)
 
unsigned int maxStrLen (const seq &col)
 
lengths maxStrLen (const seqs &tbl)
 
std::string pad (size_t n)
 
std::string leftAlign (size_t w, const std::string &x)
 
std::string rightAlign (size_t w, const std::string &x)
 
seq leftAlign (const seq &col)
 
seq rightAlign (const seq &col)
 
seqs leftAlign (const seqs &tbl)
 
seqs rightAlign (const seqs &tbl)
 
void printLeftAlignedTable (std::ostream &out, const seqs &tbl)
 
void printRightAlignedTable (std::ostream &out, const seqs &tbl)
 
std::string showLeftAlignedTable (const seqs &tbl)
 
std::string showRightAlignedTable (const seqs &tbl)
 
void printHeadlessLeftAlignedTable (std::ostream &out, const seqs &tbl)
 
void printHeadlessRightAlignedTable (std::ostream &out, const seqs &tbl)
 
template<typename T >
bool is (const std::string &x)
 
template<typename T >
to (const std::string &x)
 
template<typename T >
bool to (const std::string &x, T &out)
 
template<typename T >
bool to (const char *b, const char *e, T *out)
 
template<typename T >
std::string from (const T &x)
 
std::string demangle (const char *tn)
 
std::string demangle (const std::type_info &ti)
 
template<typename T >
std::string demangle ()
 
template<typename Char >
std::basic_string< Chartrim (const std::basic_string< Char > &s)
 
template<typename Char >
std::pair< std::basic_string< Char >, std::basic_string< Char > > trim (const std::pair< std::basic_string< Char >, std::basic_string< Char > > &p)
 
template<typename Char >
std::vector< std::basic_string< Char > > trim (const std::vector< std::basic_string< Char > > &ss)
 
template<typename Char >
std::basic_string< Chartrimq (const std::basic_string< Char > &s, Char q=(Char)'"')
 
template<typename Char >
std::basic_string< Charreplace (const std::basic_string< Char > &src, const std::basic_string< Char > &old_substr, const std::basic_string< Char > &new_substr)
 
bool isNyb (char)
 
char denyb (char)
 
unsigned char dehex (const std::string &)
 
std::vector< unsigned char > dehexs (const std::string &)
 
char nyb (unsigned char x)
 
std::string hex (unsigned char)
 
std::string hex (const std::vector< unsigned char > &)
 
std::string hex (const unsigned char *, size_t)
 
std::string escape (const std::string &)
 
std::string unescape (const std::string &)
 
bool endsWith (const std::string &s, const std::string &sfx)
 
pair trim (const pair &p)
 
pair splitAt (const std::string &s, unsigned int i)
 
pair lsplit (const std::string &s, const std::string &ss)
 
pair rsplit (const std::string &s, const std::string &ss)
 
seq csplit (const std::string &s, const std::string &ss)
 
pair readWhile (bool(*P)(char), const std::string &s)
 
bool isDigit (char c)
 
bool isNotDigit (char c)
 
unsigned int firstFailIndex (bool(*P)(char), const std::string &s)
 
std::string cdelim (const seq &ss, const std::string &d)
 
std::string show (const set &)
 
std::string show (const named_strings &)
 
template<typename T >
foldWithFormat (const std::string &str, const T &s, T(*constF)(const T &, const std::string &), T(*expF)(const T &, const std::string &))
 
std::string slurp (std::istream &in)
 
seq strings ()
 
seq strings (const std::string &a0)
 
seq strings (const std::string &a0, const std::string &a1)
 
seq strings (const std::string &a0, const std::string &a1, const std::string &a2)
 
seq strings (const std::string &a0, const std::string &a1, const std::string &a2, const std::string &a3)
 
seq strings (const std::string &a0, const std::string &a1, const std::string &a2, const std::string &a3, const std::string &a4)
 
seq strings (const std::string &a0, const std::string &a1, const std::string &a2, const std::string &a3, const std::string &a4, const std::string &a5)
 
char readCharDef (const std::string &)
 
std::string expandVars (const std::string &)
 
std::string expandPath (const std::string &)
 
std::string showDataSize (size_t bytes)
 
std::string charRange (char low, char high)
 
std::string printableChars ()
 
std::string difference (const std::string &x, const std::string &y)
 
size_t editDistance (const std::string &, const std::string &)
 
seq closestMatches (const std::string &, const set &, size_t maxDist)
 
seq closestMatches (const std::string &, const seq &, size_t maxDist)
 
std::string mustEndWith (const std::string &, const std::string &)
 
str::seq paths (const std::string &p)
 
bool validTable (const seqs &tbl)
 
void printAlignedTable (std::ostream &out, const seqs &tbl)
 
void printHeadlessAlignedTable (std::ostream &out, const seqs &tbl)
 
bool charIn (char c, const char *ps)
 
std::string epAppend (const std::string &lhs, const std::string &rhs)
 
std::string epLookup (const std::string &lhs, const std::string &var)
 

Typedef Documentation

◆ lengths

typedef std::vector<unsigned int> hobbes::str::lengths

◆ named_strings

typedef std::map<std::string, std::string> hobbes::str::named_strings

◆ pair

typedef std::pair<std::string, std::string> hobbes::str::pair

◆ seq

typedef std::vector<std::string> hobbes::str::seq

◆ seqs

typedef std::vector<seq> hobbes::str::seqs

◆ set

typedef std::set<std::string> hobbes::str::set

Function Documentation

◆ cdelim()

std::string hobbes::str::cdelim ( const seq ss,
const std::string &  d 
)

◆ charIn()

bool hobbes::str::charIn ( char  c,
const char *  ps 
)

◆ charRange()

std::string hobbes::str::charRange ( char  low,
char  high 
)
inline

◆ closestMatches() [1/2]

seq hobbes::str::closestMatches ( const std::string &  x,
const set ss,
size_t  maxDist 
)

◆ closestMatches() [2/2]

seq hobbes::str::closestMatches ( const std::string &  x,
const seq ss,
size_t  maxDist 
)

◆ csplit()

seq hobbes::str::csplit ( const std::string &  s,
const std::string &  ss 
)

◆ dehex()

unsigned char hobbes::str::dehex ( const std::string &  x)

◆ dehexs()

std::vector< unsigned char > hobbes::str::dehexs ( const std::string &  x)

◆ demangle() [1/3]

std::string hobbes::str::demangle ( const char *  tn)

◆ demangle() [2/3]

std::string hobbes::str::demangle ( const std::type_info &  ti)

◆ demangle() [3/3]

template<typename T >
std::string hobbes::str::demangle ( )

◆ denyb()

char hobbes::str::denyb ( char  c)

◆ difference()

std::string hobbes::str::difference ( const std::string &  x,
const std::string &  y 
)
inline

◆ editDistance()

size_t hobbes::str::editDistance ( const std::string &  x,
const std::string &  y 
)

◆ endsWith()

bool hobbes::str::endsWith ( const std::string &  s,
const std::string &  sfx 
)

◆ env() [1/2]

std::string hobbes::str::env ( const std::string &  varname)

◆ env() [2/2]

void hobbes::str::env ( const std::string &  varname,
const std::string &  value 
)

◆ epAppend()

std::string hobbes::str::epAppend ( const std::string &  lhs,
const std::string &  rhs 
)

◆ epLookup()

std::string hobbes::str::epLookup ( const std::string &  lhs,
const std::string &  var 
)

◆ escape()

std::string hobbes::str::escape ( const std::string &  cs)

◆ expandPath()

std::string hobbes::str::expandPath ( const std::string &  x)

◆ expandVars()

std::string hobbes::str::expandVars ( const std::string &  x)

◆ firstFailIndex()

unsigned int hobbes::str::firstFailIndex ( bool(*)(char)  P,
const std::string &  s 
)

◆ foldWithFormat()

template<typename T >
T hobbes::str::foldWithFormat ( const std::string &  str,
const T &  s,
T(*)(const T &, const std::string &)  constF,
T(*)(const T &, const std::string &)  expF 
)

◆ from()

template<typename T >
std::string hobbes::str::from ( const T &  x)

◆ hex() [1/3]

std::string hobbes::str::hex ( unsigned char  x)

◆ hex() [2/3]

std::string hobbes::str::hex ( const std::vector< unsigned char > &  cs)

◆ hex() [3/3]

std::string hobbes::str::hex ( const unsigned char *  b,
size_t  sz 
)

◆ is()

template<typename T >
bool hobbes::str::is ( const std::string &  x)

◆ isDigit()

bool hobbes::str::isDigit ( char  c)

◆ isNotDigit()

bool hobbes::str::isNotDigit ( char  c)

◆ isNyb()

bool hobbes::str::isNyb ( char  c)

◆ leftAlign() [1/3]

std::string hobbes::str::leftAlign ( size_t  w,
const std::string &  x 
)

◆ leftAlign() [2/3]

seq hobbes::str::leftAlign ( const seq col)

◆ leftAlign() [3/3]

seqs hobbes::str::leftAlign ( const seqs tbl)

◆ lsplit()

pair hobbes::str::lsplit ( const std::string &  s,
const std::string &  ss 
)

◆ maxSize()

template<typename C >
unsigned int hobbes::str::maxSize ( unsigned int  d,
const std::vector< C > &  vs 
)

◆ maxStrLen() [1/2]

unsigned int hobbes::str::maxStrLen ( const seq col)

◆ maxStrLen() [2/2]

lengths hobbes::str::maxStrLen ( const seqs tbl)

◆ minSize()

template<typename C >
unsigned int hobbes::str::minSize ( unsigned int  d,
const std::vector< C > &  vs 
)

◆ mustEndWith()

std::string hobbes::str::mustEndWith ( const std::string &  x,
const std::string &  sfx 
)

◆ nyb()

char hobbes::str::nyb ( unsigned char  x)

◆ pad()

std::string hobbes::str::pad ( size_t  n)

◆ paths()

str::seq hobbes::str::paths ( const std::string &  p)

◆ printableChars()

std::string hobbes::str::printableChars ( )
inline

◆ printAlignedTable()

void hobbes::str::printAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ printHeadlessAlignedTable()

void hobbes::str::printHeadlessAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ printHeadlessLeftAlignedTable()

void hobbes::str::printHeadlessLeftAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ printHeadlessRightAlignedTable()

void hobbes::str::printHeadlessRightAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ printLeftAlignedTable()

void hobbes::str::printLeftAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ printRightAlignedTable()

void hobbes::str::printRightAlignedTable ( std::ostream &  out,
const seqs tbl 
)

◆ readCharDef()

char hobbes::str::readCharDef ( const std::string &  x)

◆ readWhile()

pair hobbes::str::readWhile ( bool(*)(char)  P,
const std::string &  s 
)

◆ repeat() [1/2]

void hobbes::str::repeat ( unsigned int  n,
const std::string &  s,
seq out 
)

◆ repeat() [2/2]

seq hobbes::str::repeat ( unsigned int  n,
const std::string &  s 
)

◆ replace()

template<typename Char >
std::basic_string<Char> hobbes::str::replace ( const std::basic_string< Char > &  src,
const std::basic_string< Char > &  old_substr,
const std::basic_string< Char > &  new_substr 
)

◆ rightAlign() [1/3]

std::string hobbes::str::rightAlign ( size_t  w,
const std::string &  x 
)

◆ rightAlign() [2/3]

seq hobbes::str::rightAlign ( const seq col)

◆ rightAlign() [3/3]

seqs hobbes::str::rightAlign ( const seqs tbl)

◆ rsplit()

pair hobbes::str::rsplit ( const std::string &  s,
const std::string &  ss 
)

◆ show() [1/2]

std::string hobbes::str::show ( const set ss)

◆ show() [2/2]

std::string hobbes::str::show ( const named_strings cfg)

◆ showDataSize()

std::string hobbes::str::showDataSize ( size_t  bytes)

◆ showLeftAlignedTable()

std::string hobbes::str::showLeftAlignedTable ( const seqs tbl)

◆ showRightAlignedTable()

std::string hobbes::str::showRightAlignedTable ( const seqs tbl)

◆ slurp()

std::string hobbes::str::slurp ( std::istream &  in)
inline

◆ splitAt()

pair hobbes::str::splitAt ( const std::string &  s,
unsigned int  i 
)

◆ strings() [1/7]

seq hobbes::str::strings ( )
inline

◆ strings() [2/7]

seq hobbes::str::strings ( const std::string &  a0)
inline

◆ strings() [3/7]

seq hobbes::str::strings ( const std::string &  a0,
const std::string &  a1 
)
inline

◆ strings() [4/7]

seq hobbes::str::strings ( const std::string &  a0,
const std::string &  a1,
const std::string &  a2 
)
inline

◆ strings() [5/7]

seq hobbes::str::strings ( const std::string &  a0,
const std::string &  a1,
const std::string &  a2,
const std::string &  a3 
)
inline

◆ strings() [6/7]

seq hobbes::str::strings ( const std::string &  a0,
const std::string &  a1,
const std::string &  a2,
const std::string &  a3,
const std::string &  a4 
)
inline

◆ strings() [7/7]

seq hobbes::str::strings ( const std::string &  a0,
const std::string &  a1,
const std::string &  a2,
const std::string &  a3,
const std::string &  a4,
const std::string &  a5 
)
inline

◆ tableCols()

unsigned int hobbes::str::tableCols ( const seqs tbl)

◆ tableRows()

unsigned int hobbes::str::tableRows ( const seqs tbl)

◆ to() [1/3]

template<typename T >
T hobbes::str::to ( const std::string &  x)

◆ to() [2/3]

template<typename T >
bool hobbes::str::to ( const std::string &  x,
T &  out 
)

◆ to() [3/3]

template<typename T >
bool hobbes::str::to ( const char *  b,
const char *  e,
T *  out 
)

◆ trim() [1/4]

template<typename Char >
std::basic_string<Char> hobbes::str::trim ( const std::basic_string< Char > &  s)

◆ trim() [2/4]

template<typename Char >
std::pair< std::basic_string<Char>, std::basic_string<Char> > hobbes::str::trim ( const std::pair< std::basic_string< Char >, std::basic_string< Char > > &  p)

◆ trim() [3/4]

template<typename Char >
std::vector< std::basic_string<Char> > hobbes::str::trim ( const std::vector< std::basic_string< Char > > &  ss)

◆ trim() [4/4]

pair hobbes::str::trim ( const pair p)
inline

◆ trimq()

template<typename Char >
std::basic_string<Char> hobbes::str::trimq ( const std::basic_string< Char > &  s,
Char  q = (Char)'"' 
)

◆ unescape()

std::string hobbes::str::unescape ( const std::string &  cs)

◆ validTable()

bool hobbes::str::validTable ( const seqs tbl)