------------------------------------------------------------------------------
-- --
-- ASIS Tester And iNTerpreter (ASIStant) COMPONENTS --
-- --
-- A S I S T A N T . C O M M O N --
-- --
-- S p e c --
-- --
-- Copyright (c) 1997-2002, Free Software Foundation, Inc. --
-- --
-- ASIStant is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 2, or (at your option) any later --
-- version. ASIStant is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MER- --
-- CHANTABILITY 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 distributed with GNAT; see file COPYING. If --
-- not, write to the Free Software Foundation, 59 Temple Place Suite 330, --
-- Boston, MA 02111-1307, USA. --
-- --
-- ASIStant is an evolution of ASIStint tool that was created by --
-- Vasiliy Fofanov as part of a collaboration between Software Engineering --
-- Laboratory of the Swiss Federal Institute of Technology in Lausanne, --
-- Switzerland, and the Scientific Research Computer Center of the Moscow --
-- University, Russia, supported by the Swiss National Science Foundation --
-- grant #7SUPJ048247, "Development of ASIS for GNAT with industry quality" --
-- --
-- ASIStant is distributed as a part of the ASIS implementation for GNAT --
-- (ASIS-for-GNAT) and is maintained by Ada Core Technologies Inc --
-- (http://www.gnat.com). --
------------------------------------------------------------------------------
with Asis;
with Asis.Compilation_Units.Relations;
with Asis.Text;
with Asis.Data_Decomposition;
package ASIStant.Common is
------------------------------------------------------------------------------
-- This package contains definitions common to ASIStant packages. By changing
-- some of the constants here, ASIStant flexibility can be adjusted.
------------------------------------------------------------------------------
MAX_ID_LENGTH : constant Positive := 32;
-- The length of ASIStant identifier (may not be less than the longest
-- name of ASIS query).
MAX_VARIABLES : constant Positive := 100;
-- Size of initial ASIStant variable table; see ASIStant.Table
MAX_TREENODES : constant Positive := 500;
-- Size of ASIStant statement trees; see ASIStant.S_Parser
MAX_SCRIPTDEPTH : constant Positive := 5;
-- Depth of script enclosing; see ASIStant.Text_IO
MAX_ATIELEMENTS : Natural := 200;
MAX_ATIELEMLISTS : Natural := 100;
MAX_ATICUNITS : Natural := 100;
MAX_ATICUNITLISTS : Natural := 10;
MAX_ATICONTEXTS : Natural := 10;
MAX_ATISPANS : Natural := 100;
MAX_ATILINES : Natural := 100;
MAX_ATILINELISTS : Natural := 30;
MAX_ATIRELATIONSHIPS : Natural := 10;
MAX_DDA_ARRCOMPS : Natural := 100;
MAX_DDA_ARRCOMPLISTS : Natural := 10;
MAX_DDA_RECCOMPS : Natural := 100;
MAX_DDA_RECCOMPLISTS : Natural := 10;
-- These constants define the size of ASIS support arrays declared
-- in ASIStant.XTable
ASIStant_ERROR : exception;
-- This exception is raised any time ASIStant encounters a non-ASIS error;
-- diagnosis of the type Error_Type is stored in LastErr
ASIStant_ASIS_ERROR : exception;
-- This exception is raised any time ASIStant encounters an ASIS error
subtype Name_String is Wide_String (1 .. MAX_ID_LENGTH);
-- Type to represent ASIStant IDs
package DDA renames Asis.Data_Decomposition;
type ElemList_Ptr is access all Asis.Element_List;
type CUnitList_Ptr is access all Asis.Compilation_Unit_List;
type Relship_Ptr is access all
Asis.Compilation_Units.Relations.Relationship;
type LineList_Ptr is access all Asis.Text.Line_List;
type String_Ptr is access all Wide_String;
type DDA_ArrCList_Ptr is access all DDA.Array_Component_List;
type DDA_RecCList_Ptr is access all DDA.Record_Component_List;
type ElemArray is array (Natural range <>) of Asis.Element;
type ElemListArray is array (Natural range <>) of ElemList_Ptr;
type CUnitArray is array (Natural range <>) of Asis.Compilation_Unit;
type CUnitListArray is array (Natural range <>) of CUnitList_Ptr;
type RelshipArray is array (Natural range <>) of Relship_Ptr;
type LineArray is array (Natural range <>) of Asis.Text.Line;
type LineListArray is array (Natural range <>) of LineList_Ptr;
type DDA_ArrCArray is array (Natural range <>) of DDA.Array_Component;
type DDA_ArrCListArray is array (Natural range <>) of DDA_ArrCList_Ptr;
type DDA_RecCArray is array (Natural range <>) of DDA.Record_Component;
type DDA_RecCListArray is array (Natural range <>) of DDA_RecCList_Ptr;
type ElemArray_Ptr is access all ElemArray;
type ElemListArray_Ptr is access all ElemListArray;
type CUnitArray_Ptr is access all CUnitArray;
type CUnitListArray_Ptr is access all CUnitListArray;
type RelshipArray_Ptr is access all RelshipArray;
type LineArray_Ptr is access all LineArray;
type LineListArray_Ptr is access all LineListArray;
type DDA_ArrCArray_Ptr is access all DDA_ArrCArray;
type DDA_ArrCListArray_Ptr is access all DDA_ArrCListArray;
type DDA_RecCArray_Ptr is access all DDA_RecCArray;
type DDA_RecCListArray_Ptr is access all DDA_RecCListArray;
type Error_Type is
(
ERR_INTERNAL,
ERR_NOTIMPLEMENTED,
ERR_NOTSUPPORTED,
ERR_NOSCRIPT,
ERR_NEEDFILENAME,
ERR_BADBOOLEAN,
ERR_BADEXPR,
ERR_BADID,
ERR_BADINTEGER,
ERR_BADLISTELEM,
ERR_BADPARAM,
ERR_BADPARAMLIST,
ERR_BADSTRING,
ERR_BADVARTYPE,
ERR_BADVARNAME,
ERR_NEEDCHAR,
ERR_NEEDFUNCTION,
ERR_NEEDPARAM,
ERR_NOTINRANGE,
ERR_TOOMANYPARAMS,
ERR_UNKNOWNVAR,
ERR_TABLEFULL,
ERR_UNKNOWNSYNTAX,
ERR_UNKNOWNQUERY
);
-- All possible errors
LastErr : Error_Type;
DebugPrint : Boolean := True;
procedure Print_ASIStant_Header;
-- Prints the ASIStant copyright header
procedure Error (ErrNo : Error_Type;
ErrStr : Wide_String := "";
Level : Natural := 5);
-- Debug output function
pragma No_Return (Error);
end ASIStant.Common;
syntax highlighted by Code2HTML, v. 0.9.1