| package Rep_Clause5_Pkg is |
| |
| type ID_Type is mod 65536; |
| type String_ID is new ID_Type; |
| type LNumber_Type is range 0..99999; |
| subtype Long_Type is Integer; |
| |
| type Func_ID is (No_Func, FUN_SGN, FUN_EXP, FUN_LOG, FUN_LOG10); |
| |
| type Token_Kind is ( |
| No_Token, |
| LEX_BINARY, |
| LEX_SECTION, |
| LEX_003, |
| LEX_004, |
| LEX_005, |
| LEX_006, |
| LEX_007, |
| LEX_008, |
| LEX_009, |
| LEX_LF, |
| LEX_011, |
| LEX_012, |
| LEX_013, |
| LEX_014, |
| LEX_015, |
| LEX_016, |
| LEX_017, |
| LEX_018, |
| LEX_019, |
| LEX_020, |
| LEX_021, |
| LEX_022, |
| LEX_023, |
| LEX_024, |
| LEX_025, |
| LEX_026, |
| LEX_027, |
| LEX_028, |
| LEX_029, |
| LEX_030, |
| LEX_031, |
| LEX_032, |
| '!', |
| '"', |
| '#', |
| '$', |
| '%', |
| '&', |
| ''', |
| '(', |
| ')', |
| '*', |
| '+', |
| ',', |
| '-', |
| '.', |
| '/', |
| '0', |
| '1', |
| '2', |
| '3', |
| '4', |
| '5', |
| '6', |
| '7', |
| '8', |
| '9', |
| ':', |
| ';', |
| '<', |
| '=', |
| '>', |
| '?', |
| '@', |
| 'A', |
| 'B', |
| 'C', |
| 'D', |
| 'E', |
| 'F', |
| 'G', |
| 'H', |
| 'I', |
| 'J', |
| 'K', |
| 'L', |
| 'M', |
| 'N', |
| 'O', |
| 'P', |
| 'Q', |
| 'R', |
| 'S', |
| 'T', |
| 'U', |
| 'V', |
| 'W', |
| 'X', |
| 'Y', |
| 'Z', |
| '[', |
| '\', |
| ']', |
| '^', |
| '_', |
| '`', |
| 'a', |
| 'b', |
| 'c', |
| 'd', |
| 'e', |
| 'f', |
| 'g', |
| 'h', |
| 'i', |
| 'j', |
| 'k', |
| 'l', |
| 'm', |
| 'n', |
| 'o', |
| LEX_SFUN3, |
| LEX_SFUN2, |
| LEX_SFUN1, |
| LEX_SFUNN, |
| LEX_FUN3, |
| LEX_FUN2, |
| LEX_FUN1, |
| LEX_FUNN, |
| 'x', |
| 'y', |
| 'z', |
| '{', |
| '|', |
| '}', |
| '~', |
| LEX_CRTA, |
| LEX_ISNULL, |
| LEX_USING, |
| LEX_HANDLE, |
| LEX_CALLX, |
| LEX_COMPLEX, |
| LEX_FIXED, |
| LEX_ENV, |
| LEX_SPARSE, |
| LEX_SUBROUTINE, |
| LEX_CALL, |
| LEX_BOX, |
| LEX_VLINE, |
| LEX_HLINE, |
| LEX_MAXLENGTH, |
| LEX_DLENGTH, |
| LEX_INPUT, |
| LEX_INITIALIZE, |
| LEX_OUTPUT, |
| LEX_UNLINK, |
| LEX_SEEK, |
| LEX_EXIT, |
| LEX_NOT, |
| LEX_COMMON, |
| LEX_CHAIN, |
| LEX_DEF, |
| LEX_ARITY, |
| LEX_RESUME, |
| LEX_PIC_S, |
| LEX_BG, |
| LEX_FG, |
| LEX_PC, |
| LEX_CRT, |
| LEX_ENUM, |
| LEX_DECLARE, |
| LEX_CURSOR, |
| LEX_DROP, |
| LEX_CURRENT, |
| LEX_ISOLATION, |
| LEX_SET, |
| LEX_TRANSACTION, |
| LEX_COMMIT, |
| LEX_ABORT, |
| LEX_BEGIN, |
| LEX_PREVIOUS, |
| LEX_LAST, |
| LEX_FIRST, |
| LEX_KEY, |
| LEX_START, |
| LEX_REWRITE, |
| LEX_INDEX, |
| LEX_SECONDARY, |
| LEX_PRIMARY, |
| LEX_COLUMN, |
| LEX_TEMP, |
| LEX_TABLE, |
| LEX_CREATE, |
| LEX_HASH, |
| LEX_BTREE, |
| LEX_UPDATE, |
| LEX_ERROR, |
| LEX_ACCEPT, |
| LEX_AVG, |
| LEX_MAX, |
| LEX_MIN, |
| LEX_FIELD, |
| LEX_RESTORE, |
| LEX_END, |
| LEX_STEP, |
| LEX_NEXT, |
| LEX_FOR, |
| LEX_RETURN, |
| LEX_GOSUB, |
| LEX_RANGE, |
| LEX_EXPON, |
| LEX_XOR, |
| LEX_OR, |
| LEX_AND, |
| LEX_SHIFTR, |
| LEX_GE, |
| LEX_NE, |
| LEX_SHIFTL, |
| LEX_LE, |
| LEX_VARYING, |
| LEX_LENGTH, |
| LEX_PRINT, |
| LEX_IF, |
| LEX_GOTO, |
| LEX_ON, |
| LEX_THEN, |
| LEX_DELETE, |
| LEX_TO, |
| LEX_SEQUENCE, |
| LEX_NONUNIQUE, |
| LEX_UNIQUE, |
| LEX_FILE, |
| LEX_CLOSE, |
| LEX_OPEN, |
| LEX_DATABASE, |
| LEX_RECORD, |
| LEX_DATA, |
| LEX_WRITE, |
| LEX_READ, |
| LEX_STOP, |
| LEX_LET, |
| LEX_MOD, |
| LEX_LONG, |
| LEX_DIM, |
| LEX_SHORT, |
| LEX_REM, |
| LEX_SHELL, |
| LEX_TOKEN, |
| LEX_FLOAT, |
| LEX_SIDENT, |
| LEX_INLREM, |
| LEX_ENDLIT, |
| LEX_STRLIT, |
| LEX_IDENT, |
| LEX_LNUMBER, |
| LEX_HEX, |
| LEX_NUMBER, |
| LEX_EOF, |
| LEX_QUIT, |
| LEX_LIST, |
| LEX_REMOVE, |
| LEX_RENUMBER, |
| LEX_CONTINUE, |
| LEX_RUN, |
| LEX_MERGE, |
| LEX_ENTER, |
| LEX_NEW, |
| LEX_RESET, |
| LEX_SYMTAB, |
| LEX_CLS, |
| LEX_EDIT, |
| LEX_SAVE, |
| LEX_RESAVE, |
| LEX_LOAD, |
| LEX_NAME, |
| LEX_LISTP, |
| LEX_SHOW, |
| LEX_STACK, |
| LEX_STATUS, |
| LEX_CACHE, |
| LEX_INSPECT, |
| LEX_STOW, |
| LEX_PKGRUN, |
| LEX_POP, |
| LEX_CHECK, |
| LEX_INSERT, |
| LEX_INTO, |
| LEX_VALUES, |
| LEX_NULL, |
| LEX_WHERE, |
| LEX_FROM, |
| LEX_EXEC, |
| LEX_SELECT, |
| LEX_AS, |
| LEX_ALL, |
| LEX_BY, |
| LEX_CROSS, |
| LEX_DESC, |
| LEX_FULL, |
| LEX_GROUP, |
| LEX_INNER, |
| LEX_JOIN, |
| LEX_LEFT, |
| LEX_LIMIT, |
| LEX_NATURAL, |
| LEX_OFFSET, |
| LEX_ORDER, |
| LEX_OUTER, |
| LEX_RIGHT, |
| LEX_FETCH, |
| LEX_DISTINCT, |
| LEX_DEFAULT, |
| LEX_RETURNING, |
| LEX_LEVEL, |
| LEX_COMMITTED, |
| LEX_SERIALIZABLE, |
| LEX_ONLY, |
| LEX_HOLD, |
| LEX_FORWARD, |
| LEX_WITH, |
| LEX_PRIOR, |
| LEX_RELATIVE, |
| LEX_BACKWARD, |
| LEX_OF, |
| LEX_SCROLL, |
| LEX_NOWAIT, |
| LEX_HAVING, |
| LEX_END_TOKENS |
| ); |
| |
| type Aux_Kind is (No_Aux, SID_Aux, FID_Aux, LNO_Aux); |
| |
| type Token_Type(Aux : Aux_Kind := No_Aux) is |
| record |
| Token : Token_Kind := No_Token; |
| case Aux is |
| when SID_Aux => |
| SID : String_ID; |
| when FID_Aux => |
| FID : Func_ID; |
| when LNO_Aux => |
| LNO : LNumber_Type; |
| when No_Aux => |
| null; |
| end case; |
| end record; |
| |
| for Token_Type use |
| record |
| Aux at 0 range 0..2; |
| Token at 0 range 3..12; |
| SID at 0 range 16..31; |
| FID at 0 range 16..31; |
| LNO at 0 range 13..31; |
| end record; |
| |
| type Tokens_Index is range 0..999999; |
| type Token_Array is array(Tokens_Index range <>) of Token_Type; |
| type Token_Line is access all Token_Array; |
| |
| type Line_Node is |
| record |
| Line : Token_Line; |
| LNO : LNumber_Type := 0; |
| Numbered : Boolean := False; |
| end record; |
| |
| type Nodes_Index is range 0..999999; |
| type LNodes_Array is array(Nodes_Index range <>) of Line_Node; |
| type LNodes_Ptr is access all LNodes_Array; |
| |
| type VString is |
| record |
| Max_Length : Natural := 0; |
| Fixed : Boolean := False; |
| end record; |
| |
| function To_Long(Object : VString; Radix : Natural) return Long_Type; |
| |
| function Element (V : String_ID) return String; |
| |
| end Rep_Clause5_Pkg; |