IWF Metadata Harvester Manual II

Generic Query Language Interpreter

Manual edition 1.0 for IWF Metadata Harvester Version 1.0 January 2007

Laurence D. Finston

This is the IWF Metadata Harvester User and Reference Manual II (Scantest), edition 1.0 for the IWF Metadata Harvester 1.0. This manual was last updated on 3 January 2007. IWF Metadata Harvester is a package for metadata harvesting. The author is Laurence D. Finston. Copyright \begin{matrix}c \\ ◯ \end{matrix} 2006, 2007 IWF Wissen und Medien gGmbH

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

Short Contents

1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Utility Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 Global Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 Date Time Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 Datasource Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 Id Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 Query Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 Token Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 10 Scanner Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 11 Namespace Scan Parse. . . . . . . . . . . . . . . . . . . . . . . . . . . 15 12 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Variable Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Data Type Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Function Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Parser Token Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Parser Non-Terminal Symbol Index . . . . . . . . . . . . . . . . . . . . . 45 Parser Rule Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Filename Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 A GNU Free Documentation License . . . . . . . . . . . . . . . . . . . 50 B GNU General Public License. . . . . . . . . . . . . . . . . . . . . . . 57

Table of Contents

1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Utility Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 Mutex Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4 Global Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4.1 Main Function for GNU Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2 Main function for Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.3 Other Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

5 Date Time Type . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5.2.1 Constructor and Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.2 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.3 Showing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2.4 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

6 Datasource Type . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6.2.1 Constructors and Setting Functions . . . . . . . . . . . . . . . . . . . . . . 6 6.2.2 Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2.3 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2.4 Initializing Maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2.5 Showing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

7 Id Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

7.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

7.2.1 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2.2 Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2.3 Initialize Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2.4 Showing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

8 Query Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

8.2.1 Constructors and Setting Functions . . . . . . . . . . . . . . . . . . . . . 11 8.2.2 Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2.3 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2.4 Initializing and Flags Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2.5 Set Field Specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2.6 Generate Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2.7 Showing Query Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

9 Token Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

9.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

9.2.0.1 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

10 Scanner Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10.1 Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 10.2 Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10.2.1 Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 10.2.2 Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10.2.2.1 Initializing Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 10.3 Other functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

11 Namespace Scan Parse. . . . . . . . . . . . . . . . . . . 15

11.1 Keyword Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 11.2 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 11.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 11.4 Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

11.4.1 Map Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 11.4.2 Parser Rule Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

11.4.2.1 Functions for Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 11.4.2.2 Functions for Declarations . . . . . . . . . . . . . . . . . . . . . . . . 15 11.4.2.3 Functions for Assignments . . . . . . . . . . . . . . . . . . . . . . . . 16 11.4.2.4 Functions for Queries Scan Parse . . . . . . . . . . . . . . . . . . 16

11.4.3 The Scanning Function yylex . . . . . . . . . . . . . . . . . . . . . . . . . 16

12 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

12.1 Punctuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 12.2 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.3 Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.4 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

12.4.1 Arithmetical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.4.2 Boolean Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

12.5 Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.5.1 Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.5.2 Conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.5.3 Loops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

12.6 Start Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.7 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.8 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.9 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.10 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 12.11 Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 12.12 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 12.13 Datasource Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 12.14 Datetime Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 12.15 Query Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 12.16 String Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 12.17 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 12.18 Database Tables and Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

12.18.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.2 Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.3 Access Number. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.4 Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.5 Bibliographic Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.6 Call Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.7 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 12.18.8 Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.9 Content Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.10 Contributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.11 Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.12 Database Provider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.13 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.14 Exemplar Production Number . . . . . . . . . . . . . . . . . . . . . . 28 12.18.15 Identifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.16 Institution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.17 Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.18 Main Canonical Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.19 Permutation Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.20 Person . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 12.18.21 Physical Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.22 Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.23 Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.24 Remote Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.25 Rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.26 Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.27 Subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.28 Superordinate Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.29 Title. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12.18.30 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Bibliography. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Variable Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Data Type Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Function Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Parser Token Index . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Parser Non-Terminal Symbol Index . . . . . . . . . . . 45 Parser Rule Index . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Filename Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Appendix A GNU Free Documentation License

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

A.0.1 ADDENDUM: How to use this License for your documents

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Appendix B GNU General Public License … 57

Chapter 1: Introduction 1

1 Introduction 2 Utility Types

2.1 Mutex Type

struct Mutex_Type is declared in ‘nonwin.web’.

2.1.1 Functions

[Public functions] int Lock (void)

int Unlock (void)

These functions currently return 0 immediately.

3 Global Variables

[Global variables] Mutex_Type cerr_mutex
Mutex_Type cout_mutex
Mutex_Type time_mutex
Mutex_Type tex_mutex

These variables are declared in ‘main.web’. They are used in the GNU/Linux version of Scantest.

[Global variables] CMutex log_strm_mutex
CMutex cerr_mutex
CMutex cout_mutex

These variables are declared in ‘scantest.web’. They are used in the Microsoft Windows of Scantest.

[Global variable] unsigned short tex_file_ctr

This variable is declared in ‘main.web’. It is used in the GNU/Linux version of Scantest.

[Global variable] string tex_filename_str

This variable is declared in ‘main.web’. It is used in the GNU/Linux version of Scantest.

[Global variable] string copyright_tex_str

This variable is declared in ‘main.web’. It is used in the GNU/Linux version of Scantest.

[Global variable] ofstream tex_file_strm

This variable is declared in ‘main.web’. It is used in the GNU/Linux version of Scantest.

[Global variables] ifstream in_strm

ofstream log_strm

These variables are declared ‘scantest.web’. They are used in the Microsoft Windows version of Scantest.

4 Global Functions

4.1 Main Function for GNU Linux

[Function] int main (int argc, char* argv[])

The main function used in the GNU/Linux version of Scantest. It is the entry point of the program.

4.2 Main function for Microsoft Windows

[Function] int _tmain (int argc,
   TCHAR* argv[],
   TCHAR* envp[])

The main function used in the Microsoft Windows version of Scantest. It is the entry point of the program.

4.3 Other Functions

[Function] void yyerror (const char* s)

5 Date Time Type

Class Date_Time_Type is declared in ‘dttmtype.web’. Ctangling ‘dttmtype.web’ generates

‘dttmtype.h’. Date_Time_Node is a synonym for Date_Time_Type*. class Query_Type is
a friend of Date_Time_Type.

5.1 Data Members

[Private variables] short* year_range_begin
short* year_range_end
short* year
unsigned short* month
unsigned short* day
unsigned short* hour
unsigned short* minute
float* second

5.2 Functions

5.2.1 Constructor and Destructor

[Constructor] void Date_Time_Type (void)
[Destructor] void ~Date_Time_Type (void)

5.2.2 Operators

[Assignment operator] Date_Time_Node Date_Time_Type::operator= (const
        Date_Time_Type&)

5.2.3 Showing

[Member Function] int show (string)

5.2.4 Output

[Output operator] ostream& operator<< (ostream&, Date_Time_Type&)

6 Datasource Type

Class Datasource_Type is declared in ‘dtsrctyp.web’. Ctangling ‘dtsrctyp.web’ generates

‘dtsrctyp.h’. Datasource_Node is a synonym for Datasource_Type*.

6.1 Data Members

[Private variables] unsigned short type

string name
void* value
Scanner_Node scanner_node
[Private static variable] map<unsigned short, string> datasource_type_map
[Public static constants] unsigned short DATASOURCE_TYPE_NULL_TYPE
unsigned short DBT_TYPE
unsigned short GBV_GVK_TYPE
unsigned short TIMMS_TYPE
unsigned short DATASOURCE_FILE_TYPE

6.2 Functions

6.2.1 Constructors and Setting Functions

[Constructor] void Datasource_Type (void)

[Member Function] int set (unsigned short datasource type, Scanner_Node

sscanner node)

6.2.2 Destructor

[Destructor] void ~Datasource_Type (void)

6.2.3 Operators

[Assignment Operator] Datasource_Node operator= (const
        Datasource_Type&)

6.2.4 Initializing Maps

[Static Function] int initialize_type_maps (void)

6.2.5 Showing

[Function] int show (string, Scanner_Node)

7 Id Type

structId_Type is declared in ‘idtype.web’. Ctangling ‘idtype.web’ generates ‘idtype.h’.
Id_Node is a synonym for Id_Type*. class Scanner_Type is a friend of Id_Type.

7.1 Data Members

[Public variables] string name

void* value
unsigned short type
unsigned short subtype
Scanner_Node scanner_node
Id_Node up
Id_Node left
Id_Node right
[Public static variable] static map<unsigned short, string> subtype_map
[Public static constants] unsigned short TEX_STRING_TYPE
unsigned short SQL_STRING_TYPE
unsigned short PQF_STRING_TYPE

7.2 Functions

7.2.1 Constructors

[Constructor] void Id_Type (void)

7.2.2 Destructor

[Destructor] void ~Id_Type (void)

7.2.3 Initialize Maps

[Member Function] int initialize_subtype_map (Scanner_Node)

7.2.4 Showing

[Member Function] int show (string)

8 Query Type

Class Query_Type is declared in ‘querytyp.web’. Ctangling ‘querytyp.web’ generates

‘querytyp.h’. Query_Node is a synonym for Query_Type*.

8.1 Data Members

[Private Variables] unsigned short query_type
unsigned short field_type
unsigned short value_type
vector<unsigned short> target_types
Id_Node id_node
bool negated
string name
void* value
Query_Node up
Query_Node and_node
Query_Node or_node
Query_Node xor_node
unsigned short match_value
Scanner_Node scanner_node
unsigned short query ctr
[Private Static Variables] map<unsigned short, string> query_type_map
map<unsigned short, string> field_type_map
map<unsigned short, string> value_type_map
map<unsigned short, string> target_type_map
map<unsigned short, string> match_value_map
[Public Static Constants] unsigned short QUERY_TYPE_NULL_TYPE
unsigned short TOP_TYPE
unsigned short AND_TYPE
unsigned short OR_TYPE
unsigned short XOR_TYPE
unsigned short ACCESS_NUMBER_FIELD
unsigned short AUTHOR_FIELD
unsigned short BIBLIOGRAPHIC_TYPE_FIELD
unsigned short CALL_NUMBER_FIELD
unsigned short CLASSIFICATION_FIELD
unsigned short COMPANY_FIELD
unsigned short CONTENT_SUMMARY_FIELD
unsigned short CONTRIBUTOR_FIELD
unsigned short CREATOR_FIELD
unsigned short DATABASE_PROVIDER_FIELD
unsigned short DESCRIPTION_FIELD
unsigned short EXEMPLAR_PRODUCTION_NUMBER_FIELD
unsigned short IDENTIFIER_FIELD
unsigned short INSTITUTION_FIELD

unsigned short LANGUAGE_FIELD
unsigned short MAIN_CANONICAL_TITLE_FIELD
unsigned short PERMUTATION_PATTERN_FIELD
unsigned short PHYSICAL_DESCRIPTION_FIELD
unsigned short PERSON_FIELD
unsigned short PUBLISHER_FIELD
unsigned short RECORD_FIELD
unsigned short REMOTE_ACCESS_FIELD
unsigned short RIGHTS_FIELD
unsigned short SOURCE_FIELD
unsigned short SUBJECT_FIELD
unsigned short SUPERORDINATE_ENTITIES_FIELD
unsigned short TITLE_FIELD
unsigned short TYPE_FIELD
unsigned short AUTHOR_SURNAME_FIELD
unsigned short AUTHOR_GIVEN_NAME_FIELD
unsigned short AUTHOR_PREFIX_FIELD
unsigned short CONTRIBUTOR_SURNAME_FIELD
unsigned short CONTRIBUTOR_GIVEN_NAME_FIELD
unsigned short CONTRIBUTOR_PREFIX_FIELD
unsigned short RECORD_ID_FIELD
unsigned short RECORD_ELN_ORIGINAL_ENTRY_FIELD
unsigned short RECORD_ELN_MOST_RECENT_CHANGE_FIELD
unsigned short RECORD_ELN_STATUS_CHANGE_FIELD
unsigned short RECORD_IDENTIFICATION_NUMBER_FIELD
unsigned short RECORD_DATE_ORIGINAL_ENTRY_FIELD
unsigned short RECORD_DATE_MOST_RECENT_CHANGE_FIELD
unsigned short RECORD_DATE_STATUS_CHANGE_FIELD
unsigned short RECORD_SOURCE_ID_FIELD
unsigned short RECORD_YEAR_APPEARANCE_BEGIN_FIELD
unsigned short RECORD_YEAR_APPEARANCE_END_FIELD
unsigned short RECORD_YEAR_APPEARANCE_RAK_WB_FIELD
unsigned short RECORD_YEAR_APPEARANCE_ORIGINAL_FIELD
unsigned short INT_TYPE
unsigned short FLOAT_TYPE
unsigned short QUERY_TYPE_STRING_TYPE
unsigned short DATE_TIME_TYPE
unsigned short LOCAL_DATABASE_TARGET
unsigned short LOCAL_SERVER_TARGET
unsigned short REMOTE_DATABASE_TARGET
unsigned short REMOTE_SERVER_TARGET
unsigned short CONTAINS_VALUE
unsigned short FREETEXT_VALUE
unsigned short LIKE_VALUE
[Public Static Variables] bitset<QUERY_TYPE_BITSET_SIZE> NULL_BITSET
bitset<QUERY_TYPE_BITSET_SIZE> ACCESS_NUMBER_FLAG

bitset<QUERY_TYPE_BITSET_SIZE> AUTHOR_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> AUTHOR_SURNAME_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> AUTHOR_GIVEN_NAME_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> AUTHOR_PREFIX_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> BIBLIOGRAPHIC_TYPE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CALL_NUMBER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CLASSIFICATION_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> COMPANY_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CONTENT_SUMMARY_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CONTRIBUTOR_SURNAME_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CONTRIBUTOR_GIVEN_NAME_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CONTRIBUTOR_PREFIX_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CREATOR_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> CONTRIBUTOR_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> DATABASE_PROVIDER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> DESCRIPTION_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> EXEMPLAR_PRODUCTION_NUMBER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> IDENTIFIER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> INSTITUTION_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> LANGUAGE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> MAIN_CANONICAL_TITLE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> PERMUTATION_PATTERN_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> PERSON_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> PHYSICAL_DESCRIPTION_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> PUBLISHER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_ID_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_ELN_ORIGINAL_ENTRY_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_ELN_MOST_RECENT_CHANGE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_ELN_STATUS_CHANGE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_IDENTIFICATION_NUMBER_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_DATE_ORIGINAL_ENTRY_FLAG
bitset<QUERY_TYPE_BITSET_SIZE>
        RECORD_DATE_MOST_RECENT_CHANGE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_DATE_STATUS_CHANGE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_SOURCE_ID_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_YEAR_APPEARANCE_BEGIN_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_YEAR_APPEARANCE_END_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RECORD_YEAR_APPEARANCE_RAK_WB_FLAG
bitset<QUERY_TYPE_BITSET_SIZE>
        RECORD_YEAR_APPEARANCE_ORIGINAL_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> REMOTE_ACCESS_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> RIGHTS_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> SOURCE_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> SUBJECT_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> SUPERORDINATE_ENTITIES_FLAG
bitset<QUERY_TYPE_BITSET_SIZE> TITLE_FLAG

bitset<QUERY_TYPE_BITSET_SIZE> TYPE_FLAG

8.2 Functions

8.2.1 Constructors and Setting Functions

[Constructor] void Query_Type (void)
[Setting Function] int Query_Type::set (unsigned short qquery type,
unsigned short ffield type,
unsigned short vvalue type,
unsigned short target type,

bool nnegated, void* vvalue,

Query_Node uup,
Query_Node aand node,
Query_Node oor node,
Query_Node xxor node,

Scanner_Node sscanner node)

8.2.2 Destructor

[Destructor] void ~Query_Type (void)

8.2.3 Operators

[Assignment Operator] Query_Node operator= (const Query_Type&)

8.2.4 Initializing and Flags Maps

[Static Member Function] int initialize_type_maps (void)

[Static Member Function] int initialize_flags (void)

8.2.5 Set Field Specifier

[Member Function] int set_field_specifier (void* v,
bool traverse,
Scanner_Node sscanner_node)

8.2.6 Generate Strings

[Member functions] string generate_tex_string (Scanner_Node
scanner_node,
stringstream* tex_strm)

int generate_sql_string (Scanner_Node scanner_node,
int database_type,
stringstream* sql_strm,
stringstream* select_strm,
stringstream* from_strm,
stringstream* where_strm_0,
stringstream* where_strm_1,
bool* first_select,
bool* first_from,
bool* first_where,
bitset<QUERY_TYPE_BITSET_SIZE>* field_flags,
string* return_str)

8.2.7 Showing Query Type

[Member Function] int show (string, Scanner_Node)

9 Token Type

struct Token_Type is declared in ‘scnrtype.web’.

9.1 Data Members

[Public data members] unsigned int type

YYSTYPE value

9.2 Functions

9.2.0.1 Constructors

[Default constructor] void Token_Type (void)

[Constructor] void Token_Type (unsigned int ttype, YYSTYPE vvalue)

10 Scanner Type

Class Scanner_Type is declared in ‘scnrtype.web’.

10.1 Data Members

[Private variables] char in_filename[128]
char log_filename[128]
ifstream in_strm
map<string, Id_Type*> id_map
stack<Token_Type> token_stack
vector<float> float_vector

[Public variables] ofstream log_strm

10.2 Functions

10.2.1 Constructor

[Default constructor] void Scanner_Type (void)

10.2.2 Destructor

[Destructor] void ~Scanner_Type (void)

10.2.2.1 Initializing Maps

[Function] int initialize_id_map (void)

10.3 Other functions

[Function] Id_Node lookup (char* name,
        bool create,
        unsigned int type)

11 Namespace Scan Parse

namespace Scan_Parse is declared in ‘scanner.web’. Ctangling ‘scanner.web’ generates
‘scanner.h’.

Unless otherwise stated, the variables and datatypes described in this chapter are all declared within the namespace Scan_Parse.

11.1 Keyword Type

struct Keyword_Type is declared in ‘scanner.web’.

[Member variables] string name

int value
string value_name

11.2 Constants

[extern constants] unsigned int NULL_STATE
unsigned int COLLECTING_ID
unsigned int COLLECTING_STRING
unsigned int COLLECTING_INTEGER
unsigned int COLLECTING_FLOAT

11.3 Variables

[Variables] map<string, Keyword_Type*> keyword_map
map<unsigned int, string> token_map

11.4 Functions

11.4.1 Map Functions

[Function] int initialize_maps (void)
[Function] int show_keyword_map (Scanner_Type*)

11.4.2 Parser Rule Functions

The functions described in this section are defined in ‘prsrfncs.web’.

11.4.2.1 Functions for Variables

[Function] void* variable_func (void* v, char* name)

11.4.2.2 Functions for Declarations

[Function] Id_Node declare_variable_func (void* v,
        const unsigned short type,
        char* name)

11.4.2.3 Functions for Assignments

[Function] void* query_assignment_func_0 (void* v,
void* object,
unsigned int assignment_type,
unsigned int arg_0,
unsigned int arg_1,
void* value,
bool negate)
[Function] int query_assignment_func_1 (Scanner_Node scanner_node,
Id_Node& curr_id_node,
void*& field_specifier,
int assignment_operator,
int negation_optional,
int match_term_optional,
void*& v,
int type)
[Function] int datetime_assignment_func_0 (void* v,
Date_Time_Node& curr_date_time_node,
int specifier,
int op,
void* val,
int type)
[Function] int datetime_assignment_func_1 (void* v,
Date_Time_Node& d,
int op,
void*& vec)

11.4.2.4 Functions for Queries Scan Parse

[Function] int start_local_database_query_func (void*)
[Function] int end_query_func (void*)

11.4.3 The Scanning Function yylex

yylex is the scanner or scanning function that reads code in the Scantest language from plain-text input files and passes tokens to the parser or parsing function yyparse. See Chapter 12 [Parser], page 17.

[Global function] int yylex (YYSTYPE* value, void* parameter)

12 Parser

Tokens are also known as terminal symbols. They are the basic building blocks of the Scantest language. Tokens are returned to the function yyparse by the function yylex. See Section 11.4.3 [The Scanning Function yylex], page 16.

[Global function] int yyparse (void* YYPARSE_PARAM)

This function is generated by GNU Bison from the parser input files:

Main parser file (‘parser.w’)

Variables (‘variabls.w’)

Declarations (‘declrtns.w’)

Assignments (‘assign.w’)

datasource expressions (‘dtsrcexp.w’)
datetime expressions (‘dttmexp.w’)
query expressions (‘queryexp.w’)
string expressions (‘strings.w’)

Commands (‘commands.w’)

[Union declaration for YYSTYPE] int int_value

float float_value
char string_value[2048]
void* pointer_value

YYSTYPE is the type of the semantic value associated with a symbol or a rule. YYSTYPE can be a simple type or a union. In Scantest, it is a union. Each of the tokens and non-terminal symbols described below has a semantic value whose type is one of the members of this union.

12.1 Punctuation

[Tokens] int_value AT_SYMBOL
int_value COMMA
int_value COLON
int_value HYPHEN
int_value UNDERLINE
int_value PERCENT
int_value PERIOD
int_value SEMI_COLON
int_value OPEN_PARENTHESIS
int_value CLOSE_PARENTHESIS
int_value OPEN_BRACKET
int_value CLOSE_BRACKET

12.2 General

[Token] int_value CLEAR
[Pseudo-Token] No semantic value EMPTY

EMPTY is a pseudo-token that represents the absence of a symbol on the right-hand side of a parser rule.

12.3 Grouping

[Tokens] int_value START
int_value END

12.4 Operators

12.4.1 Arithmetical Operators

[Tokens] int_value PLUS
int_value MINUS
int_value TIMES
int_value DIVIDE

12.4.2 Boolean Operators

[Tokens] int_value XOR
int_value NOT
int_value AND_NOT
int_value OR_NOT
int_value XOR_NOT
[Non-terminal Symbols] int_value and_or_and_not
int_value or_or_or_not
int_value xor_or_xor_not

12.5 Control

12.5.1 Termination

[Tokens] int_value TERMINATE

12.5.2 Conditionals

[Tokens] int_value IF
int_value ELSE
int_value ELIF
int_value FI

12.5.3 Loops

[Tokens] int_value FOR
int_value DO

int_value WHILE
int_value AND
int_value OR

12.6 Start Symbol

⟨program⟩ ⟶ ⟨statement list⟩ TERMINATE

12.7 Statements

[Non-terminal Symbols] (No semantic value) statement_list

(No semantic value) statement

⟨statement list⟩ ⟶ EMPTY

| ⟨statement list⟩ ⟨statement⟩ ⟨statement⟩ ⟶ <declaration> SEMI_COLON

      | <assignment> SEMI_COLON
      | <command> SEMI_COLON

12.8 Data Types

[Tokens] string_value STRING
int_value INTEGER
float_value FLOAT

12.9 Variables

[Tokens] int_value VARIABLE
string_value VARIABLE_TEXT_SEGMENT
pointer_value NULL_TYPE
pointer_value DATASOURCE_TYPE
pointer_value DATETIME_TYPE
pointer_value QUERY_TYPE
pointer_value STRING_TYPE
[Non-terminal Symbols] pointer_value variable_name
string_value variable_segment_list
float_value subscript
pointer_value query_variable
pointer_value datasource_variable
pointer_value string_variable
pointer_value datetime_variable

⟨variable name⟩ ⟶ ⟨variable segment list⟩ ⟨variable segment list⟩ ⟶ VARIABLE_TEXT_SEGMENT

| ⟨variable segment list⟩ VARIABLE_TEXT_SEGMENT

| ⟨variable segment list⟩ ⟨subscript⟩ ⟨subscript⟩ ⟶ INTEGER

      | FLOAT
      | OPEN_BRACKET INTEGER CLOSE_BRACKET
      | OPEN_BRACKET FLOAT CLOSE_BRACKET
⟨query variable⟩ ⟶ VARIABLE QUERY_TYPE

| ⟨variable name⟩ QUERY_TYPE

⟨datasource variable⟩ ⟶ VARIABLE DATASOURCE_TYPE
      | ⟨variable name⟩ DATASOURCE_TYPE
⟨string variable⟩ ⟶ VARIABLE STRING_TYPE

| ⟨variable name⟩ STRING_TYPE

⟨datetime variable⟩ ⟶ VARIABLE DATETIME_TYPE

| ⟨variable name⟩ DATETIME_TYPE

12.10 Declarations

[Tokens] int_value DATASOURCE_DECLARATOR
int_value DATETIME_DECLARATOR
int_value STRING_DECLARATOR
int_value QUERY_DECLARATOR

[Non-terminal Symbols] int_value declaration

int_value query_declaration
int_value datasource_declaration
int_value string_declaration
int_value datetime_declaration
string_value variable_declaration_segment_list
int_value subscript_placeholder

⟨declaration⟩ ⟶ ⟨query declaration⟩ | ⟨string declaration⟩ | ⟨datasource declaration⟩ | ⟨datetime declaration⟩

⟨variable declaration segment list⟩ ⟶ VARIABLE_TEXT_SEGMENT | ⟨variable declaration segment list⟩ VARIABLE_TEXT_SEGMENT | ⟨variable declaration segment list⟩ ⟨subscript placeholder⟩

⟨subscript placeholder⟩ ⟶ OPEN_BRACKET CLOSE_BRACKET

⟨query declaration⟩ ⟶ QUERY_DECLARATOR ⟨variable declaration segment list⟩ ⟨datasource declaration⟩ ⟶ DATASOURCE_DECLARATOR ⟨variable declaration segment list⟩ ⟨string declaration⟩ ⟶ STRING_DECLARATOR ⟨variable declaration segment list⟩ ⟨datetime declaration⟩ ⟶ DATETIME_DECLARATOR ⟨variable declaration segment list⟩

12.11 Assignments

[Tokens] int_value ASSIGN
int_value PLUS_ASSIGN
int_value MINUS_ASSIGN
int_value TIMES_ASSIGN
int_value DIVIDE_ASSIGN
int_value AND_ASSIGN
int_value OR_ASSIGN
int_value XOR_ASSIGN
int_value NOT_ASSIGN

[Non-terminal Symbols] int_value assignment

int_value negation_optional
int_value assign_or_plus_assign
int_value assignment_operator
pointer_value query_assignment
pointer_value datasource_assignment
string_value string_assignment
pointer_value datetime_assignment

⟨negation optional⟩ ⟶ EMPTY

      | NOT

⟨match term optional⟩ ⟶ EMPTY

      | CONTAINS
      | FREETEXT
      | LIKE

⟨assign or plus assign⟩ ⟶ ASSIGN

      | PLUS_ASSIGN

⟨assignment operator⟩ ⟶ ASSIGN

      | PLUS_ASSIGN
      | OR_ASSIGN
      | XOR_ASSIGN
      | NOT_ASSIGN

⟨assignment⟩ ⟶ ⟨query assignment⟩ | ⟨datasource assignment⟩ | ⟨string assignment⟩ | ⟨datetime assignment⟩ ⟨field specifier⟩ ⟶ ⟨field designator⟩ ⟨field qualifier list⟩

⟨field designator⟩ ⟶ ACCESS_NUMBER

| AUTHOR
| BIBLIOGRAPHIC_TYPE
| CALL_NUMBER
| CLASSIFICATION
| COMPANY
| CONTENT_SUMMARY
| CONTRIBUTOR
| CREATOR
| DATABASE_PROVIDER
| DESCRIPTION
| EXEMPLAR_PRODUCTION_NUMBER
| IDENTIFIER
| INSTITUTION
| LANGUAGE
| MAIN_CANONICAL_TITLE
| PERMUTATION_PATTERN
| PERSON
| PHYSICAL_DESCRIPTION
| PUBLISHER
| RECORD
| REMOTE_ACCESS
| RIGHTS
| SOURCE
| SUBJECT
| SUPERORDINATE_ENTITIES
| TITLE
| TYPE

⟨field qualifier list⟩ ⟶ EMPTY ⟨field qualifier list⟩ ⟶ ⟨field qualifier list⟩ PERIOD ⟨field qualifier⟩ ⟨field qualifier⟩ ⟶ ID

| SURNAME
| GIVEN_NAME
| PREFIX
| ELN_ORIGINAL_ENTRY
| ELN_MOST_RECENT_CHANGE
| ELN_STATUS_CHANGE
| IDENTIFICATION_NUMBER
| DATE_ORIGINAL_ENTRY
| DATE_MOST_RECENT_CHANGE
| DATE_STATUS_CHANGE
| SOURCE_ID

| YEAR_APPEARANCE_BEGIN
| YEAR_APPEARANCE_END
| YEAR_APPEARANCE_RAK_WB
| YEAR_APPEARANCE_ORIGINAL

⟨datasource assignment⟩ ⟶ ⟨datasource variable⟩ ASSIGN ⟨datasource expression⟩ | ⟨datasource variable⟩ ASSIGN DBT | ⟨datasource variable⟩ ASSIGN GBV_GVK | ⟨datasource variable⟩ ASSIGN TIMMS

| ⟨datasource variable⟩ ASSIGN DATASOURCE_FILE

⟨string assignment⟩ ⟶ ⟨string variable⟩ ASSIGN ⟨string expression⟩ | ⟨string variable⟩ ASSIGN TEX ⟨query expression⟩ | ⟨string variable⟩ ASSIGN SQL OAI ⟨query expression⟩ | ⟨string variable⟩ ASSIGN SQL PICA ⟨query expression⟩

⟨datetime assignment⟩ ⟶ ⟨datetime variable⟩ ASSIGN ⟨datetime expression⟩ | ⟨datetime variable⟩ COLON ⟨datetime specifier⟩ ⟨assignment operator⟩ INTEGER | ⟨datetime variable⟩ COLON ⟨datetime specifier⟩ ⟨assignment operator⟩ FLOAT

⟨datetime specifier⟩ ⟶ YEAR_RANGE_BEGIN

| YEAR_RANGE_END
| YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND

⟨query assignment⟩ ⟶ ⟨query variable⟩ ASSIGN ⟨query expression⟩ | ⟨query variable⟩ ⟨assign or plus assign⟩ LOCAL DATABASE | ⟨query variable⟩ ⟨assign or plus assign⟩ LOCAL SERVER | ⟨query variable⟩ ⟨assign or plus assign⟩ REMOTE DATABASE | ⟨query variable⟩ ⟨assign or plus assign⟩ REMOTE SERVER | ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩

⟨negation optional⟩ ⟨match term optional⟩ ⟨query expression⟩ | ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩

⟨negation optional⟩ ⟨match term optional⟩ ⟨datetime expression⟩ | ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩

⟨negation optional⟩ ⟨match term optional⟩ ⟨query expression⟩ | ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩

⟨negation optional⟩ ⟨match term optional⟩ ⟨datetime expression⟩

12.12 Commands

[Non-terminal Symbols] int_value command

⟨message or errmessage⟩ ⟶ MESSAGE

| ERRMESSAGE

⟨command⟩ ⟶ ⟨message or errmessage⟩ STRING

| PAUSE

| SHOW ⟨query variable⟩ | SHOW ⟨datasource variable⟩ | SHOW ⟨datetime variable⟩ | SHOW ⟨string expression⟩ | OUTPUT TEX ⟨string expression⟩

12.13 Datasource Expressions

[Tokens] int_value DATASOURCE_FILE
int_value LOCAL
int_value REMOTE
int_value DATABASE
int_value SERVER
int_value DBT
int_value GBV_GVK
int_value TIMMS
[Non-terminal Symbols] pointer_value datasource_primary
pointer_value datasource_secondary
pointer_value datasource_tertiary
pointer_value datasource_expression

⟨datasource primary⟩ ⟶ ⟨datasource variable⟩

| OPEN_PARENTHESIS datasource expression CLOSE_PARENTHESIS

⟨datasource secondary⟩ ⟶ datasource primary ⟨datasource tertiary⟩ ⟶ ⟨datasource secondary⟩ ⟨datasource expression⟩ ⟶ ⟨datasource tertiary⟩

12.14 Datetime Expressions

[Tokens] int_value YEAR_RANGE_BEGIN
int_value YEAR_RANGE_END
int_value YEAR
int_value MONTH
int_value DAY
int_value HOUR
int_value MINUTE
int_value SECOND
[Non-terminal Symbols] int_value datetime_specifier
pointer_value datetime_primary
pointer_value datetime_secondary
pointer_value datetime_tertiary
pointer_value datetime_expression
pointer_value datetime_element_list

⟨datetime primary⟩ ⟶ ⟨datetime variable⟩

      | OPEN_PARENTHESIS ⟨datetime expression⟩ CLOSE_PARENTHESIS

| ⟨datetime element list⟩ ⟨datetime secondary⟩ ⟶ ⟨datetime primary⟩ ⟨datetime tertiary⟩ ⟶ ⟨datetime secondary⟩ ⟨datetime expression⟩ ⟶ ⟨datetime tertiary⟩

⟨datetime element list⟩ ⟶ INTEGER COLON

      | FLOAT COLON

| ⟨datetime element list⟩ INTEGER COLON | ⟨datetime element list⟩ FLOAT COLON

12.15 Query Expressions

[Tokens] int_value CONTAINS
int_value FREETEXT
int_value LIKE
[Non-terminal Symbols] int_value match_term_optional
pointer_value query_primary
pointer_value query_secondary
pointer_value query_tertiary
pointer_value query_expression

⟨query primary⟩ ⟶ ⟨query variable⟩

      | OPEN_PARENTHESIS ⟨query expression⟩ CLOSE_PARENTHESIS
      | STRING

      | INTEGER
      | FLOAT

⟨query secondary⟩ ⟶ ⟨query primary⟩

| ⟨query secondary⟩ ⟨and or and not⟩ ⟨query primary⟩ ⟨query tertiary⟩ ⟶ ⟨query secondary⟩

| ⟨query tertiary⟩ ⟨xor or xor not⟩ ⟨query secondary⟩ ⟨query expression⟩ ⟶ ⟨query tertiary⟩

| ⟨query expression⟩ ⟨or or or not⟩ ⟨query tertiary⟩

⟨and or and not⟩ ⟶ AND

      | AND_NOT

⟨or or or not⟩ ⟶ OR

      | OR_NOT

⟨xor or xor not⟩ ⟶ XOR

      | ⟶ XOR_NOT

12.16 String Expressions

[Tokens] int_value OAI
int_value PICA
int_value TEX
int_value SQL
[Non-terminal Symbols] string_value string_primary
string_value string_secondary
string_value string_tertiary
string_value string_expression

⟨string primary⟩ ⟶ ⟨string variable⟩

      | STRING
      | OPEN_PARENTHESIS ⟨string expression⟩ CLOSE_PARENTHESIS

⟨string secondary⟩ ⟶ ⟨string primary⟩ ⟨string tertiary⟩ ⟶ ⟨string secondary⟩ ⟨string expression⟩ ⟶ ⟨string tertiary⟩

12.17 Output

[Tokens] int_value OUTPUT
int_value MESSAGE
int_value ERRMESSAGE
int_value PAUSE
int_value SHOW
[Non-terminal Symbols] int_value message_or_errmessage

12.18 Database Tables and Columns

12.18.1 General

[Tokens] int_value ID
int_value ELN_ORIGINAL_ENTRY
int_value ELN_MOST_RECENT_CHANGE
int_value ELN_STATUS_CHANGE
int_value IDENTIFICATION_NUMBER
int_value DATE_ORIGINAL_ENTRY
int_value DATE_MOST_RECENT_CHANGE
int_value DATE_STATUS_CHANGE
int_value SOURCE_ID
int_value YEAR_APPEARANCE_BEGIN
int_value YEAR_APPEARANCE_END
int_value YEAR_APPEARANCE_RAK_WB
int_value YEAR_APPEARANCE_ORIGINAL
[Non-terminal Symbols] pointer_value field_specifier
int_value field_designator
pointer_value field_qualifier_list
int_value field_qualifier

12.18.2 Names

[Tokens] int_value GIVEN_NAME
int_value PREFIX
int_value SURNAME

12.18.3 Access Number

[Tokens] int_value ACCESS_NUMBER

12.18.4 Author

[Tokens] int_value AUTHOR
int_value AUTHOR_GIVEN_NAME
int_value AUTHOR_PREFIX
int_value AUTHOR_SURNAME

12.18.5 Bibliographic Type

[Tokens] int_value BIBLIOGRAPHIC_TYPE

12.18.6 Call Number

[Tokens] int_value CALL_NUMBER

12.18.7 Classification

[Tokens] int_value CLASSIFICATION

12.18.8 Company

[Tokens] int_value COMPANY

12.18.9 Content Summary

[Tokens] int_value CONTENT_SUMMARY

12.18.10 Contributor

[Tokens] int_value CONTRIBUTOR
int_value CONTRIBUTOR_GIVEN_NAME
int_value CONTRIBUTOR_PREFIX
int_value CONTRIBUTOR_SURNAME

12.18.11 Creator

[Tokens] int_value CREATOR

12.18.12 Database Provider

[Tokens] int_value DATABASE_PROVIDER

12.18.13 Description

[Tokens] int_value DESCRIPTION

12.18.14 Exemplar Production Number

[Tokens] int_value EXEMPLAR_PRODUCTION_NUMBER

12.18.15 Identifier

[Tokens] int_value IDENTIFIER

12.18.16 Institution

[Tokens] int_value INSTITUTION

12.18.17 Language

[Tokens] int_value LANGUAGE

12.18.18 Main Canonical Title

[Tokens] int_value MAIN_CANONICAL_TITLE

12.18.19 Permutation Pattern

[Tokens] int_value PERMUTATION_PATTERN

12.18.20 Person

[Tokens] int_value PERSON

12.18.21 Physical Description

[Tokens] int_value PHYSICAL_DESCRIPTION

12.18.22 Publisher

[Tokens] int_value PUBLISHER

12.18.23 Records

[Tokens] int_value RECORD

12.18.24 Remote Access

[Tokens] int_value REMOTE_ACCESS

12.18.25 Rights

[Tokens] int_value RIGHTS

12.18.26 Source

[Tokens] int_value SOURCE

12.18.27 Subject

[Tokens] int_value SUBJECT

12.18.28 Superordinate Entities

[Tokens] int_value SUPERORDINATE_ENTITIES

12.18.29 Title

[Tokens] int_value TITLE

12.18.30 Type

[Tokens] int_value TYPE

Chapter 12: Glossary 30

Glossary

Chapter 12: Abbreviations 31

Abbreviations

Chapter 12: Bibliography 32

Bibliography

Chapter 12: Concept Index 33

Concept Index

E

entry point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

F

FDL, GNU Free Documentation License . . . . . . . 50

G

GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 GPL, GNU General Public License . . . . . . . . . . . . 57

M

main function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

P

parser rule, right-hand side . . . . . . . . . . . . . . . . . . . 18 pseudo-token (EMPTY) . . . . . . . . . . . . . . . . . . . . . . . . 18

R

right-hand side (parser rule) . . . . . . . . . . . . . . . . . . 18

S

semantic value, rule . . . . . . . . . . . . . . . . . . . . . . . . . . 17 semantic value, symbol . . . . . . . . . . . . . . . . . . . . . . . 17

T

terminal symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

W

Windows, Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Chapter 12: Variable Index 34

Variable Index

A

ACCESS_NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ACCESS_NUMBER_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . 8 ACCESS_NUMBER_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . 9 AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 AND_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 and_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 AND_NOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 and_or_and_not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 AND_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 assign_or_plus_assign . . . . . . . . . . . . . . . . . . . . . 21 assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 assignment_operator. . . . . . . . . . . . . . . . . . . . . . . . 21 AT_SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 AUTHOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 AUTHOR_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 AUTHOR_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 AUTHOR_GIVEN_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . 27

AUTHOR_GIVEN_NAME_FIELD . . . . . . . . . . . . . . . . . . . . 9
AUTHOR_GIVEN_NAME_FLAG . . . . . . . . . . . . . . . . . . . . 10

AUTHOR_PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 AUTHOR_PREFIX_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . 9 AUTHOR_PREFIX_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . 10 AUTHOR_SURNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 AUTHOR_SURNAME_FIELD. . . . . . . . . . . . . . . . . . . . . . . . 9 AUTHOR_SURNAME_FLAG. . . . . . . . . . . . . . . . . . . . . . . . 10

B

BIBLIOGRAPHIC_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . 27

BIBLIOGRAPHIC_TYPE_FIELD . . . . . . . . . . . . . . . . . . . 8
BIBLIOGRAPHIC_TYPE_FLAG . . . . . . . . . . . . . . . . . . . 10

C

CALL_NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 CALL_NUMBER_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 CALL_NUMBER_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 cerr_mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 CLASSIFICATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 CLASSIFICATION_FIELD. . . . . . . . . . . . . . . . . . . . . . . . 8 CLASSIFICATION_FLAG. . . . . . . . . . . . . . . . . . . . . . . . 10 CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 CLOSE_BRACKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 CLOSE_PARENTHESIS . . . . . . . . . . . . . . . . . . . . . . . . . . 17 COLLECTING_FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 COLLECTING_ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 COLLECTING_INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . 15 COLLECTING_STRING . . . . . . . . . . . . . . . . . . . . . . . . . . 15 COLON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 COMMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 COMPANY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 COMPANY_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 COMPANY_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 CONTAINS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 CONTAINS_VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CONTENT_SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 CONTENT_SUMMARY_FIELD. . . . . . . . . . . . . . . . . . . . . . . 8 CONTENT_SUMMARY_FLAG. . . . . . . . . . . . . . . . . . . . . . . 10 CONTRIBUTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 CONTRIBUTOR_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 CONTRIBUTOR_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

CONTRIBUTOR_GIVEN_NAME . . . . . . . . . . . . . . . . . . . . 28
CONTRIBUTOR_GIVEN_NAME_FIELD . . . . . . . . . . . . . . . 9
CONTRIBUTOR_GIVEN_NAME_FLAG . . . . . . . . . . . . . . . 10

CONTRIBUTOR_PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . 28

CONTRIBUTOR_PREFIX_FIELD . . . . . . . . . . . . . . . . . . . 9
CONTRIBUTOR_PREFIX_FLAG . . . . . . . . . . . . . . . . . . . 10

CONTRIBUTOR_SURNAME. . . . . . . . . . . . . . . . . . . . . . . . 28

CONTRIBUTOR_SURNAME_FIELD . . . . . . . . . . . . . . . . . . 9
CONTRIBUTOR_SURNAME_FLAG . . . . . . . . . . . . . . . . . . 10

copyright_tex_str . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 cout_mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 CREATOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 CREATOR_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 CREATOR_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

D

DATABASE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 DATABASE_PROVIDER . . . . . . . . . . . . . . . . . . . . . . . . . . 28

DATABASE_PROVIDER_FIELD . . . . . . . . . . . . . . . . . . . . 8
DATABASE_PROVIDER_FLAG . . . . . . . . . . . . . . . . . . . . 10

datasource_assignment . . . . . . . . . . . . . . . . . . . . . 21

datasource_declaration . . . . . . . . . . . . . . . . . . . . 20

DATASOURCE_DECLARATOR . . . . . . . . . . . . . . . . . . . . . 20 datasource_expression . . . . . . . . . . . . . . . . . . . . . 24 DATASOURCE_FILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 DATASOURCE_FILE_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 6 datasource_primary . . . . . . . . . . . . . . . . . . . . . . . . . 24 datasource_secondary. . . . . . . . . . . . . . . . . . . . . . . 24 datasource_tertiary. . . . . . . . . . . . . . . . . . . . . . . . 24 DATASOURCE_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Datasource_Type::DATASOURCE_FILE_TYPE . . . . . 6
Datasource_Type::datasource_type_map . . . . . . 6
Datasource_Type::DATASOURCE_TYPE_NULL_TYPE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Datasource_Type::DBT_TYPE . . . . . . . . . . . . . . . . . . 6
Datasource_Type::GBV_GVK_TYPE . . . . . . . . . . . . . . 6

Datasource_Type::name. . . . . . . . . . . . . . . . . . . . . . . 6

Datasource_Type::scanner_node . . . . . . . . . . . . . . 6
Datasource_Type::TIMMS_TYPE . . . . . . . . . . . . . . . . 6

Datasource_Type::type. . . . . . . . . . . . . . . . . . . . . . . 6

Datasource_Type::value . . . . . . . . . . . . . . . . . . . . . 6

datasource_type_map . . . . . . . . . . . . . . . . . . . . . . . . . 6

DATASOURCE_TYPE_NULL_TYPE . . . . . . . . . . . . . . . . . . 6

datasource_variable. . . . . . . . . . . . . . . . . . . . . . . . 19

DATE_MOST_RECENT_CHANGE . . . . . . . . . . . . . . . . . . . 27

DATE_ORIGINAL_ENTRY. . . . . . . . . . . . . . . . . . . . . . . . 27 DATE_STATUS_CHANGE . . . . . . . . . . . . . . . . . . . . . . . . . 27 DATE_TIME_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Date_Time_Type::day . . . . . . . . . . . . . . . . . . . . . . . . . 5 Date_Time_Type::hour. . . . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::minute . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::month. . . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::second . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::year. . . . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::year_range_begin. . . . . . . . . . . 5
Date_Time_Type::year_range_end . . . . . . . . . . . . . 5

datetime_assignment. . . . . . . . . . . . . . . . . . . . . . . . 21 datetime_declaration. . . . . . . . . . . . . . . . . . . . . . . 20 DATETIME_DECLARATOR. . . . . . . . . . . . . . . . . . . . . . . . 20 datetime_element_list . . . . . . . . . . . . . . . . . . . . . 25 datetime_expression. . . . . . . . . . . . . . . . . . . . . . . . 25 datetime_primary . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 datetime_secondary . . . . . . . . . . . . . . . . . . . . . . . . . 25 datetime_specifier . . . . . . . . . . . . . . . . . . . . . . . . . 25 datetime_tertiary . . . . . . . . . . . . . . . . . . . . . . . . . . 25 DATETIME_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 datetime_variable . . . . . . . . . . . . . . . . . . . . . . . . . . 19 day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 DAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 DBT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 DBT_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 DESCRIPTION_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 DESCRIPTION_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 DIVIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 DIVIDE_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

E

ELIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

ELN_MOST_RECENT_CHANGE . . . . . . . . . . . . . . . . . . . . 27

ELN_ORIGINAL_ENTRY . . . . . . . . . . . . . . . . . . . . . . . . . 27 ELN_STATUS_CHANGE . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 EMPTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 ERRMESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

EXEMPLAR_PRODUCTION_NUMBER . . . . . . . . . . . . . . . . 28
EXEMPLAR_PRODUCTION_NUMBER_FIELD. . . . . . . . . . . 8
EXEMPLAR_PRODUCTION_NUMBER_FLAG . . . . . . . . . . . 10

F

FI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 field_designator . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 field_qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 field_qualifier_list. . . . . . . . . . . . . . . . . . . . . . . 27 field_specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 field_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 field_type_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 FLOAT_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 float_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 float_vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 FREETEXT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 FREETEXT_VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

G

GBV_GVK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 GBV_GVK_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 GIVEN_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

H

hour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 HOUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 HYPHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

I

ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 id_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 id_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Id_Type::left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

                                                Id_Type::PQF_STRING_TYPE . . . . . . . . . . . . . . . . . . . 7

Id_Type::right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::scanner_node. . . . . . . . . . . . . . . . . . . . . . . 7

                                                Id_Type::SQL_STRING_TYPE . . . . . . . . . . . . . . . . . . . 7

Id_Type::subtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::subtype_map. . . . . . . . . . . . . . . . . . . . . . . . 7

                                                Id_Type::TEX_STRING_TYPE . . . . . . . . . . . . . . . . . . . 7

Id_Type::type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 IDENTIFICATION_NUMBER . . . . . . . . . . . . . . . . . . . . . 27 IDENTIFIER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 IDENTIFIER_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 IDENTIFIER_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 in_filename[128] . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 in_strm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 14 INSTITUTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 INSTITUTION_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 INSTITUTION_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 INT_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 int_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 INTEGER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

K

keyword_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

L

LANGUAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 LANGUAGE_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 LANGUAGE_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 LIKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 LIKE_VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 LOCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 LOCAL_DATABASE_TARGET. . . . . . . . . . . . . . . . . . . . . . . 9 LOCAL_SERVER_TARGET . . . . . . . . . . . . . . . . . . . . . . . . . 9 log_filename[128] . . . . . . . . . . . . . . . . . . . . . . . . . . 14 log_strm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 14 log_strm_mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

M

MAIN_CANONICAL_TITLE. . . . . . . . . . . . . . . . . . . . . . . 28

MAIN_CANONICAL_TITLE_FIELD . . . . . . . . . . . . . . . . . 9
MAIN_CANONICAL_TITLE_FLAG . . . . . . . . . . . . . . . . . 10

match_term_optional. . . . . . . . . . . . . . . . . . . . . . . . 25 match_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 match_value_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MESSAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 message_or_errmessage . . . . . . . . . . . . . . . . . . . . . 26 MINUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 MINUS_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 minute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 MINUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 MONTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

N

name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 7, 8, 15 negated. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 negation_optional . . . . . . . . . . . . . . . . . . . . . . . . . . 21 NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 NOT_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 NULL_BITSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 NULL_STATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 NULL_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

O

OAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 OPEN_BRACKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 OPEN_PARENTHESIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 OR_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 or_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 OR_NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 or_or_or_not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 OR_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

P

PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PERCENT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 PERIOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 PERMUTATION_PATTERN. . . . . . . . . . . . . . . . . . . . . . . . 28

PERMUTATION_PATTERN_FIELD . . . . . . . . . . . . . . . . . . 9
PERMUTATION_PATTERN_FLAG . . . . . . . . . . . . . . . . . . 10

PERSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 PERSON_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 PERSON_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 PHYSICAL_DESCRIPTION. . . . . . . . . . . . . . . . . . . . . . . 29

PHYSICAL_DESCRIPTION_FIELD . . . . . . . . . . . . . . . . . 9
PHYSICAL_DESCRIPTION_FLAG . . . . . . . . . . . . . . . . . 10

PICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PLUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 PLUS_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 pointer_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 PQF_STRING_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 PUBLISHER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 PUBLISHER_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 PUBLISHER_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Q

query_assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 query_declaration . . . . . . . . . . . . . . . . . . . . . . . . . . 20 QUERY_DECLARATOR . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 query_expression . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 query_primary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 query_secondary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 query_tertiary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 query_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 QUERY_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Query_Type::ACCESS_NUMBER_FIELD . . . . . . . . . . . . 8
Query_Type::ACCESS_NUMBER_FLAG . . . . . . . . . . . . . 9

Query_Type::and_node. . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type::AND_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::AUTHOR_FIELD . . . . . . . . . . . . . . . . . . . 8
Query_Type::AUTHOR_FLAG . . . . . . . . . . . . . . . . . . . . 9
Query_Type::AUTHOR_GIVEN_NAME_FIELD . . . . . . . 8
Query_Type::AUTHOR_GIVEN_NAME_FLAG. . . . . . . . . 9
Query_Type::AUTHOR_PREFIX_FIELD . . . . . . . . . . . . 8
Query_Type::AUTHOR_PREFIX_FLAG . . . . . . . . . . . . . 9
Query_Type::AUTHOR_SURNAME_FIELD. . . . . . . . . . . 8
Query_Type::AUTHOR_SURNAME_FLAG . . . . . . . . . . . . 9
Query_Type::BIBLIOGRAPHIC_TYPE_FIELD . . . . . . 8
Query_Type::BIBLIOGRAPHIC_TYPE_FLAG . . . . . . . 9
Query_Type::CALL_NUMBER_FIELD . . . . . . . . . . . . . . 8
Query_Type::CALL_NUMBER_FLAG . . . . . . . . . . . . . . . 9
Query_Type::CLASSIFICATION_FIELD. . . . . . . . . . . 8
Query_Type::CLASSIFICATION_FLAG . . . . . . . . . . . . 9
Query_Type::COMPANY_FIELD . . . . . . . . . . . . . . . . . . 8
Query_Type::COMPANY_FLAG . . . . . . . . . . . . . . . . . . . 9
Query_Type::CONTAINS_VALUE . . . . . . . . . . . . . . . . . 8
Query_Type::CONTENT_SUMMARY_FIELD. . . . . . . . . . 8
Query_Type::CONTENT_SUMMARY_FLAG. . . . . . . . . . . 9
Query_Type::CONTRIBUTOR_FIELD . . . . . . . . . . . . . . 8
Query_Type::CONTRIBUTOR_FLAG . . . . . . . . . . . . . . . 9
Query_Type::CONTRIBUTOR_GIVEN_NAME_FIELD . . 8
Query_Type::CONTRIBUTOR_GIVEN_NAME_FLAG . . . 9
Query_Type::CONTRIBUTOR_PREFIX_FIELD . . . . . . 8

Query_Type::CONTRIBUTOR_PREFIX_FLAG . . . . . . . 9
Query_Type::CONTRIBUTOR_SURNAME_FIELD . . . . . 8
Query_Type::CONTRIBUTOR_SURNAME_FLAG . . . . . . 9
Query_Type::CREATOR_FIELD . . . . . . . . . . . . . . . . . . 8
Query_Type::CREATOR_FLAG . . . . . . . . . . . . . . . . . . . 9
Query_Type::DATABASE_PROVIDER_FIELD . . . . . . . 8
Query_Type::DATABASE_PROVIDER_FLAG. . . . . . . . . 9
Query_Type::DATE_TIME_TYPE . . . . . . . . . . . . . . . . . 8
Query_Type::DESCRIPTION_FIELD . . . . . . . . . . . . . . 8
Query_Type::DESCRIPTION_FLAG . . . . . . . . . . . . . . . 9
Query_Type::EXEMPLAR_PRODUCTION_NUMBER_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::EXEMPLAR_PRODUCTION_NUMBER_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Query_Type::field_type . . . . . . . . . . . . . . . . . . . . . 8
Query_Type::field_type_map . . . . . . . . . . . . . . . . . 8
Query_Type::FLOAT_TYPE . . . . . . . . . . . . . . . . . . . . . 8
Query_Type::FREETEXT_VALUE . . . . . . . . . . . . . . . . . 8

Query_Type::id_node . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::IDENTIFIER_FIELD . . . . . . . . . . . . . . . 8
Query_Type::IDENTIFIER_FLAG . . . . . . . . . . . . . . . . 9
Query_Type::INSTITUTION_FIELD . . . . . . . . . . . . . . 8
Query_Type::INSTITUTION_FLAG . . . . . . . . . . . . . . . 9

Query_Type::INT_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::LANGUAGE_FIELD . . . . . . . . . . . . . . . . . 8
Query_Type::LANGUAGE_FLAG . . . . . . . . . . . . . . . . . . 9
Query_Type::LIKE_VALUE . . . . . . . . . . . . . . . . . . . . . 8
Query_Type::LOCAL_DATABASE_TARGET. . . . . . . . . . 8
Query_Type::LOCAL_SERVER_TARGET . . . . . . . . . . . . 8
Query_Type::MAIN_CANONICAL_TITLE_FIELD . . . . 8
Query_Type::MAIN_CANONICAL_TITLE_FLAG . . . . . 9
Query_Type::match_value . . . . . . . . . . . . . . . . . . . . 8
Query_Type::match_value_map . . . . . . . . . . . . . . . . 8

Query_Type::name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type::negated . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::NULL_BITSET . . . . . . . . . . . . . . . . . . . . 9

Query_Type::or_node . . . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type::OR_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::PERMUTATION_PATTERN_FIELD . . . . . 8
Query_Type::PERMUTATION_PATTERN_FLAG . . . . . . 9
Query_Type::PERSON_FIELD . . . . . . . . . . . . . . . . . . . 8
Query_Type::PERSON_FLAG . . . . . . . . . . . . . . . . . . . . 9
Query_Type::PHYSICAL_DESCRIPTION_FIELD . . . . 8
Query_Type::PHYSICAL_DESCRIPTION_FLAG . . . . . 9
Query_Type::PUBLISHER_FIELD . . . . . . . . . . . . . . . . 8
Query_Type::PUBLISHER_FLAG . . . . . . . . . . . . . . . . . 9

Query_Type::query_ctr. . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::query_type . . . . . . . . . . . . . . . . . . . . . 8
Query_Type::query_type_map . . . . . . . . . . . . . . . . . 8
Query_Type::QUERY_TYPE_NULL_TYPE. . . . . . . . . . . 8
Query_Type::QUERY_TYPE_STRING_TYPE. . . . . . . . . 8
Query_Type::RECORD_DATE_MOST_RECENT_CHANGE_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::RECORD_DATE_MOST_RECENT_CHANGE_

FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Query_Type::RECORD_DATE_ORIGINAL_ENTRY_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_DATE_ORIGINAL_ENTRY_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_DATE_STATUS_CHANGE_FIELD

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_DATE_STATUS_CHANGE_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_ELN_MOST_RECENT_CHANGE_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_ELN_MOST_RECENT_CHANGE_

FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_ELN_ORIGINAL_ENTRY_FIELD

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_ELN_ORIGINAL_ENTRY_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_ELN_STATUS_CHANGE_FIELD

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_ELN_STATUS_CHANGE_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_FIELD . . . . . . . . . . . . . . . . . . . 8
                                                Query_Type::RECORD_FLAG . . . . . . . . . . . . . . . . . . . . 9
                                                Query_Type::RECORD_ID_FIELD . . . . . . . . . . . . . . . . 8
                                                Query_Type::RECORD_ID_FLAG . . . . . . . . . . . . . . . . . 9
                                                Query_Type::RECORD_IDENTIFICATION_NUMBER_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_IDENTIFICATION_NUMBER_

FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_SOURCE_ID_FIELD. . . . . . . . . 8
                                                Query_Type::RECORD_SOURCE_ID_FLAG. . . . . . . . . . 9
                                                Query_Type::RECORD_YEAR_APPEARANCE_BEGIN_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_YEAR_APPEARANCE_BEGIN_

FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_YEAR_APPEARANCE_END_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_YEAR_APPEARANCE_END_FLAG

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_YEAR_APPEARANCE_

ORIGINAL_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_YEAR_APPEARANCE_

ORIGINAL_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::RECORD_YEAR_APPEARANCE_RAK_WB_

FIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

                                                Query_Type::RECORD_YEAR_APPEARANCE_RAK_WB_

FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

                                                Query_Type::REMOTE_ACCESS_FIELD . . . . . . . . . . . . 8
                                                Query_Type::REMOTE_ACCESS_FLAG . . . . . . . . . . . . . 9
                                                Query_Type::REMOTE_DATABASE_TARGET. . . . . . . . . 8
                                                Query_Type::REMOTE_SERVER_TARGET. . . . . . . . . . . 8
                                                Query_Type::RIGHTS_FIELD . . . . . . . . . . . . . . . . . . . 8
                                                Query_Type::RIGHTS_FLAG . . . . . . . . . . . . . . . . . . . . 9
                                                Query_Type::scanner_node . . . . . . . . . . . . . . . . . . . 8
                                                Query_Type::SOURCE_FIELD . . . . . . . . . . . . . . . . . . . 8
                                                Query_Type::SOURCE_FLAG . . . . . . . . . . . . . . . . . . . . 9
                                                Query_Type::SUBJECT_FIELD . . . . . . . . . . . . . . . . . . 8
                                                Query_Type::SUBJECT_FLAG . . . . . . . . . . . . . . . . . . . 9
                                                Query_Type::SUPERORDINATE_ENTITIES_FIELD . . 8
                                                Query_Type::SUPERORDINATE_ENTITIES_FLAG . . . 9
                                                Query_Type::target_type_map . . . . . . . . . . . . . . . . 8

Query_Type::target_types . . . . . . . . . . . . . . . . . . . 8
Query_Type::TITLE_FIELD . . . . . . . . . . . . . . . . . . . . 8
Query_Type::TITLE_FLAG . . . . . . . . . . . . . . . . . . . . . 9

Query_Type::TOP_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::TYPE_FIELD . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::TYPE_FLAG. . . . . . . . . . . . . . . . . . . . . . . 9 Query_Type::up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type::value . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Query_Type::value_type . . . . . . . . . . . . . . . . . . . . . 8
Query_Type::value_type_map . . . . . . . . . . . . . . . . . 8

Query_Type::xor_node. . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type::XOR_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 8 query_type_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 QUERY_TYPE_NULL_TYPE. . . . . . . . . . . . . . . . . . . . . . . . 8

QUERY_TYPE_STRING_TYPE . . . . . . . . . . . . . . . . . . . . . 9

query_variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

R

RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

RECORD_DATE_MOST_RECENT_CHANGE_FIELD . . . . . . 9
RECORD_DATE_MOST_RECENT_CHANGE_FLAG . . . . . . 10
RECORD_DATE_ORIGINAL_ENTRY_FIELD. . . . . . . . . . . 9
RECORD_DATE_ORIGINAL_ENTRY_FLAG . . . . . . . . . . . 10
RECORD_DATE_STATUS_CHANGE_FIELD . . . . . . . . . . . . 9
RECORD_DATE_STATUS_CHANGE_FLAG . . . . . . . . . . . . 10
RECORD_ELN_MOST_RECENT_CHANGE_FIELD . . . . . . . 9
RECORD_ELN_MOST_RECENT_CHANGE_FLAG . . . . . . . 10
RECORD_ELN_ORIGINAL_ENTRY_FIELD . . . . . . . . . . . . 9
RECORD_ELN_ORIGINAL_ENTRY_FLAG . . . . . . . . . . . . 10
RECORD_ELN_STATUS_CHANGE_FIELD . . . . . . . . . . . . . 9
RECORD_ELN_STATUS_CHANGE_FLAG . . . . . . . . . . . . . 10

RECORD_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 RECORD_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 RECORD_ID_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 RECORD_ID_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

RECORD_IDENTIFICATION_NUMBER_FIELD. . . . . . . . . 9
RECORD_IDENTIFICATION_NUMBER_FLAG. . . . . . . . . 10
RECORD_SOURCE_ID_FIELD . . . . . . . . . . . . . . . . . . . . . 9

RECORD_SOURCE_ID_FLAG . . . . . . . . . . . . . . . . . . . . . 10

RECORD_YEAR_APPEARANCE_BEGIN_FIELD. . . . . . . . . 9
RECORD_YEAR_APPEARANCE_BEGIN_FLAG. . . . . . . . . 10
RECORD_YEAR_APPEARANCE_END_FIELD. . . . . . . . . . . 9
RECORD_YEAR_APPEARANCE_END_FLAG . . . . . . . . . . . 10
RECORD_YEAR_APPEARANCE_ORIGINAL_FIELD . . . . . 9
RECORD_YEAR_APPEARANCE_ORIGINAL_FLAG . . . . . 10
RECORD_YEAR_APPEARANCE_RAK_WB_FIELD . . . . . . . 9
RECORD_YEAR_APPEARANCE_RAK_WB_FLAG . . . . . . . 10

REMOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 REMOTE_ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 REMOTE_ACCESS_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . 9 REMOTE_ACCESS_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . 10

REMOTE_DATABASE_TARGET . . . . . . . . . . . . . . . . . . . . . 9

REMOTE_SERVER_TARGET. . . . . . . . . . . . . . . . . . . . . . . . 9 right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 RIGHTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 RIGHTS_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 RIGHTS_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

S

                                                Scan_Parse::keyword_map . . . . . . . . . . . . . . . . . . . 15

Scan_Parse::token_map . . . . . . . . . . . . . . . . . . . . . 15 scanner_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 7, 8

                                                Scanner_Type::float_vector . . . . . . . . . . . . . . . . 14

Scanner_Type::id_map. . . . . . . . . . . . . . . . . . . . . . . 14

                                                Scanner_Type::in_filename . . . . . . . . . . . . . . . . . 14

Scanner_Type::in_strm . . . . . . . . . . . . . . . . . . . . . 14

                                                Scanner_Type::log_filename . . . . . . . . . . . . . . . . 14
                                                Scanner_Type::token_stack . . . . . . . . . . . . . . . . . 14

second . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 SECOND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 SEMI_COLON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 SOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 SOURCE_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 SOURCE_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 SOURCE_ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 SQL_STRING_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 statement_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 string_assignment . . . . . . . . . . . . . . . . . . . . . . . . . . 21 string_declaration . . . . . . . . . . . . . . . . . . . . . . . . . 20 STRING_DECLARATOR . . . . . . . . . . . . . . . . . . . . . . . . . . 20 string_expression . . . . . . . . . . . . . . . . . . . . . . . . . . 26 string_primary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 string_secondary . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 string_tertiary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 STRING_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 string_value[2048] . . . . . . . . . . . . . . . . . . . . . . . . . 17 string_variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 SUBJECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 SUBJECT_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 SUBJECT_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 subscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 subscript_placeholder . . . . . . . . . . . . . . . . . . . . . 20 subtype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 subtype_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

                                                SUPERORDINATE_ENTITIES . . . . . . . . . . . . . . . . . . . . 29
                                                SUPERORDINATE_ENTITIES_FIELD . . . . . . . . . . . . . . . 9
                                                SUPERORDINATE_ENTITIES_FLAG . . . . . . . . . . . . . . . 10

SURNAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

T

target_type_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 target_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 TERMINATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 tex_file_ctr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 tex_file_strm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 tex_filename_str . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 tex_mutex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 TEX_STRING_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 time_mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 TIMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 TIMES_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 TIMMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 TIMMS_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 TITLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 TITLE_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 TITLE_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 token_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 token_stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Token_Type::type . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Token_Type::value . . . . . . . . . . . . . . . . . . . . . . . . . . 13 TOP_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 7, 13 TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 TYPE_FIELD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 TYPE_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

U

UNDERLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 8

V

value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 7, 8, 13, 15 value_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 value_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 value_type_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 VARIABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

                                                variable_declaration_segment_list. . . . . . . . . 20

variable_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 variable_segment_list . . . . . . . . . . . . . . . . . . . . . 19 VARIABLE_TEXT_SEGMENT . . . . . . . . . . . . . . . . . . . . . 19

W

WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

X

XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 XOR_ASSIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 xor_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 XOR_NOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 xor_or_xor_not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 XOR_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Y

year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 YEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 YEAR_APPEARANCE_BEGIN . . . . . . . . . . . . . . . . . . . . . 27 YEAR_APPEARANCE_END. . . . . . . . . . . . . . . . . . . . . . . . 27

                                                YEAR_APPEARANCE_ORIGINAL . . . . . . . . . . . . . . . . . . 27
                                                YEAR_APPEARANCE_RAK_WB . . . . . . . . . . . . . . . . . . . . 27

year_range_begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 YEAR_RANGE_BEGIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 year_range_end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 YEAR_RANGE_END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapter 12: Data Type Index 40

Data Type Index

D

Datasource_Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Datasource_Time_Type. . . . . . . . . . . . . . . . . . . . . . . . 6 Date_Time_Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Date_Time_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

I

Id_Node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

M

Mutex_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Q

Query_Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Query_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

S

Scanner_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

T

Token_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

U

union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Y

YYSTYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Chapter 12: Function Index 41

Function Index

_tmain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

~

~Datasource_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 ~Date_Time_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ~Id_Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ~Query_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ~Scanner_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

D

Datasource_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Datasource_Type::~Datasource_Type. . . . . . . . . . 6
Datasource_Type::Datasource_Type. . . . . . . . . . . 6
Datasource_Type::initialize_type_maps . . . . . 6
Datasource_Type::operator= . . . . . . . . . . . . . . . . . 6

Datasource_Type::set. . . . . . . . . . . . . . . . . . . . . . . . 6 Datasource_Type::show. . . . . . . . . . . . . . . . . . . . . . . 6 Date_Time_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::~Date_Time_Type . . . . . . . . . . . . 5
Date_Time_Type::Date_Time_Type . . . . . . . . . . . . . 5
Date_Time_Type::operator= . . . . . . . . . . . . . . . . . . 5

Date_Time_Type::show. . . . . . . . . . . . . . . . . . . . . . . . 5

datetime_assignment_func_0 . . . . . . . . . . . . . . . . 16
datetime_assignment_func_1 . . . . . . . . . . . . . . . . 16

declare_variable_func . . . . . . . . . . . . . . . . . . . . . 15

E

end_query_func . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

G

generate_sql_string. . . . . . . . . . . . . . . . . . . . . . . . 11 generate_tex_string. . . . . . . . . . . . . . . . . . . . . . . . 11

I

Id_Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::~Id_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Id_Type::Id_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Id_Type::initialize_subtype_map . . . . . . . . . . . . 7

Id_Type::show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 initialize_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 initialize_id_map . . . . . . . . . . . . . . . . . . . . . . . . . . 14 initialize_maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

initialize_subtype_map . . . . . . . . . . . . . . . . . . . . . 7

initialize_type_maps. . . . . . . . . . . . . . . . . . . . . . . . 6 initialize_type_maps. . . . . . . . . . . . . . . . . . . . . . . 11

L

Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

M

main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

O

operator<< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 operator=. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 operator=. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 operator= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Q

query_assignment_func_0 . . . . . . . . . . . . . . . . . . . 16
query_assignment_func_1 . . . . . . . . . . . . . . . . . . . 16

Query_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Query_Type::~Query_Type . . . . . . . . . . . . . . . . . . . 11
Query_Type::generate_tex_string . . . . . . . . . . . 11
Query_Type::initialize_flags . . . . . . . . . . . . . . 11
Query_Type::initialize_type_maps. . . . . . . . . . 11

Query_Type::operator= . . . . . . . . . . . . . . . . . . . . . 11

Query_Type::Query_Type . . . . . . . . . . . . . . . . . . . . 11

Query_Type::set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Query_Type::set_field_specifier . . . . . . . . . . . 11

Query_Type::show . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

S

Scan_Parse::datetime_assignment_func_0 . . . 16
Scan_Parse::datetime_assignment_func_1 . . . 16
Scan_Parse::declare_variable_func. . . . . . . . . 15
Scan_Parse::end_query_func . . . . . . . . . . . . . . . . 16
Scan_Parse::initialize_maps . . . . . . . . . . . . . . . 15
Scan_Parse::query_assignment_func_0 . . . . . . 16
Scan_Parse::query_assignment_func_1 . . . . . . 16
Scan_Parse::show_keyword_map . . . . . . . . . . . . . . 15
Scan_Parse::start_local_database_query_func

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Scan_Parse::variable_func . . . . . . . . . . . . . . . . . 15

Scanner_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Scanner_Type::~Scanner_Type . . . . . . . . . . . . . . . 14
Scanner_Type::initialize_id_map . . . . . . . . . . . 14

Scanner_Type::lookup. . . . . . . . . . . . . . . . . . . . . . . 14

Scanner_Type::Scanner_Type . . . . . . . . . . . . . . . . 14

set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 set_field_specifier. . . . . . . . . . . . . . . . . . . . . . . . 11 show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 show. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 12 show_keyword_map . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapter 12: Function Index 42

start_local_database_query_func . . . . . . . . . . . 16

T

Token_Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Token_Type::Token_Type . . . . . . . . . . . . . . . . . . . . 13

U

Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

V

variable_func . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Y

yyerror. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 yylex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 17 yyparse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Chapter 12: Parser Token Index 43

Parser Token Index

A

ACCESS_NUMBER (int_value) . . . . . . . . . . . . . . . . . . 27

AND (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 AND_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . . . 21 ASSIGN (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 21 AT_SYMBOL (int_value) . . . . . . . . . . . . . . . . . . . . . . 17 AUTHOR (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 27

AUTHOR_GIVEN_NAME (int_value) . . . . . . . . . . . . . . 27
AUTHOR_PREFIX (int_value) . . . . . . . . . . . . . . . . . . 27
AUTHOR_SURNAME (int_value) . . . . . . . . . . . . . . . . . 27

B

BIBLIOGRAPHIC_TYPE (int_value). . . . . . . . . . . . . 27

C

CALL_NUMBER (int_value) . . . . . . . . . . . . . . . . . . . . 27

CLASSIFICATION (int_value) . . . . . . . . . . . . . . . . . 27

CLEAR (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

CLOSE_BRACKET (int_value) . . . . . . . . . . . . . . . . . . 17
CLOSE_PARENTHESIS (int_value) . . . . . . . . . . . . . . 17

COLON (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 COMMA (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 COMPANY (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 28 CONTAINS (int_value) . . . . . . . . . . . . . . . . . . . . . . . 25

CONTENT_SUMMARY (int_value) . . . . . . . . . . . . . . . . 28

CONTRIBUTOR (int_value) . . . . . . . . . . . . . . . . . . . . 28

CONTRIBUTOR_GIVEN_NAME (int_value) . . . . . . . . 28
CONTRIBUTOR_PREFIX (int_value). . . . . . . . . . . . . 28
CONTRIBUTOR_SURNAME (int_value). . . . . . . . . . . . 28

CREATOR (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 28

D

DATABASE (int_value) . . . . . . . . . . . . . . . . . . . . . . . 24

DATABASE_PROVIDER (int_value) . . . . . . . . . . . . . . 28
DATASOURCE_DECLARATOR (int_value) . . . . . . . . . 20
DATASOURCE_FILE (int_value) . . . . . . . . . . . . . . . . 24
DATASOURCE_TYPE (pointer_value). . . . . . . . . . . . 19
DATE_MOST_RECENT_CHANGE (int_value) . . . . . . . 27
DATE_ORIGINAL_ENTRY (int_value). . . . . . . . . . . . 27
DATE_STATUS_CHANGE (int_value). . . . . . . . . . . . . 27
DATETIME_DECLARATOR (int_value). . . . . . . . . . . . 20
DATETIME_TYPE (pointer_value) . . . . . . . . . . . . . . 19

DAY (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 DBT (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 DESCRIPTION (int_value) . . . . . . . . . . . . . . . . . . . . 28 DIVIDE (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 18

DIVIDE_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . 21

DO (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

E

ELIF (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

                                                ELN_MOST_RECENT_CHANGE (int_value) . . . . . . . . 27
                                                ELN_ORIGINAL_ENTRY (int_value). . . . . . . . . . . . . 27
                                                ELN_STATUS_CHANGE (int_value) . . . . . . . . . . . . . . 27

ELSE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 EMPTY (pseudo-token) . . . . . . . . . . . . . . . . . . . . . . . . 18 EMPTY (Pseudo-token. No semantic value). . . . . . 18 END (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 ERRMESSAGE (int_value) . . . . . . . . . . . . . . . . . . . . . 26

                                                EXEMPLAR_PRODUCTION_NUMBER (int_value) . . . . 28

F

FI (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 FLOAT (float_value). . . . . . . . . . . . . . . . . . . . . . . . . 19 FOR (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 FREETEXT (int_value) . . . . . . . . . . . . . . . . . . . . . . . 25

G

GBV_GVK (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 24 GIVEN_NAME (int_value) . . . . . . . . . . . . . . . . . . . . . 27

H

HOUR (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 HYPHEN (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 17

I

ID (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

                                                IDENTIFICATION_NUMBER (int_value) . . . . . . . . . 27

IDENTIFIER (int_value) . . . . . . . . . . . . . . . . . . . . . 28 IF (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 INSTITUTION (int_value) . . . . . . . . . . . . . . . . . . . . 28 INTEGER (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 19

L

LANGUAGE (int_value) . . . . . . . . . . . . . . . . . . . . . . . 28 LIKE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 LOCAL (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

M

                                                MAIN_CANONICAL_TITLE (int_value). . . . . . . . . . . 28

MESSAGE (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 26 MINUS (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 MINUS_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . 21 MINUTE (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 25 MONTH (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapter 12: Parser Token Index 44

N

NOT_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . . . 21

NULL_TYPE (pointer_value) . . . . . . . . . . . . . . . . . . 19

O

OAI (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 OPEN_BRACKET (int_value) . . . . . . . . . . . . . . . . . . . 17

OPEN_PARENTHESIS (int_value) . . . . . . . . . . . . . . . 17

OR (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 OR_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . . . . 21 OUTPUT (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 26

P

PAUSE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PERCENT (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 17 PERIOD (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 17

PERMUTATION_PATTERN (int_value). . . . . . . . . . . . 28

PERSON (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 28

PHYSICAL_DESCRIPTION (int_value). . . . . . . . . . . 29

PICA (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 PLUS (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 PLUS_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . . 21 PREFIX (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 27 PUBLISHER (int_value) . . . . . . . . . . . . . . . . . . . . . . 29

Q

QUERY_DECLARATOR (int_value) . . . . . . . . . . . . . . . 20
QUERY_TYPE (pointer_value) . . . . . . . . . . . . . . . . . 19

R

RECORD (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 29 REMOTE (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 24

REMOTE_ACCESS (int_value) . . . . . . . . . . . . . . . . . . 29

RIGHTS (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 29

S

SECOND (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 25 SEMI_COLON (int_value) . . . . . . . . . . . . . . . . . . . . . 17 SERVER (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 24 SHOW (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 SOURCE (int_value). . . . . . . . . . . . . . . . . . . . . . . . . . 29 SOURCE_ID (int_value) . . . . . . . . . . . . . . . . . . . . . . 27 SQL (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 START (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 STRING (string_value) . . . . . . . . . . . . . . . . . . . . . . 19

                                                STRING_DECLARATOR (int_value) . . . . . . . . . . . . . . 20
                                                STRING_TYPE (pointer_value) . . . . . . . . . . . . . . . . 19

SUBJECT (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 29

                                                SUPERORDINATE_ENTITIES (int_value) . . . . . . . . 29

SURNAME (int_value). . . . . . . . . . . . . . . . . . . . . . . . . 27

T

TERMINATE (int_value) . . . . . . . . . . . . . . . . . . . . . . 18 TEX (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 TIMES (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 TIMES_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . 21 TIMMS (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 TITLE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 TYPE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

U

UNDERLINE (int_value) . . . . . . . . . . . . . . . . . . . . . . 17

V

VARIABLE (int_value) . . . . . . . . . . . . . . . . . . . . . . . 19

                                                VARIABLE_TEXT_SEGMENT (string_value) . . . . . . 19

W

WHILE (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

X

XOR_ASSIGN (int_value) . . . . . . . . . . . . . . . . . . . . . 21

Y

YEAR (int_value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

                                                YEAR_APPEARANCE_BEGIN (int_value) . . . . . . . . . 27
                                                YEAR_APPEARANCE_END (int_value). . . . . . . . . . . . 27
                                                YEAR_APPEARANCE_ORIGINAL (int_value) . . . . . . 27
                                                YEAR_APPEARANCE_RAK_WB (int_value) . . . . . . . . 27
                                                YEAR_RANGE_BEGIN (int_value) . . . . . . . . . . . . . . . 25
                                                YEAR_RANGE_END (int_value) . . . . . . . . . . . . . . . . . 25

Chapter 12: Parser Non-Terminal Symbol Index 45

Parser Non-Terminal Symbol Index

A

and or and not (int_value). . . . . . . . . . . . . . . . . . 18 assign or plus assign (int_value). . . . . . . . . . . . . 21 assignment (int_value) . . . . . . . . . . . . . . . . . . . . . . 21 assignment operator (int_value) . . . . . . . . . . . . . 21

C

command (int_value) . . . . . . . . . . . . . . . . . . . . . . . 24

D

datasource assignment (pointer_value) . . . . . . . 21 datasource declaration (int_value) . . . . . . . . . . . 20 datasource expression (pointer_value) . . . . . . . 24 datasource primary (pointer_value). . . . . . . . . . 24 datasource secondary (pointer_value) . . . . . . . . 24 datasource tertiary (pointer_value) . . . . . . . . . . 24 datasource variable (pointer_value) . . . . . . . . . . 19 datetime assignment (pointer_value). . . . . . . . . 21 datetime declaration (int_value) . . . . . . . . . . . . . 20 datetime element list (pointer_value) . . . . . . . . 25 datetime expression (pointer_value) . . . . . . . . . 25 datetime primary (pointer_value) . . . . . . . . . . . 25 datetime secondary (pointer_value). . . . . . . . . . 25 datetime specifier (int_value). . . . . . . . . . . . . . . . 25 datetime tertiary (pointer_value) . . . . . . . . . . . . 25 datetime variable (pointer_value). . . . . . . . . . . . 19 declaration (int_value) . . . . . . . . . . . . . . . . . . . . . . 20

F

field designator (int_value) . . . . . . . . . . . . . . . . . . 27 field qualifier (int_value) . . . . . . . . . . . . . . . . . . . . 27 field qualifier list (pointer_value) . . . . . . . . . . . . 27 field specifier (pointer_value). . . . . . . . . . . . . . . . 27

M

match term optional (int_value) . . . . . . . . . . . . . 25 message or errmessage (int_value) . . . . . . . . . . . 26

N

negation optional (int_value) . . . . . . . . . . . . . . . . 21

O

or or or not (int_value). . . . . . . . . . . . . . . . . . . . . 18

Q

query assignment (pointer_value). . . . . . . . . . . . 21 query declaration (int_value) . . . . . . . . . . . . . . . . 20 query expression (pointer_value) . . . . . . . . . . . . 25 query primary (pointer_value) . . . . . . . . . . . . . . 25 query secondary (pointer_value). . . . . . . . . . . . . 25 query tertiary (pointer_value) . . . . . . . . . . . . . . . 25 query variable (pointer_value) . . . . . . . . . . . . . . 19

S

statement (No semantic value) . . . . . . . . . . . . . . . . 19 statement list (No semantic value) . . . . . . . . . . . . 19 string assignment (string_value) . . . . . . . . . . . . 21 string declaration (int_value). . . . . . . . . . . . . . . . 20 string expression (string_value) . . . . . . . . . . . . . 26 string primary (string_value) . . . . . . . . . . . . . . . 26 string secondary (string_value). . . . . . . . . . . . . . 26 string tertiary (string_value). . . . . . . . . . . . . . . . 26 string variable (pointer_value) . . . . . . . . . . . . . . 19 subscript (float_value). . . . . . . . . . . . . . . . . . . . . . 19 subscript placeholder (int_value) . . . . . . . . . . . . 20

V

variable declaration segment list (string_value)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 variable name (pointer_value) . . . . . . . . . . . . . . . 19 variable segment list (string_value) . . . . . . . . . 19

X

xor or xor not (int_value) . . . . . . . . . . . . . . . . . . 18

Chapter 12: Parser Rule Index 46

Parser Rule Index

A

⟨and or and not⟩ ⟶ AND . . . . . . . . . . . . . . . . . . . 25 ⟨and or and not⟩ ⟶ AND_NOT . . . . . . . . . . . . . . . 25 ⟨assign or plus assign⟩ ⟶ ASSIGN . . . . . . . . . . . 21 ⟨assign or plus assign⟩ ⟶ PLUS_ASSIGN. . . . . . 21 ⟨assignment⟩ ⟶ ⟨datasource assignment⟩ … 21 ⟨assignment⟩ ⟶ ⟨datetime assignment⟩ . . . . . 21 ⟨assignment⟩ ⟶ ⟨query assignment⟩ . . . . . . . . 21 ⟨assignment⟩ ⟶ ⟨string assignment⟩ . . . . . . . . 21 ⟨assignment operator⟩ ⟶ ASSIGN . . . . . . . . . . . 21 ⟨assignment operator⟩ ⟶ NOT_ASSIGN . . . . . . . 21 ⟨assignment operator⟩ ⟶ OR_ASSIGN . . . . . . . . 21 ⟨assignment operator⟩ ⟶ PLUS_ASSIGN . . . . . . 21 ⟨assignment operator⟩ ⟶ XOR_ASSIGN . . . . . . . 21

C

⟨command⟩ ⟶ ⟨message or errmessage⟩ STRING

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨command⟩ ⟶ OUTPUT TEX ⟨string expression⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨command⟩ ⟶ PAUSE . . . . . . . . . . . . . . . . . . . . . . 24 ⟨command⟩ ⟶ SHOW ⟨datasource variable⟩ . . 24 ⟨command⟩ ⟶ SHOW ⟨datetime variable⟩ …. 24 ⟨command⟩ ⟶ SHOW ⟨query variable⟩ . . . . . . . 24 ⟨command⟩ ⟶ SHOW ⟨string expression⟩ . . . . . 24

D

⟨datasource assignment⟩ ⟶ ⟨datasource variable⟩ ASSIGN ⟨datasource expression⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

⟨datasource assignment⟩ ⟶ ⟨datasource

variable⟩ ASSIGN DATASOURCE_FILE . . . . . . . 23

⟨datasource assignment⟩ ⟶ ⟨datasource

variable⟩ ASSIGN DBT . . . . . . . . . . . . . . . . . . . . 23 ⟨datasource assignment⟩ ⟶ ⟨datasource

variable⟩ ASSIGN GBV_GVK . . . . . . . . . . . . . . . . 23 ⟨datasource assignment⟩ ⟶ ⟨datasource

variable⟩ ASSIGN TIMMS . . . . . . . . . . . . . . . . . . 23 ⟨datasource declaration⟩ ⟶

DATASOURCE_DECLARATOR ⟨variable declaration

segment list⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨datasource expression⟩ ⟶ ⟨datasource tertiary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨datasource primary⟩ ⟶ ⟨datasource variable⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨datasource primary⟩ ⟶ OPEN_PARENTHESIS

⟨datasource expression⟩ CLOSE_PARENTHESIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

⟨datasource secondary⟩ ⟶ ⟨datasource primary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨datasource tertiary⟩ ⟶ ⟨datasource secondary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ⟨datasource variable⟩ ⟶ VARIABLE

DATASOURCE_TYPE . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨datasource variable⟩ ⟶ ⟨variable name⟩

DATASOURCE_TYPE . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨datetime assignment⟩ ⟶ ⟨datetime variable⟩

ASSIGN ⟨datetime expression⟩ . . . . . . . . . . . . 23 ⟨datetime assignment⟩ ⟶ ⟨datetime variable⟩

COLON ⟨datetime specifier⟩ ⟨assignment

operator⟩ FLOAT . . . . . . . . . . . . . . . . . . . . . . . . 23 ⟨datetime assignment⟩ ⟶ ⟨datetime variable⟩

COLON ⟨datetime specifier⟩ ⟨assignment

operator⟩ INTEGER . . . . . . . . . . . . . . . . . . . . . . 23 ⟨datetime declaration⟩ ⟶ DATETIME_DECLARATOR

⟨variable declaration segment list⟩ . . . . . . . . 20 ⟨datetime element list⟩ ⟶ ⟨datetime element

list⟩ FLOAT COLON . . . . . . . . . . . . . . . . . . . . . . . 25 ⟨datetime element list⟩ ⟶ ⟨datetime element

list⟩ INTEGER COLON . . . . . . . . . . . . . . . . . . . . . 25 ⟨datetime element list⟩ ⟶ FLOAT COLON . . . . . 25 ⟨datetime element list⟩ ⟶ INTEGER COLON … 25 ⟨datetime expression⟩ ⟶ ⟨datetime tertiary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ⟨datetime primary⟩ ⟶ ⟨datetime element list⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ⟨datetime primary⟩ ⟶ ⟨datetime variable⟩ . . 25 ⟨datetime primary⟩ ⟶ OPEN_PARENTHESIS

⟨datetime expression⟩ CLOSE_PARENTHESIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

⟨datetime secondary⟩ ⟶ ⟨datetime primary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ⟨datetime specifier⟩ ⟶ DAY . . . . . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ HOUR . . . . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ MINUTE. . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ MONTH. . . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ SECOND. . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ YEAR . . . . . . . . . . . . . . . . 23 ⟨datetime specifier⟩ ⟶ YEAR_RANGE_BEGIN … 23 ⟨datetime specifier⟩ ⟶ YEAR_RANGE_END . . . . . 23 ⟨datetime tertiary⟩ ⟶ ⟨datetime secondary⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

⟨datetime variable⟩ ⟶ VARIABLE DATETIME_TYPE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨datetime variable⟩ ⟶ ⟨variable name⟩

DATETIME_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨declaration⟩ ⟶ ⟨datasource declaration⟩ … 20 ⟨declaration⟩ ⟶ ⟨datetime declaration⟩ . . . . . 20 ⟨declaration⟩ ⟶ ⟨query declaration⟩ . . . . . . . . 20 ⟨declaration⟩ ⟶ ⟨string declaration⟩ . . . . . . . . 20

F

⟨field designator⟩ ⟶ ACCESS_NUMBER . . . . . . . . 22 ⟨field designator⟩ ⟶ AUTHOR . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ BIBLIOGRAPHIC_TYPE … 22 ⟨field designator⟩ ⟶ CALL_NUMBER . . . . . . . . . . 22 ⟨field designator⟩ ⟶ CLASSIFICATION . . . . . . . 22 ⟨field designator⟩ ⟶ COMPANY. . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ CONTENT_SUMMARY . . . . . . 22 ⟨field designator⟩ ⟶ CONTRIBUTOR . . . . . . . . . . 22 ⟨field designator⟩ ⟶ CREATOR. . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ DATABASE_PROVIDER …. 22 ⟨field designator⟩ ⟶ DESCRIPTION . . . . . . . . . . 22 ⟨field designator⟩ ⟶

    EXEMPLAR_PRODUCTION_NUMBER . . . . . . . . . . . . 22

⟨field designator⟩ ⟶ IDENTIFIER . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ INSTITUTION . . . . . . . . . . 22 ⟨field designator⟩ ⟶ LANGUAGE. . . . . . . . . . . . . . 22

⟨field designator⟩ ⟶ MAIN_CANONICAL_TITLE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ PERMUTATION_PATTERN. . 22 ⟨field designator⟩ ⟶ PERSON . . . . . . . . . . . . . . . . 22

⟨field designator⟩ ⟶ PHYSICAL_DESCRIPTION

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ PUBLISHER . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ RECORD . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ REMOTE_ACCESS . . . . . . . . 22 ⟨field designator⟩ ⟶ RIGHTS . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ SOURCE . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ SUBJECT. . . . . . . . . . . . . . . 22

⟨field designator⟩ ⟶ SUPERORDINATE_ENTITIES

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ TITLE . . . . . . . . . . . . . . . . . 22 ⟨field designator⟩ ⟶ TYPE . . . . . . . . . . . . . . . . . . 22

⟨field qualifier⟩ ⟶ DATE_MOST_RECENT_CHANGE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field qualifier⟩ ⟶ DATE_ORIGINAL_ENTRY …. 22 ⟨field qualifier⟩ ⟶ DATE_STATUS_CHANGE . . . . . 22

⟨field qualifier⟩ ⟶ ELN_MOST_RECENT_CHANGE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field qualifier⟩ ⟶ ELN_ORIGINAL_ENTRY . . . . . 22 ⟨field qualifier⟩ ⟶ ELN_STATUS_CHANGE . . . . . . 22 ⟨field qualifier⟩ ⟶ GIVEN_NAME . . . . . . . . . . . . . 22 ⟨field qualifier⟩ ⟶ ID . . . . . . . . . . . . . . . . . . . . . . 22

⟨field qualifier⟩ ⟶ IDENTIFICATION_NUMBER. . 22

⟨field qualifier⟩ ⟶ PREFIX . . . . . . . . . . . . . . . . . . 22 ⟨field qualifier⟩ ⟶ SOURCE_ID. . . . . . . . . . . . . . . 22 ⟨field qualifier⟩ ⟶ SURNAME . . . . . . . . . . . . . . . . . 22

⟨field qualifier⟩ ⟶ YEAR_APPEARANCE_BEGIN. . 22

⟨field qualifier⟩ ⟶ YEAR_APPEARANCE_END …. 22

⟨field qualifier⟩ ⟶ YEAR_APPEARANCE_ORIGINAL

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

⟨field qualifier⟩ ⟶ YEAR_APPEARANCE_RAK_WB

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field qualifier list⟩ ⟶ EMPTY . . . . . . . . . . . . . . . 22 ⟨field qualifier list⟩ ⟶ field qualifier list PERIOD

field qualifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ⟨field specifier⟩ ⟶ ⟨field designator⟩ ⟨field

qualifier list⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

M

⟨match term optional⟩ ⟶ CONTAINS . . . . . . . . . 21 ⟨match term optional⟩ ⟶ EMPTY . . . . . . . . . . . . 21 ⟨match term optional⟩ ⟶ FREETEXT . . . . . . . . . 21 ⟨match term optional⟩ ⟶ LIKE . . . . . . . . . . . . . 21 ⟨message or errmessage⟩ ⟶ ERRMESSAGE . . . . . 24 ⟨message or errmessage⟩ ⟶ MESSAGE . . . . . . . . 24

N

⟨negation optional⟩ ⟶ EMPTY . . . . . . . . . . . . . . . 21 ⟨negation optional⟩ ⟶ NOT . . . . . . . . . . . . . . . . . 21

O

⟨or or or not⟩ ⟶ OR . . . . . . . . . . . . . . . . . . . . . . . 25 ⟨or or or not⟩ ⟶ OR_NOT . . . . . . . . . . . . . . . . . . . 25

Q

⟨query assignment⟩ ⟶ ⟨query variable⟩ ASSIGN

⟨query expression⟩ . . . . . . . . . . . . . . . . . . . . . . 23 ⟨query assignment⟩ ⟶ ⟨query variable⟩ ⟨assign

or plus assign⟩ LOCAL DATABASE . . . . . . . . . . 23 ⟨query assignment⟩ ⟶ ⟨query variable⟩ ⟨assign

or plus assign⟩ LOCAL SERVER. . . . . . . . . . . . . 23 ⟨query assignment⟩ ⟶ ⟨query variable⟩ ⟨assign

or plus assign⟩ REMOTE DATABASE . . . . . . . . . 23 ⟨query assignment⟩ ⟶ ⟨query variable⟩ ⟨assign

or plus assign⟩ REMOTE SERVER . . . . . . . . . . . 23 ⟨query assignment⟩ ⟶ ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩ ⟨negation optional⟩ ⟨match term optional⟩ ⟨datetime expression⟩ . . . . . . . . . . . . . . . . . . . 23

⟨query assignment⟩ ⟶ ⟨query variable⟩ COLON ⟨field specifier⟩ ⟨assignment operator⟩ ⟨negation optional⟩ ⟨match term optional⟩ ⟨query expression⟩ . . . . . . . . . . . . . . . . . . . . . . 23

⟨query declaration⟩ ⟶ QUERY_DECLARATOR

⟨variable declaration segment list⟩ . . . . . . . . 20 ⟨query expression⟩ ⟶ ⟨query expression⟩ ⟨or or or not⟩ ⟨query tertiary⟩ . . . . . . . . . . . . . . . . . 25 ⟨query expression⟩ ⟶ ⟨query tertiary⟩ . . . . . . 25 ⟨query primary⟩ ⟶ FLOAT. . . . . . . . . . . . . . . . . . 25 ⟨query primary⟩ ⟶ INTEGER. . . . . . . . . . . . . . . . 25 ⟨query primary⟩ ⟶ OPEN_PARENTHESIS ⟨query

expression⟩ CLOSE_PARENTHESIS . . . . . . . . . . 25 ⟨query primary⟩ ⟶ ⟨query variable⟩ . . . . . . . . 25 ⟨query primary⟩ ⟶ STRING. . . . . . . . . . . . . . . . . 25 ⟨query secondary⟩ ⟶ ⟨query primary⟩ . . . . . . 25 ⟨query secondary⟩ ⟶ ⟨query secondary⟩ ⟨and or and not⟩ ⟨query primary⟩ . . . . . . . . . . . . . . . 25 ⟨query tertiary⟩ ⟶ ⟨query secondary⟩ . . . . . . 25 ⟨query tertiary⟩ ⟶ ⟨query tertiary⟩ ⟨xor or xor not⟩ ⟨query secondary⟩ . . . . . . . . . . . . . . . . . 25 ⟨query variable⟩ ⟶ VARIABLE QUERY_TYPE… 20 ⟨query variable⟩ ⟶ ⟨variable name⟩ QUERY_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

S

⟨statement⟩ ⟶ ⟨assignment⟩ SEMI_COLON … 19 ⟨statement⟩ ⟶ ⟨command⟩ SEMI_COLON …. 19 ⟨statement⟩ ⟶ ⟨declaration⟩ SEMI_COLON … 19 ⟨statement list⟩ ⟶ EMPTY . . . . . . . . . . . . . . . . . . 19 ⟨statement list⟩ ⟶ ⟨statement list⟩ ⟨statement⟩

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 ⟨string assignment⟩ ⟶ ⟨string variable⟩ ASSIGN

SQL OAI ⟨query expression⟩ . . . . . . . . . . . . . . 23 ⟨string assignment⟩ ⟶ ⟨string variable⟩ ASSIGN

SQL PICA ⟨query expression⟩ . . . . . . . . . . . . . 23 ⟨string assignment⟩ ⟶ ⟨string variable⟩ ASSIGN

⟨string expression⟩ . . . . . . . . . . . . . . . . . . . . . . 23 ⟨string assignment⟩ ⟶ ⟨string variable⟩ ASSIGN

TEX ⟨query expression⟩ . . . . . . . . . . . . . . . . . . 23 ⟨string declaration⟩ ⟶ STRING_DECLARATOR

⟨variable declaration segment list⟩ . . . . . . . . 20 ⟨string expression⟩ ⟶ ⟨string tertiary⟩ . . . . . 26 ⟨string primary⟩ ⟶ OPEN_PARENTHESIS ⟨string

expression⟩ CLOSE_PARENTHESIS . . . . . . . . . . 26 ⟨string primary⟩ ⟶ STRING . . . . . . . . . . . . . . . . 26 ⟨string primary⟩ ⟶ ⟨string variable⟩ . . . . . . . 26 ⟨string secondary⟩ ⟶ ⟨string primary⟩ . . . . . 26 ⟨string tertiary⟩ ⟶ ⟨string secondary⟩ . . . . . . 26 ⟨string variable⟩ ⟶ VARIABLE STRING_TYPE. . 20 ⟨string variable⟩ ⟶ ⟨variable name⟩

STRING_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨subscript⟩ ⟶ FLOAT. . . . . . . . . . . . . . . . . . . . . . . 19 ⟨subscript⟩ ⟶ INTEGER . . . . . . . . . . . . . . . . . . . . 19

                                                ⟨subscript⟩ ⟶ OPEN_BRACKET FLOAT

CLOSE_BRACKET . . . . . . . . . . . . . . . . . . . . . . . . . . 19

                                                ⟨subscript⟩ ⟶ OPEN_BRACKET INTEGER

CLOSE_BRACKET . . . . . . . . . . . . . . . . . . . . . . . . . . 19 ⟨subscript placeholder⟩ ⟶ OPEN_BRACKET

CLOSE_BRACKET . . . . . . . . . . . . . . . . . . . . . . . . . . 20

V

⟨variable declaration segment list⟩ ⟶ ⟨variable declaration segment list⟩

                                                    VARIABLE_TEXT_SEGMENT . . . . . . . . . . . . . . . . . 20

⟨variable declaration segment list⟩ ⟶

                                                    VARIABLE_TEXT_SEGMENT . . . . . . . . . . . . . . . . . 20

⟨variable declaration segment list⟩ ⟶ ⟨variable declaration segment list⟩ ⟨subscript placeholder⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ⟨variable name⟩ ⟶ ⟨variable segment list⟩ . . 19 ⟨variable segment list⟩ ⟶ ⟨variable segment list⟩ ⟨subscript⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 ⟨variable segment list⟩ ⟶ ⟨variable segment list⟩

                                                    VARIABLE_TEXT_SEGMENT . . . . . . . . . . . . . . . . . 19

⟨variable segment list⟩ ⟶

                                                    VARIABLE_TEXT_SEGMENT . . . . . . . . . . . . . . . . . 19

X

⟨xor or xor not⟩ ⟶ XOR . . . . . . . . . . . . . . . . . . . . 25 ⟨xor or xor not⟩ ⟶ XOR_NOT . . . . . . . . . . . . . . . . 25

Chapter 12: Filename Index 49

Filename Index

A

assign.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 21

C

commands.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 24

D

declrtns.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 20 dtsrcexp.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 24 dtsrctyp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 dtsrctyp.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 dttmexp.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 25 dttmtype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 dttmtype.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

I

idtype.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 idtype.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

M

main.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 4

N

nonwin.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

P

parser.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Q

queryexp.w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 25 querytyp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 querytyp.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

S

scanner.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 scantest.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 4 scnrtype.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 strings.w. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 26

V

variabls.w. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 19

Appendix A GNU Free Documentation License

Version 1.2, November 2002

Copyright \begin{matrix}c \\ ◯ \end{matrix} 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”. Examples of suitable formats for Transparent copies include plain ascii without markup, Texinfo input format, LaTEX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text. A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.

C. State on the Title page the name of the publisher of the Modified Version, as the

publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other

copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public

permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover

Texts given in the Document’s license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item

stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

M. Delete any section Entitled “Endorsements”. Such a section may not be included

in the Modified Version. N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in

title with any Invariant Section. O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.

You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”

6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

A.0.1 ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

        Copyright (C)  year  your name.
        Permission is granted to copy, distribute and/or modify this document
        under the terms of the GNU Free Documentation License, Version 1.2
        or any later version published by the Free Software Foundation;
        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
        Texts.  A copy of the license is included in the section entitled ``GNU
        Free Documentation License''.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:

          with the Invariant Sections being list their titles, with
          the Front-Cover Texts being list, and with the Back-Cover Texts
          being list.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Appendix B GNU General Public License

Version 2, June 1991

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1989, 1991 Free Software Foundation, Inc.

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software—to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is addressed as “you”. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a. You must cause the modified files to carry prominent notices stating that you

changed the files and the date of any change. b. You must cause any work that you distribute or publish, that in whole or in part

contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a. Accompany it with the complete corresponding machine-readable source code,

which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLI-CABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPY-RIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

      one line to give the program's name and a brief idea of what it does.
      Copyright (C) yyyy  name of author
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

      Gnomovision version 69, Copyright (C) year name of author
      Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
      This is free software, and you are welcome to redistribute it
      under certain conditions; type `show c' for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than ‘show w’ and ‘show c’; they could even be mouse-clicks or menu items—whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the program, if necessary. Here is a sample; alter the names:

     Yoyodyne, Inc., hereby disclaims all copyright interest in the program
     `Gnomovision' (which makes passes at compilers) written by James Hacker.
     signature of Ty Coon, 1 April 1989
     Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.