8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 03:23:03 +01:00
firebird-mirror/src/dudley/parse.h
robocop 31ba754981 After talking to Ann, decided to disable several items:
- obsolete items like WAL and JOURNAL (cleaned in the past)
- crud from attempts never finished like the shared cache manager for Classic
- DSQL nodes that aren't used. This allowed freeing some keywords.
The functionality was disabled by commenting the code. No code has been deleted.
2004-10-03 04:49:04 +00:00

249 lines
3.9 KiB
C

/*
* PROGRAM: JRD Data Definition Language
* MODULE: parse.h
* DESCRIPTION: Parser definitions
*
* The contents of this file are subject to the Interbase Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy
* of the License at http://www.Inprise.com/IPL.html
*
* Software distributed under the License is distributed on an
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
* or implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code was created by Inprise Corporation
* and its predecessors. Portions created by Inprise Corporation are
* Copyright (C) Inprise Corporation.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
#ifndef DUDLEY_PARSE_H
#define DUDLEY_PARSE_H
/* Keywords */
enum kwwords {
KW_none = 0,
KW_ABORT,
KW_ACTIVE,
KW_ADD,
KW_ACL,
KW_ALL,
KW_AMPERSAND,
KW_AND,
KW_ANY,
KW_ARRAY,
KW_ASCENDING,
KW_ASTERISK,
KW_AT,
KW_AUTO,
KW_AVERAGE,
KW_BAR,
KW_BASED,
// KW_BASE_NAME,
KW_BEGIN,
KW_BETWEEN,
KW_BLOB,
KW_BLR,
KW_BY,
// KW_CACHE,
// KW_CASCADE,
KW_CHAR,
// KW_CHECK_POINT_LEN,
KW_COLON,
KW_COMMA,
KW_CONDITIONAL,
KW_CONTAINING,
KW_COMPUTED,
KW_CONSTRAINT,
KW_COUNT,
KW_CROSS,
KW_CSTRING,
KW_CURSOR,
KW_DATABASE,
KW_DATE,
KW_DEFAULT,
KW_DEFINE,
KW_DELETE,
KW_DESCENDING,
KW_DESCRIP,
KW_DESCRIPTION,
KW_DISTINCT,
KW_DOT,
KW_DOUBLE,
KW_DROP,
KW_DUPLICATES,
KW_EDIT_STRING,
KW_ELSE,
KW_END,
KW_END_DESCRIPTION,
KW_END_FOR,
KW_END_MODIFY,
KW_END_STORE,
KW_END_TRIGGER,
KW_EQ,
KW_EQUALS,
KW_ERASE,
KW_EXIT,
KW_EXTERNAL_FILE,
KW_FIELD,
KW_FILE,
KW_FIRST,
KW_FIXED,
KW_FLOAT,
KW_FOR,
KW_FROM,
KW_FILTER,
KW_FUNCTION,
KW_FUNCTION_CLASS,
KW_FUNCTION_ENTRY_POINT,
KW_FUNCTION_MODULE_NAME,
KW_GE,
KW_GEN_ID,
KW_GENERATOR,
KW_GRANT,
KW_GT,
KW_GROUP,
// KW_GROUP_COMMIT_WAIT,
KW_IF,
KW_IN,
KW_INACTIVE,
KW_INDEX,
KW_INPUT_TYPE,
KW_INTO,
KW_INSERT,
KW_IS,
KW_LE,
KW_LENGTH,
KW_L_BRACE,
KW_L_BRCKET,
KW_LEFT_PAREN,
// KW_LOG_BUF_SIZE,
// KW_LOG_FILE,
KW_LONG,
KW_LT,
KW_MANUAL,
KW_MATCHES,
KW_MAX,
KW_MESSAGE,
KW_MIN,
KW_MINUS,
KW_MISSING,
KW_MODIFY,
KW_MSGADD,
KW_MSGDROP,
KW_MSGMODIFY,
KW_NE,
KW_NO,
KW_NOT,
KW_NULL,
// KW_NUM_LOG_BUFS,
KW_OF,
KW_OFFSET,
KW_ON,
KW_OPTION,
KW_OR,
KW_OUTPUT_TYPE,
KW_OVER,
// KW_OVERFLOW,
KW_OVERWRITE,
KW_PAGES,
KW_PAGE,
KW_PAGE_NUMBER,
KW_PAGE_SIZE,
KW_PARTITIONS,
KW_PASSWORD,
KW_PERCENT,
KW_PLUS,
KW_POSITION,
KW_POST,
KW_POST_ERASE,
KW_POST_MODIFY,
KW_POST_STORE,
KW_PRE,
KW_PRE_ALLOCATE,
KW_PRE_ERASE,
KW_PRE_MODIFY,
KW_PRE_STORE,
KW_PRIVILEGES,
KW_QUAD,
KW_QUERY_HEADER,
KW_QUERY_NAME,
KW_QUIT,
// KW_RAW,
// KW_RAW_PARTITIONS,
KW_REDUCED,
KW_R_BRACE,
KW_R_BRCKET,
KW_REFERENCE,
KW_RELATION,
KW_RETURN_ARGUMENT, /* function argument return_mode */
KW_RETURN_VALUE, /* function argument return_mode */
KW_REVOKE,
KW_RIGHT_PAREN,
KW_SCALAR_ARRAY_DESCRIPTOR,
KW_SCALE,
KW_SECURITY_CLASS,
KW_SEGMENT_LENGTH,
KW_SELECT,
KW_SEMI,
KW_SET,
KW_SET_GENERATOR,
KW_SHADOW,
KW_SHORT,
// KW_SIZE,
KW_SLASH,
KW_SORTED,
KW_STARTS,
KW_STARTING,
KW_STATISTICS,
KW_STORE,
KW_SUB_TYPE,
KW_SYSTEM_FLAG,
KW_TEXT,
KW_THEN,
KW_TO,
KW_TOTAL,
KW_TRIGGER,
KW_TYPES,
KW_UNION,
KW_UNIQUE,
KW_UPDATE,
KW_UPPERCASE,
KW_USER,
KW_USER_NAME,
KW_USING,
KW_VALID,
KW_VALID_IF,
KW_VALUE,
KW_VARYING,
KW_VIEW,
KW_WITH
};
/* Token block, used to hold a lexical token. */
enum tok_t {
tok_ident,
tok_number,
tok_quoted,
tok_punct,
tok_eol
};
typedef struct tok {
enum tok_t tok_type; /* type of token */
sym* tok_symbol; /* hash block if recognized */
enum kwwords tok_keyword; /* keyword number, if recognized */
SLONG tok_position; /* byte number in input stream */
USHORT tok_length;
TEXT tok_string[MAXSYMLEN];
} *TOK;
#endif // DUDLEY_PARSE_H