123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /*
- * @OSF_COPYRIGHT@
- * COPYRIGHT NOTICE
- * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- * the full copyright text.
- */
- /*
- * HISTORY
- */
- /* $XConsortium: UilSrcDef.h /main/10 1995/07/14 09:38:34 drk $ */
- /*
- * (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
- /*
- **++
- ** FACILITY:
- **
- ** User Interface Language Compiler (UIL)
- **
- ** ABSTRACT:
- **
- ** This include file defines the interface to the UIL source
- ** management procedures in the UIL compiler.
- **
- **--
- **/
- #ifndef UilSrcDef_h
- #define UilSrcDef_h
- /*
- ** Interface to src_open_source
- */
- #define src_k_open_normal 1 /* open succeeded */
- #define src_k_open_error 0 /* open was unsuccessful */
- /*
- ** Close return statuses
- */
- #define src_k_close_normal 1 /* close succeeded */
- #define src_k_close_error 0 /* close was unsuccessful */
- /*
- ** Interface to src_get_source_line
- */
- #define src_k_read_truncated 3 /* record truncated */
- #define src_k_read_error 2 /* error during read */
- #define src_k_read_normal 1 /* record read normally */
- #define src_k_end_source 0 /* end of source */
- /*
- ** Source records describe the lines of the source program. The are
- ** used to retrieve the source file for the listing and diagnostics.
- ** Diagnostics randomly access these data structures by maintaining
- ** the address of the corresponding source record in tokens, the parse
- ** stack and symbol table entries. The listing file walks the source
- ** records via the linked list provide by ar_next_source_record.
- */
- #define _src_null_access_key( _key ) (_key.l_key == EOF)
- #define src_k_key_length 4
- typedef struct
- {
- unsigned long l_key;
- } z_key;
- typedef struct _src_message_item_type
- {
- struct _src_message_item_type *az_next_message;
- status l_message_number;
- unsigned char b_source_pos;
- char c_text[ 1 ];
- } src_message_item_type;
- #define src_message_item_type_size \
- (sizeof(src_message_item_type) -\
- sizeof( struct _src_message_item_type.c_text))
- typedef struct _src_machine_code_type
- {
- struct _src_machine_code_type *az_next_machine_code;
- unsigned short int w_offset;
- unsigned short int w_code_len;
- union {
- long q_longdata[1]; /* longword alias for data*/
- char c_data[ 1 ]; /* byte alias for data */
- } data;
- } src_machine_code_type;
- #define src_machine_code_type_size \
- (sizeof(src_machine_code_type) -\
- sizeof( struct _src_machine_code_type.c_text))
- /*
- ** Mask for bits in b_flags of the source record
- */
- #define src_m_form_feed (1<<0)
- #define src_m_unprintable_chars (1<<1)
- typedef struct _src_source_record_type
- {
- struct _src_source_record_type *az_next_source_record;
- src_message_item_type *az_message_list;
- unsigned short w_line_number;
- unsigned char b_file_number;
- unsigned char b_flags;
- z_key z_access_key;
- src_machine_code_type *az_machine_code_list;
- unsigned short w_machine_code_cnt;
- } src_source_record_type;
- /*
- ** Source buffers describe the lines of the source program that are
- ** currently being SCAN. Include files and macros a can cause a program
- ** to have more than 1 source buffer. These buffers are managed as a
- ** stack, implemented via a linked list.
- */
- typedef struct _src_source_buffer_type
- {
- struct _src_source_buffer_type *az_prior_source_buffer;
- unsigned short w_current_line_number;
- unsigned short w_current_position;
- char b_file_number;
- char c_text[ src_k_max_source_line_length+1];
- } src_source_buffer_type;
- #endif /* UilSrcDef_h */
- /* DON'T ADD STUFF AFTER THIS #endif */
|