;;; -*- mode:lisp;package:user;base:10.;fonts:(cptfontb) -*- 
;;; $Header: /ct/interp/sema.l,v 1.1 83/10/19 12:20:04 penny Exp $
;;; $Log:	/ct/interp/sema.l,v $
;;;Revision 1.1  83/10/19  12:20:04  penny
;;;Initial revision
;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; old revision logs

;;;Revision 1.71  83/10/16  01:58:36  penny
;;;orphan subunit
;;;
;;;Revision 1.70  83/10/15  07:47:17  paul
;;;contexts and visibility
;;;
;;;Revision 1.69  83/10/14  06:44:24  penny
;;;numerous hacks for private type visibility.
;;;
;;;Revision 1.68  83/10/12  03:36:06  penny
;;;not a lot.
;;;
;;;Revision 1.67  83/10/10  03:42:55  paul
;;;added dn_var and dn_subtype to redeclare.
;;;
;;;Revision 1.66  83/10/09  19:25:39  paul
;;;cleaned up generic instantiation, and used hash tables to speed up instantiations.
;;;
;;;Revision 1.65  83/10/08  05:34:47  paul
;;;fixes for tasking.
;;;
;;;Revision 1.64  83/10/07  03:36:31  paul
;;;fixes for dn_integer and dn_float in formal_consistant_with_literalp.
;;;added number declarations to redeclare....
;;;
;;;Revision 1.63  83/10/06  18:08:35  penny
;;;commented out the break
;;;
;;;Revision 1.62  83/10/06  00:53:28  paul
;;;added redeclaring of generic type parameters.
;;;
;;;Revision 1.61  83/10/04  03:59:05  paul
;;;added length attribute
;;;
;;;Revision 1.60  83/10/03  06:20:19  paul
;;;added rename to extract_basetype.
;;;started hacking generic in_out params.
;;;
;;;Revision 1.59  83/10/03  01:07:54  penny
;;;corrected a bug in the instantiating code that copied types unnecessarily
;;;causing problems with generic IO.
;;;
;;;Revision 1.58  83/10/01  08:38:00  paul
;;;numerous generic fixes, added in parameters.
;;;
;;;Revision 1.57  83/09/30  15:11:55  penny
;;;indirectified sgripes
;;;
;;;Revision 1.56  83/09/30  08:32:13  paul
;;;n
;;;variuos generic hacks
;;;
;;;Revision 1.55  83/09/29  19:25:31  pozsvath
;;;got nested aggregates to work properly
;;;
;;;Revision 1.54  83/09/29  06:00:17  paul
;;;numerous generics fixes
;;;
;;;Revision 1.53  83/09/26  01:09:18  paul
;;;corrected defn of find_defo
;;;
;;;Revision 1.52  83/09/23  05:26:57  paul
;;;fixed walk_env_rec for private types.
;;;
;;;Revision 1.51  83/09/23  00:33:26  penny
;;;added dn_binary to extract_basetype
;;;
;;;Revision 1.50  83/09/22  04:32:44  penny
;;;fixed problem with assignment proporgation of types.
;;;added derived to extract_basetype
;;;
;;;Revision 1.49  83/09/20  23:40:28  paul
;;;convert to new filename convention
;;;
;;;Revision 1.48  83/09/18  00:26:20  paul
;;;fixed assignment to constant objects..
;;;
;;;Revision 1.47  83/09/17  22:53:00  pozsvath
;;;fixed srcpos bug.
;;;
;;;Revision 1.46  83/09/16  02:30:30  penny
;;;fixed bug concerning matching nuill parameters.
;;;
;;;Revision 1.45  83/09/14  18:54:56  paul
;;;fixed entry for function calls in check_declared
;;;
;;;Revision 1.44  83/09/14  02:26:33  paul
;;;added qualifiers
;;;
;;;Revision 1.43  83/09/10  20:41:50  penny
;;;modified to work with new BIF strayegy.
;;;
;;;Revision 1.42  83/09/08  23:52:02  penny
;;;changed lex_ident to lex_string in op_names
;;;
;;;Revision 1.41  83/09/03  20:35:04  pozsvath
;;;Patched constants...
;;;
;;;Revision 1.40  83/08/31  04:10:39  paul
;;;added basetype hacks for conversions, and alls
;;;
;;;Revision 1.39  83/08/30  00:56:55  penny
;;;global replaced io with ct_io.
;;;
;;;Revision 1.38  83/08/26  22:59:52  penny
;;;added typechecking code for access types.
;;;
;;;Revision 1.37  83/08/26  22:13:26  pozsvath
;;;Hacked at normalize_unconstrained_array_aggregate
;;;
;;;Revision 1.36  83/08/25  19:19:37  pozsvath
;;;Hacked record aggr. normalization
;;;
;;;Revision 1.35  83/08/24  22:24:03  pozsvath
;;;Edited record aggregate normalization functions.
;;;
;;;Revision 1.34  83/08/23  23:04:18  pozsvath
;;;added bit to do aggregate normalization
;;;
;;;Revision 1.33  83/08/23  18:53:03  penny
;;;boots for aggies
;;;
;;;Revision 1.32  83/08/22  20:15:39  paul
;;;fooled and possible broke extract_basetype wrt. selected
;;;
;;;Revision 1.31  83/08/22  17:44:19  pozsvath
;;;Moved sc_diana to top of file so that now it is compilable again!
;;;
;;;Revision 1.30  83/08/22  03:16:06  paul
;;;hacked records.
;;;
;;;Revision 1.29  83/08/19  17:01:33  pozsvath
;;;Added srcposbeg and linposbeg
;;;
;;;Revision 1.28  83/08/17  03:02:24  paul
;;;fixed *catch to have only one form
;;;
;;;Revision 1.27  83/08/16  23:07:04  penny
;;;disambiguate now checks if function is = or /=
;;;still needs to propogate the type for /=.
;;;needed for enumeration types.
;;;
;;;Revision 1.26  83/08/16  13:32:03  paul
;;;Got environment walking for loop id's working...
;;;
;;;Revision 1.25  83/08/15  17:27:14  penny
;;;added and xor or to sym op
;;;
;;;Revision 1.24  83/08/15  04:31:14  paul
;;;fixed numerous bugs, including the
;;;package enclosure bug in  declarative_item,
;;;
;;;Revision 1.23  83/08/13  20:52:34  paul
;;;Hacked dissambiguation...
;;;
;;;Revision 1.22  83/08/12  19:25:22  pozsvath
;;;added reverse to 'sort_actuals_...'
;;;
;;;Revision 1.21  83/08/12  01:39:21  paul
;;;fixed gripe errors in dissambiguate_function_reference
;;;
;;;Revision 1.20  83/08/11  20:59:03  penny
;;;altered extract_basetype to include attribute calls
;;;
;;;Revision 1.19  83/08/11  15:42:45  pozsvath
;;;A bit of sema hacking (!)
;;;Fixed dissambiguation for function or procedure calls with keywords
;;;or defaults.
;;;
;;;Revision 1.18  83/08/10  02:11:33  paul
;;;added checks for character literal.
;;;added type checking for discrete ranges
;;;
;;;Revision 1.17  83/08/08  18:18:12  pozsvath
;;;Initialized path field in source_region record type.
;;;
;;;Revision 1.16  83/08/06  21:39:30  paul
;;;Fixed boolean types
;;;
;;;Revision 1.15  83/08/02  22:44:26  paul
;;;added mod abs and rem to the supported opperators.
;;;(watchout for possible case problems on LM
;;;
;;;Revision 1.14  83/08/02  15:43:33  penny
;;;fixed previous hack of copylist to be copy_dn
;;;
;;;Revision 1.13  83/08/02  12:18:45  penny
;;;Fixed problem with ada_ident.. moved it to the macro area and wraped it in an
;;;eval-when ...  (Paul did it)
;;;
;;;Revision 1.12  83/07/21  16:46:08  penny
;;;fixed use of copylist to use copy instead
;;;
;;;Revision 1.11  83/07/20  08:13:12  paul
;;;general cleanup
;;;
;;;Revision 1.10  83/07/19  03:22:59  paul
;;;misc code tidying.
;;;
;;;Revision 1.9  83/07/18  02:58:41  paul
;;;moved certain type checking functions to this file.
;;;
;;;Revision 1.6  83/07/11  19:32:44  penny
;;;hacked find_needed
;;;
;;;Revision 1.5  83/07/09  18:29:26  pozsvath
;;;unfexprified sc_diana
;;;
;;;Revision 1.4  83/07/09  16:09:32  pozsvath
;;;redefined sc_diana as a macro
;;;
;;;Revision 1.3  83/07/06  09:24:50  penny
;;;reposition mode line
;;;
;;;Revision 1.1  83/06/22  13:03:23  penny
;;;Initial revision
;;;
;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                            sema.l                               ;;;
;;; Paul Robertson                                  January 30, 1983 ;;;
;;;                                                                  ;;;
;;;       The C*T Ada Interpreters Static Semantic support           ;;;
;;;                                                                  ;;;
;;; This file is part of a proprietary software project.  Source     ;;;
;;; code and documentation describing implementation details are     ;;;
;;; available on a confidential, non-disclosure basis only.  These   ;;;
;;; materials, including this file in particular, are trade secrets  ;;;
;;; of Computer * Thought Corporation.                               ;;;
;;;                                                                  ;;;
;;; (c) Copyright 1982 and 1983,  Computer * Thought Corporation.    ;;;
;;;     All Rights Reserved.                                         ;;;
;;;                                                                  ;;;
;;; Reference materials:                                             ;;;
;;;   Miller, 1982.  The C*T Ada Tutor: Guide to the Implementation. ;;;
;;;   Charniak et al., 198?.  Artificial Intelligence Programming.   ;;;
;;;                                                                  ;;;
;;; The following code assumes familiarity with the above.           ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Ensure presence of needed files. 


(eval-when (compile load eval) (ct_load 'aip))	      ;AIP macros pkg. 

(eval-when (compile load eval) (ct_load 'compat))     ;Franz/LM compat pkg. 

(eval-when (compile load eval) (ct_load 'charmac))

(eval-when (compile load eval) (ct_load 'time))       ;Timing functions. 

(eval-when (compile load eval) (ct_load 'diana))      ; Diana tools.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Compiler Declarations and Global Variables -- 

#+franz (declare (macros t))
(declare (ct_includef 'intrpdcl))		; get the specials
(eval-when (compile load eval) (ct_load 'ferec))
(eval-when (compile load eval) (ct_load 'aggies))
(eval-when (compile load eval) (ct_load 'generics))
(eval-when (compile load eval) (ct_load 'pnorms))
(eval-when (compile load eval) (ct_load 'resolve))
(eval-when (compile load eval) (ct_load 'types))
(eval-when (compile load eval) (ct_load 'visible))

;;; eof
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

