summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/rep_clause5_pkg.ads')
-rw-r--r--gcc/testsuite/gnat.dg/rep_clause5_pkg.ads383
1 files changed, 383 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads b/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads
new file mode 100644
index 000000000..e3496c4a2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads
@@ -0,0 +1,383 @@
+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;