Tracker Query Expression Syntax
In order to work effectively with the Query Expression Editor it is important to have a working knowledge of TADB structure and Basic Tracker and vocabulary.
Rules for building Query expressions include:
Syntax conventions used for building queries. |
Methods in the expression language. |
Simple non-terminals. |
Complex non-terminals. |
Named expressions. |
Syntax conventions used for building queries
The syntax conventions use different font attributes for different components of the syntax.
Syntax | Applied to | Definitions |
---|---|---|
Italic | Non-terminals. | Placeholders in the syntax and are defined elsewhere in this syntax summary. |
Bold | Terminals | Literal reserved words and symbols that must be entered as shown. Characters are always case sensitive, except for NULL, which can be any possible case combination. |
opt | Optional | Non-terminals followed by opt are always optional. Example { expression opt } Indicates an optional expression enclosed in curly braces. |
Default typeface | Terminal characters | Characters be used as terminals in expressions. |
Alternative definitions are listed on separate lines, except when prefaced with the words one of.
Methods in the expression language
The three methods that use the expression language are:
Method | Definition |
---|---|
GetValues(ItemID,AttributeList) | Retrieve a set of values from a particular item's attributes. |
ListItems(ItemType,Expression) | Find out if a particular item does or does not meet a set of criteria. |
TestItem(ItemID,Expression) | Find all the items that do match a set of criteria. |
Start Symbols
The basic building blocks that will make an expression valid are the start symbols, attribute-list and expression.
Non-terminal | Definition |
---|---|
(Start Symbols) | |
attribute-list |
list-attribute
attribute-list ; list-attribute
Note: A complete attribute-list symbol must be passed to GetValues .
|
expression |
term
! opt ( expression )
expression & expression
expression | expression
type-id { expression }
Note: A complete expression symbol must be passed to TestItem or ListItems .
|
Simple non-terminals
Simple non-terminals can be combined to form more complex non-terminals.
Non-terminal | Definition | |||
---|---|---|---|---|
Attribute-id | Identifier | |||
Digit | One of 0 1 2 3 45 6 7 8 9 | |||
Group-id | Identifier | |||
Length | Number | |||
Letter | One of _ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | |||
Named-expression-name | Identifier | |||
Number | Digit, e.g. 5 Number digit, e.g. 25 | |||
Relational | One of = < > <= >= =l =r | |||
Space | A single blank space character | |||
Start-pos | Number | |||
Text |
Depends on the:
|
|||
Timestamp literals can take one of two forms. | ||||
Absolute time stamps |
‘yyyy-mo-dd[ hh:mi:ss]'.
|
|||
yyyy | 4 digit year | |||
mo | 2 digit month | |||
dd | 2 digit date | |||
hh | hours | |||
mi | minutes | |||
ss | seconds | |||
static time stamps |
‘M:Q’.
|
|||
M | Measurement unit, which is one of the following: | |||
yy | years | |||
q | quarters | |||
m | months | |||
d | days | |||
ww | weeks | |||
h | hours | |||
n | minutes | |||
s | seconds | |||
ms | milliseconds | |||
Q | An integer quantity of time from the current time in specified measurement units. Negative numbers are used to represent previous time stamps. | |||
Type-id | Identifier | |||
Value |
Either:
‘ text ‘
null
min()
max()
|
|||
minmax |
.min( identifier )
.max( identifier )
|
Complex non-terminals
Complex definitions usually have more than one rule.
Non-terminals | Definition |
---|---|
attribute | group-id . attribute-id start-pos opt length opt |
identifier | letter digit identifier letter identifier digit identifier space identifier |
list-attribute |
attribute
group-id (sub-expression) minmaxopt
. attribute-id start-posopt lengthopt
type-id { list-attribute }
|
sub-attribute | attribute-id start-pos opt length opt |
sub-expression | sub-term sub-expression & sub-expression sub-expression | sub-expression |
sub-term | ! opt attribute Relational values ! opt sub-attribute Relational values |
term | ! opt attribute Relational values ! opt group-id (sub-expression ) minmaxopt |
values | value values, value |
Named expressions
A named expression may be a single symbol or multiple symbols and may not contain a text symbol except in the context of completing a value symbol.
The syntax for using a named expression is:
$ named-expression-symbol $
A named expression can be inserted anywhere except between ‘ characters.