1/* 2 * Copyright (c) 1999, 2008 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23/* 24 * Mach Operating System 25 * Copyright (c) 1991,1990 Carnegie Mellon University 26 * All Rights Reserved. 27 * 28 * Permission to use, copy, modify and distribute this software and its 29 * documentation is hereby granted, provided that both the copyright 30 * notice and this permission notice appear in all copies of the 31 * software, derivative works or modified versions, and any portions 32 * thereof, and that both notices appear in supporting documentation. 33 * 34 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 35 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 36 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 37 * 38 * Carnegie Mellon requests users of this software to return to 39 * 40 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 41 * School of Computer Science 42 * Carnegie Mellon University 43 * Pittsburgh PA 15213-3890 44 * 45 * any improvements or extensions that they make and grant Carnegie the 46 * rights to redistribute these changes. 47 */ 48/* 49 * HISTORY 50 * 07-Apr-89 Richard Draves (rpd) at Carnegie-Mellon University 51 * Extensive revamping. Added polymorphic arguments. 52 * Allow multiple variable-sized inline arguments in messages. 53 * 54 * 27-May-87 Richard Draves (rpd) at Carnegie-Mellon University 55 * Created. 56 */ 57 58#ifndef _STATEMENT_H 59#define _STATEMENT_H 60 61#include "routine.h" 62 63typedef enum statement_kind 64{ 65 skRoutine, 66 skImport, 67 skUImport, 68 skSImport, 69 skDImport, 70 skIImport, 71 skRCSDecl 72} statement_kind_t; 73 74typedef struct statement 75{ 76 statement_kind_t stKind; 77 struct statement *stNext; 78 union 79 { 80 /* when stKind == skRoutine */ 81 routine_t *_stRoutine; 82 /* when stKind == skImport, skUImport, skSImport, skDImport, skIImport */ 83 string_t _stFileName; 84 } data; 85} statement_t; 86 87#define stRoutine data._stRoutine 88#define stFileName data._stFileName 89 90#define stNULL ((statement_t *) 0) 91 92/* stNext will be initialized to put the statement in the list */ 93extern statement_t *stAlloc(); 94 95/* list of statements, in order they occur in the .defs file */ 96extern statement_t *stats; 97 98#endif /* _STATEMENT_H */ 99