28 #ifndef TABLES_RECORDGRAM_H
29 #define TABLES_RECORDGRAM_H
45 class TableExprNodeSet;
46 class TableExprNodeSetElem;
82 int recordGramParseCommand (
const String& command);
86 void RecordGramerror (
const char*);
90 Int& recordGramPosition();
93 int recordGramInput (
char* buf,
int max_size);
97 {
return tableGramRemoveEscapes (in); }
101 {
return tableGramRemoveQuotes (in); }
188 const String& expression);
195 const String& expression);
static const RecordInterface * theirRecPtr
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
static DComplex expr2Complex(const String &expr, const Record &vars=Record())
static TableExprNode * theirNodePtr
static TableExprNode handleField(const String &name)
Find the field name and create a TableExprNode from it.
Main interface class to a read/write table.
static void addToken(void *ptr, Token type)
Add a token to the list of tokens to be deleted.
static TableExprNode handleFunc(const String &name, const TableExprNodeSet &arguments)
Handle a function.
Class to hold multiple table expression nodes.
Handle class for a table column expression tree.
String recordGramRemoveQuotes(const String &in)
A function to remove quotes from a quoted string.
static String expr2String(const String &expr, const Record &vars=Record())
Helper class for values in RecordGram.
static std::mutex theirMutex
static const Table * theirTabPtr
static void removeToken(void *ptr)
Remove a token from the list of tokens to be deleted.
static void deleteTokenStorage()
Delete all tokens not deleted yet.
static TableExprNode handleLiteral(RecordGramVal *)
Create a TableExprNode from a literal.
static TableExprNode doParse(const String &expression)
Do the conversion of an expression string to an expression tree.
static std::map< void *, Token > theirTokens
static void addToken(TableExprNode *ptr)
Add a token to the list of tokens to be deleted for the possible tokens in the RecordGram.yy union.
static Bool expr2Bool(const String &expr, const Record &vars=Record())
Evaluate an expression to the given type.
static TableExprNode handleRegex(const TableExprNode &left, const String ®ex)
Handle a regex.
Class to hold the table expression nodes for an element in a set.
std::complex< Double > DComplex
static Array< String > expr2ArrayString(const String &expr, const Record &vars=Record())
static MVTime expr2Date(const String &expr, const Record &vars=Record())
Class with static members defining the TaQL style.
static double expr2Double(const String &expr, const Record &vars=Record(), const String &unit=String())
static Int64 expr2Int(const String &expr, const Record &vars=Record())
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
static void setNodePtr(TableExprNode *nodePtr)
Set the final node pointer.
static TableExprNode parse(const RecordInterface &record, const String &expression)
Convert an expression string to an expression tree.
Select-class for flex/bison scanner/parser for RecordGram.
String recordGramRemoveEscapes(const String &in)
A function to remove escaped characters.
static Array< double > expr2ArrayDouble(const String &expr, const Record &vars=Record(), const String &unit=String())
Token
Define the types of tokens in the grammar.
TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
static Array< Int64 > expr2ArrayInt(const String &expr, const Record &vars=Record())
String: the storage and methods of handling collections of characters.
static Array< DComplex > expr2ArrayComplex(const String &expr, const Record &vars=Record())
Abstract base class for Record classes.
Class to handle date/time type conversions and I/O.
static TaQLStyle theirTaQLStyle
Define the global TaQLStyle to use.
static Array< MVTime > expr2ArrayDate(const String &expr, const Record &vars=Record())
static Array< Bool > expr2ArrayBool(const String &expr, const Record &vars=Record())
static void deleteToken(TableExprNode *ptr)
Delete a token and remove from the list.