Note: This is the formal language that was designed to be simple yet verbose. Shortcuts will be created for commonly used parts of the syntax that will simplify the process of reading and writing the queries.
White space will be insignificant in LQL, and keywords will be case insensitive. The syntax for comments will be the same as for SQL – comments will begin with two hyphens ('--') and continue to the end of the line. Case sensitivity of variables will depend on the underlying database, and case sensitivity of attributes will depend on the implementation.
Another note: This language is currently under very active development, so it is not only possible but it is likely that some of the below syntax will change. The areas most subject to change are the keywords and the Modifier production.
The following are keywords:
select
,
from
,
as
,
layer
,
below
,
not
,
in
,
no
,
allow
,
order
,
gaps
, and
overlap
.
Additional terminal symbols include
.
,
(
)
[
]
{
}
^
$
||
&&
=
!=
~
!~
and the following (defined using standard regular expressions):
(In a string, a backslash escapes whatever character follows it. Also, if a string is delimited by double quotes, it signifies that the value is not tested against the attribute specified by the user, but an attribute for which it is an alias.)
Note: the operators || and && are both left-associative, with || having a lower precedence than &&.