|
AQL.grm
|
// FILE. . . . . /home/hak/hlt/src/hlt/language/jaccapps/aql/sources/AQL.grm // EDIT BY . . . Hassan Ait-Kaci // ON MACHINE. . Hp-Dv7 // STARTED ON. . Wed Oct 17 20:53:56 2012
|
%package hlt.aql; /* ************************************************************************************* */ /* **************************** AQL GRAMMAR SPECIFICATION *************************** */ /* ************************************************************************************* */
|
This grammar defines a fully-working Algebraic Query Language (AQL)
prototype expressed using the hlt.language.design
language design tools. It includes a full polymorphic type-checker,
an intermediate code compiler, and runtime system.
AQL's Jacc and Java source documentation are given here. AQL's purely syntactic grammar in yacc format is given here. The AQL languague uses a surface syntax for an interactive query language based on:
This version of AQL can be run both interactively and in batch mode. In the former case, a user can define top-level constructs and evaluate expressions. AQL v0.00 supports 2nd-order (ML-like) type polymorphism, automatic currying, associative arrays, multiple type overloading, dynamic operator overloading, as well as (polymorphic) type definition (both aliasing and hiding), classes and objects, and (of course) monoid homomorphisms and comprehensions (N.B.: no subtyping nor inheritance yet - but this is next on my agenda...). |
/* ************************************************************************************* */
/* ************************************ DECLARATIONS *********************************** */
/* ************************************************************************************* */
%include declarations.grm
/* ************************************************************************************* */
/* ************************************ ANCILLARIES ************************************ */
/* ************************************************************************************* */
%include ancillary.grm
/* ************************************************************************************* */
/* ************************************ NODE CLASSES *********************************** */
/* ************************************************************************************* */
%include nodeclasses.grm
/* ************************************************************************************* */
/* ************************************* RULES ************************************* */
/* ************************************************************************************* */
%include rules.grm
/* ************************************************************************************* */
/* ************************************* UTILITIES ************************************* */
/* ************************************************************************************* */
class Utilities
{
static final void popList (ArrayList list)
{
if (list != null && !list.isEmpty())
list.remove(list.size()-1);
}
}
/* ************************************************************************************* */
/* ********************************* END OF GRAMMAR ******************************** */
/* ************************************************************************************* */
This file was generated on Fri Oct 19 10:29:59 PDT 2012 from file AQL.grm
by the hlt.language.tools.Hilite Java tool written by Hassan Aït-Kaci