casacore
|
Select-class for flex/bison scanner/parser for RecordGram. More...
#include <RecordGram.h>
Public Types | |
enum | Token { Node , Val , Elem , Set } |
Define the types of tokens in the grammar. More... | |
Static Public Member Functions | |
static TableExprNode | parse (const RecordInterface &record, const String &expression) |
Convert an expression string to an expression tree. More... | |
static TableExprNode | parse (const Table &table, const String &expression) |
Convert an expression string to an expression tree. More... | |
static Bool | expr2Bool (const String &expr, const Record &vars=Record()) |
Evaluate an expression to the given type. More... | |
static Int64 | expr2Int (const String &expr, const Record &vars=Record()) |
static double | expr2Double (const String &expr, const Record &vars=Record(), const String &unit=String()) |
static DComplex | expr2Complex (const String &expr, const Record &vars=Record()) |
static String | expr2String (const String &expr, const Record &vars=Record()) |
static MVTime | expr2Date (const String &expr, const Record &vars=Record()) |
static Array< Bool > | expr2ArrayBool (const String &expr, const Record &vars=Record()) |
static Array< Int64 > | expr2ArrayInt (const String &expr, const Record &vars=Record()) |
static Array< double > | expr2ArrayDouble (const String &expr, const Record &vars=Record(), const String &unit=String()) |
static Array< DComplex > | expr2ArrayComplex (const String &expr, const Record &vars=Record()) |
static Array< String > | expr2ArrayString (const String &expr, const Record &vars=Record()) |
static Array< MVTime > | expr2ArrayDate (const String &expr, const Record &vars=Record()) |
static TableExprNode | handleLiteral (RecordGramVal *) |
Create a TableExprNode from a literal. More... | |
static TableExprNode | handleField (const String &name) |
Find the field name and create a TableExprNode from it. More... | |
static TableExprNode | handleFunc (const String &name, const TableExprNodeSet &arguments) |
Handle a function. More... | |
static TableExprNode | handleRegex (const TableExprNode &left, const String ®ex) |
Handle a regex. More... | |
static void | setNodePtr (TableExprNode *nodePtr) |
Set the final node pointer. More... | |
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. More... | |
static void | addToken (RecordGramVal *ptr) |
static void | addToken (TableExprNodeSet *ptr) |
static void | addToken (TableExprNodeSetElem *ptr) |
static void | deleteToken (TableExprNode *ptr) |
Delete a token and remove from the list. More... | |
static void | deleteToken (RecordGramVal *ptr) |
static void | deleteToken (TableExprNodeSet *ptr) |
static void | deleteToken (TableExprNodeSetElem *ptr) |
Static Public Attributes | |
static TaQLStyle | theirTaQLStyle |
Define the global TaQLStyle to use. More... | |
Static Private Member Functions | |
static void | deleteTokenStorage () |
Delete all tokens not deleted yet. More... | |
static TableExprNode | doParse (const String &expression) |
Do the conversion of an expression string to an expression tree. More... | |
static void | addToken (void *ptr, Token type) |
Add a token to the list of tokens to be deleted. More... | |
static void | removeToken (void *ptr) |
Remove a token from the list of tokens to be deleted. More... | |
Static Private Attributes | |
static std::map< void *, Token > | theirTokens |
static const RecordInterface * | theirRecPtr |
static const Table * | theirTabPtr |
static TableExprNode * | theirNodePtr |
static std::mutex | theirMutex |
Select-class for flex/bison scanner/parser for RecordGram.
Internal
This class is needed for the the actions in the flex scanner and bison parser. This stores the information by constructing RecordGram objects as needed and storing them in a List.
An expression can be given as a string and parsed by the parse
function. The grammar used is as much as possible the same as that for the WHERE clause in TaQL (see Note 199). It is possible to set the TaQL style to use by setting theirTaQLStyle
before calling the parse functions. A better way is to define the style with the 'USING STYLE' part of the command (similar to TaQL).
It is necessary to be able to give a record select command in ASCII. It is used by the ACSIS people.
Definition at line 175 of file RecordGram.h.
Define the types of tokens in the grammar.
Enumerator | |
---|---|
Node | |
Val | |
Elem | |
Set |
Definition at line 179 of file RecordGram.h.
|
static |
|
static |
Add a token to the list of tokens to be deleted for the possible tokens in the RecordGram.yy union.
The addToken() functions are to be called only by the yy parser (under theirMutex).
|
static |
|
static |
|
inlinestaticprivate |
Add a token to the list of tokens to be deleted.
Definition at line 273 of file RecordGram.h.
References theirTokens.
|
static |
|
static |
Delete a token and remove from the list.
The deleteToken() functions are to be called only by the yy parser (under theirMutex).
|
static |
|
static |
|
staticprivate |
Delete all tokens not deleted yet.
|
staticprivate |
Do the conversion of an expression string to an expression tree.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Evaluate an expression to the given type.
The expression can contain variables; their names and values must be defined in the record. For double values it is possible to specify the desired unit. If the expression is a scalar value, the expr2Array functions will return an array with length 1.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Find the field name and create a TableExprNode from it.
To be called only by the yy parser (under theirMutex).
|
static |
Handle a function.
To be called only by the yy parser (under theirMutex).
|
static |
Create a TableExprNode from a literal.
|
static |
Handle a regex.
|
static |
Convert an expression string to an expression tree.
The expression will operate on a series of Record objects. The given record is needed to know the type of the fields used in the expression.
|
static |
Convert an expression string to an expression tree.
The expression will operate on the given table.
|
inlinestaticprivate |
Remove a token from the list of tokens to be deleted.
Definition at line 276 of file RecordGram.h.
References theirTokens.
|
inlinestatic |
|
staticprivate |
Definition at line 283 of file RecordGram.h.
|
staticprivate |
Definition at line 282 of file RecordGram.h.
Referenced by setNodePtr().
|
staticprivate |
Definition at line 280 of file RecordGram.h.
|
staticprivate |
Definition at line 281 of file RecordGram.h.
|
static |
Define the global TaQLStyle to use.
By default it is glish style.
Definition at line 248 of file RecordGram.h.
|
staticprivate |
Definition at line 279 of file RecordGram.h.
Referenced by addToken(), and removeToken().