;;; -*- 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;