Changeset: 84edef5c08d6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=84edef5c08d6 Modified Files: monetdb5/mal/mal_module.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_properties.c monetdb5/mal/mal_xml.c Branch: default Log Message:
Documentation already in website diffs (189 lines): diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c --- a/monetdb5/mal/mal_module.c +++ b/monetdb5/mal/mal_module.c @@ -18,39 +18,7 @@ */ /* - * @f mal_module - * @a M. L. Kersten - * @+ Module Management - * - * The operations are organized in separate MAL modules. - * Each module contains a local symbol table of all function names - * known to it so far. These names are stored in the global namespace - * pool and never removed to guarantee stability of remote references. - * - * All dynamically loaded functions remain in existing - * for the duration of the server session. Only the administrator can - * load functions (upon system restart). Therefore, we do not have - * to lock the dictionary table while traversing it for information. - * Global (private) variables can be realized keeping the symbol table - * and runtime stack around between requests. - * - * The symbol descriptors within a scope are organized in a list of subscopes - * indexed by the first character of the function name. - * - * The modules are still collected in a linked list to ease access - * and debug its content. It should be used with care for - * resolving unknown modules. - * - * The function symbols are collected in a global name space table, - * indexed by a small hash table. Once added, the name may not be removed - * anymore. - * Care should be taken not to generate many unique function names. - */ -/* - * @+ Module scope management - * Upon system restart, the global scope is created. It is called "root" and - * does not contain any symbol definitions. It merely functions as an anchor - * point for the modules to be added later. + * (c) M. L. Kersten */ #include "monetdb_config.h" @@ -285,7 +253,7 @@ void deleteSymbol(Module scope, Symbol p } /* - * @+ Inheritance + * Inheritance * The MAL type checker does not apply type inheritance. Such a functionality * can, however, be readily implemented with a MAL rewriter. * @@ -340,7 +308,7 @@ Module setInheritance(Module h, Module f return h; } /* - * @+ Searching the scope structure. + * Searching the scope structure. * Finding a scope is unrestricted. For modules we explicitly look for * the start of a new module scope. * All core modules are accessed through the jumptable. @@ -502,13 +470,6 @@ void dumpManualFooter(stream *f){ static int cmpModName(Module *f, Module *l){ return strcmp((*f)->name, (*l)->name); } -#if 0 -int cmpFcnName(InstrPtr f, InstrPtr l){ - if(getFunctionId(f) && getFunctionId(l)) - return strcmp(getFunctionId(f), getFunctionId(l)); - return 0; -} -#endif void dumpManual(stream *f, Module s, int recursive){ int j; Symbol t; diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c --- a/monetdb5/mal/mal_parser.c +++ b/monetdb5/mal/mal_parser.c @@ -17,28 +17,7 @@ * All Rights Reserved. */ -/* Author(s): M. L. Kersten - *The Parser Implementation - * The parser (and its target language) are designed for speed of analysis. - * For, parsing is a dominant cost-factor in applications interfering with - * MonetDB. For the language design it meant that look-ahead and ambiguity - * is avoided where-ever possible without compromising readability and - * to ease debugging. - * - * The syntax layout of a MAL program consists of a module name, - * a list of include commands, a list of function/ pattern/ command/ factory - * definitions and concludes with the statements to be executed as - * the main body of the program. All components are optional. - * - * The program may be decorated with comments, which starts with a # and - * runs till the end of the current line. Comments are retained - * in the code block for debugging, but can be removed with an optimizer to reduce space - * and interpretation overhead. - * - * @+ The lexical analyzer - * The implementation of the lexical analyzer is straightforward: - * the input is taken from a client input buffer. It is assumed that - * this buffer contains the complete MAL structure to be parsed. +/* (c): M. L. Kersten */ #include "monetdb_config.h" @@ -261,19 +240,6 @@ keyphrase2(Client cntxt, str kw) return 0; } -#if 0 /* unused */ -static inline int -keyphrase(Client cntxt, str kw, int length) -{ - skipSpace(cntxt); - if (strncmp(CURRENT(cntxt), kw, length) == 0) { - advance(cntxt, length); - return 1; - } - return 0; -} -#endif - /* * A similar approach is used for string literals. * Beware, string lengths returned include the diff --git a/monetdb5/mal/mal_properties.c b/monetdb5/mal/mal_properties.c --- a/monetdb5/mal/mal_properties.c +++ b/monetdb5/mal/mal_properties.c @@ -18,40 +18,7 @@ */ /* - * @f mal_properties - * @a M. Kersten - * @+ Property Management - * Properties can be associated with variables, MAL blocks, and MAL instructions. - * The property list is initialized upon explicit request only, e.g. by - * the frontend parser, a box manager, or as a triggered action. - * - * Every property should come with a function that accepts a reference to - * the variable and updates the property record. This function is activated - * either once or automatically upon each selection. - * - * @+ Property ADT implementation - * - * - * addProperty(O,P) adds property P to the list associated with O. If O represents - * a compound structure, e.g. a BAT, we should indicate the component as well. For - * example, addProperty(O,P,Ia,...Ib) introduces a property shared by the - * components Ia..Ib (indicated with an integer index. - * - * hasProperty(O,P) is a boolean function that merely checks existence - * hasnotProperty(O,P) is the dual operation. - * - * - * setProperty(O,P,V) changes the propety value to V. It may raise a - * PropertyUpdateViolation exception when this can not be realized. - * Note, the property value itself is changed, not the object referenced. - * - * getProperty(O,P) retrieves the current value of a property. This may involve - * calling a function or running a database query. - * - * setPropertyAttribute(O,P,A) changes the behavior of the property. For example, - * the attribute 'freeze' will result in a call to the underlying function only - * once and to cache the result for the remainder of the objects life time. - * + * (c) M. Kersten */ #include "monetdb_config.h" #include "mal_properties.h" diff --git a/monetdb5/mal/mal_xml.c b/monetdb5/mal/mal_xml.c --- a/monetdb5/mal/mal_xml.c +++ b/monetdb5/mal/mal_xml.c @@ -18,9 +18,8 @@ */ /* - * @f mal_xml - * @a M. Kersten - * @+ XML interface + * (c) M. Kersten + * XML interface * The primitives to manipulate XML objects and to prepare for XML output * is collected in this single file. It is expected to grow out into * all the primitives needed to support an XML front-end. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list