Added dll import/export scheme for MSVC.

* Added scl_export.h with conditional flags for import/export.
* Added SCL_EXPRESS_EXPORT flag for all global variables in headers.
* Added SCL_EXPRESS_EXPORT flag for all function prototypes in headers.
* Added SCL_EXPRESS_DLL_EXPORTS flag for express CMakeLists.txt
This commit is contained in:
davyw 2011-12-01 22:44:22 +01:00 committed by Mark Pictor
parent 879f5092b7
commit ba12196a88
21 changed files with 533 additions and 418 deletions

View file

@ -47,6 +47,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "symbol.h"
#include "scope.h"
@ -128,11 +129,11 @@ struct Where_ {
#include "decstart.h"
#endif /* ALGORITHM_C */
GLOBAL struct freelist_head ALG_fl;
GLOBAL struct freelist_head FUNC_fl;
GLOBAL struct freelist_head RULE_fl;
GLOBAL struct freelist_head PROC_fl;
GLOBAL struct freelist_head WHERE_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head ALG_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head FUNC_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head RULE_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head PROC_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head WHERE_fl;
#include "de_end.h"
@ -192,9 +193,9 @@ extern void RULEput_where_clause PROTO( ( Algorithm, Linked_List ) );
/* function prototypes */
/***********************/
extern Scope ALGcreate PROTO( ( char ) );
extern void ALGinitialize PROTO( ( void ) );
extern void ALGput_full_text PROTO( ( Scope, int, int ) );
extern SCL_EXPRESS_EXPORT Scope ALGcreate PROTO( ( char ) );
extern SCL_EXPRESS_EXPORT void ALGinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ALGput_full_text PROTO( ( Scope, int, int ) );
/********************/
/* inline functions */

View file

@ -43,6 +43,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "scope.h"
@ -78,7 +79,7 @@ struct Case_Item_ {
#include "decstart.h"
#endif /*CASE_ITEM_C*/
GLOBAL struct freelist_head CASE_IT_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head CASE_IT_fl;
#include "de_end.h"
@ -96,8 +97,8 @@ GLOBAL struct freelist_head CASE_IT_fl;
#define CASE_IT_new() (struct Case_Item_ *)MEM_new(&CASE_IT_fl)
#define CASE_IT_destroy(x) MEM_destroy(&CASE_IT_fl,(Freelist *)(Generic)x)
extern Case_Item CASE_ITcreate PROTO( ( Linked_List, struct Statement_ * ) );
extern void CASE_ITinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT Case_Item CASE_ITcreate PROTO( ( Linked_List, struct Statement_ * ) );
extern SCL_EXPRESS_EXPORT void CASE_ITinitialize PROTO( ( void ) );
/********************/
/* inline functions */

View file

@ -81,7 +81,7 @@ typedef HashEntry DictionaryEntry;
#include "decstart.h"
#endif /*DICTIONARY_C*/
GLOBAL char DICT_type; /* set as a side-effect of DICT lookup routines */
GLOBAL SCL_EXPRESS_EXPORT char DICT_type; /* set as a side-effect of DICT lookup routines */
/* to type of object found */
#include "de_end.h"
@ -109,14 +109,14 @@ GLOBAL char DICT_type; /* set as a side-effect of DICT lookup routines */
/* function prototypes */
/***********************/
extern void DICTinitialize PROTO( ( void ) );
extern int DICTdefine PROTO( ( Dictionary, char *, Generic, Symbol *, char ) );
extern int DICT_define PROTO( ( Dictionary, char *, Generic, Symbol *, char ) );
extern void DICTundefine PROTO( ( Dictionary, char * ) );
extern Generic DICTlookup PROTO( ( Dictionary, char * ) );
extern Generic DICTlookup_symbol PROTO( ( Dictionary, char *, Symbol ** ) );
extern Generic DICTdo PROTO( ( DictionaryEntry * ) );
extern void DICTprint PROTO( ( Dictionary ) );
extern SCL_EXPRESS_EXPORT void DICTinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int DICTdefine PROTO( ( Dictionary, char *, Generic, Symbol *, char ) );
extern SCL_EXPRESS_EXPORT int DICT_define PROTO( ( Dictionary, char *, Generic, Symbol *, char ) );
extern SCL_EXPRESS_EXPORT void DICTundefine PROTO( ( Dictionary, char * ) );
extern SCL_EXPRESS_EXPORT Generic DICTlookup PROTO( ( Dictionary, char * ) );
extern SCL_EXPRESS_EXPORT Generic DICTlookup_symbol PROTO( ( Dictionary, char *, Symbol ** ) );
extern SCL_EXPRESS_EXPORT Generic DICTdo PROTO( ( DictionaryEntry * ) );
extern SCL_EXPRESS_EXPORT void DICTprint PROTO( ( Dictionary ) );
/********************/
/* inline functions */

View file

@ -62,6 +62,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "symbol.h"
#include "scope.h"
@ -116,9 +117,9 @@ struct Entity_ {
#include "decstart.h"
#endif /* ENTITY_C */
GLOBAL struct freelist_head ENTITY_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head ENTITY_fl;
GLOBAL int ENTITY_MARK INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int ENTITY_MARK INITIALLY( 0 );
#include "de_end.h"
@ -157,20 +158,20 @@ GLOBAL int ENTITY_MARK INITIALLY( 0 );
/* function prototypes */
/***********************/
extern struct Scope_ * ENTITYcreate PROTO( ( struct Symbol_ * ) );
extern void ENTITYinitialize PROTO( ( void ) );
extern void ENTITYadd_attribute PROTO( ( struct Scope_ *, struct Variable_ * ) );
extern struct Scope_ * ENTITYcopy PROTO( ( struct Scope_ * ) );
extern Entity ENTITYfind_inherited_entity PROTO( ( struct Scope_ *, char *, int ) );
extern Variable ENTITYfind_inherited_attribute PROTO( ( struct Scope_ *, char *, struct Symbol_ ** ) );
extern Variable ENTITYresolve_attr_ref PROTO( ( Entity, Symbol *, Symbol * ) );
extern bool ENTITYhas_immediate_supertype PROTO( ( Entity, Entity ) );
extern Variable ENTITYget_named_attribute PROTO( ( Entity, char * ) );
extern Linked_List ENTITYget_all_attributes PROTO( ( Entity ) );
extern bool ENTITYhas_supertype PROTO( ( Entity, Entity ) );
extern void ENTITYadd_instance PROTO( ( Entity, Generic ) );
extern int ENTITYget_initial_offset PROTO( ( Entity ) );
extern bool ENTITYdeclares_variable PROTO( ( Entity, struct Variable_ * ) );
extern SCL_EXPRESS_EXPORT struct Scope_ * ENTITYcreate PROTO( ( struct Symbol_ * ) );
extern SCL_EXPRESS_EXPORT void ENTITYinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ENTITYadd_attribute PROTO( ( struct Scope_ *, struct Variable_ * ) );
extern SCL_EXPRESS_EXPORT struct Scope_ * ENTITYcopy PROTO( ( struct Scope_ * ) );
extern SCL_EXPRESS_EXPORT Entity ENTITYfind_inherited_entity PROTO( ( struct Scope_ *, char *, int ) );
extern SCL_EXPRESS_EXPORT Variable ENTITYfind_inherited_attribute PROTO( ( struct Scope_ *, char *, struct Symbol_ ** ) );
extern SCL_EXPRESS_EXPORT Variable ENTITYresolve_attr_ref PROTO( ( Entity, Symbol *, Symbol * ) );
extern SCL_EXPRESS_EXPORT bool ENTITYhas_immediate_supertype PROTO( ( Entity, Entity ) );
extern SCL_EXPRESS_EXPORT Variable ENTITYget_named_attribute PROTO( ( Entity, char * ) );
extern SCL_EXPRESS_EXPORT Linked_List ENTITYget_all_attributes PROTO( ( Entity ) );
extern SCL_EXPRESS_EXPORT bool ENTITYhas_supertype PROTO( ( Entity, Entity ) );
extern SCL_EXPRESS_EXPORT void ENTITYadd_instance PROTO( ( Entity, Generic ) );
extern SCL_EXPRESS_EXPORT int ENTITYget_initial_offset PROTO( ( Entity ) );
extern SCL_EXPRESS_EXPORT bool ENTITYdeclares_variable PROTO( ( Entity, struct Variable_ * ) );
#if 0
extern void ENTITYdelete_instance PROTO( ( Entity, Generic ) );

View file

@ -88,29 +88,29 @@ typedef struct Error_Warning_ {
#include "decstart.h"
#endif /* ERROR_C */
GLOBAL bool __ERROR_buffer_errors INITIALLY( false );
GLOBAL char * current_filename INITIALLY( "stdin" );
GLOBAL SCL_EXPRESS_EXPORT bool __ERROR_buffer_errors INITIALLY( false );
GLOBAL SCL_EXPRESS_EXPORT char * current_filename INITIALLY( "stdin" );
/* flag to remember whether non-warning errors have occurred */
GLOBAL bool ERRORoccurred INITIALLY( false );
GLOBAL SCL_EXPRESS_EXPORT bool ERRORoccurred INITIALLY( false );
GLOBAL Error experrc INITIALLY( ERROR_none );
GLOBAL Error ERROR_subordinate_failed INITIALLY( ERROR_none );
GLOBAL Error ERROR_syntax_expecting INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error experrc INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_subordinate_failed INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_syntax_expecting INITIALLY( ERROR_none );
/* all of these are 1 if true, 0 if false switches */
/* for debugging fedex */
GLOBAL int ERRORdebugging INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int ERRORdebugging INITIALLY( 0 );
/* for debugging malloc during resolution */
GLOBAL int malloc_debug_resolve INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int malloc_debug_resolve INITIALLY( 0 );
/* for debugging yacc/lex */
GLOBAL int debug INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int debug INITIALLY( 0 );
GLOBAL struct Linked_List_ * ERRORwarnings;
GLOBAL struct freelist_head ERROR_OPT_fl;
GLOBAL SCL_EXPRESS_EXPORT struct Linked_List_ * ERRORwarnings;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head ERROR_OPT_fl;
GLOBAL void ( *ERRORusage_function ) PROTO( ( void ) );
GLOBAL SCL_EXPRESS_EXPORT void ( *ERRORusage_function ) PROTO( ( void ) );
#include "de_end.h"
@ -121,6 +121,14 @@ GLOBAL void ( *ERRORusage_function ) PROTO( ( void ) );
#define ERROR_OPT_new() (struct Error_Warning_ *)MEM_new(&ERROR_OPT_fl)
#define ERROR_OPT_destroy(x) MEM_destroy(&ERROR_OPT_fl,(Freelist *)(Generic)x)
/***********************/
/* function prototypes */
/***********************/
#ifdef __MSVC__
extern SCL_EXPRESS_EXPORT void ERROR_start_message_buffer PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERROR_flush_message_buffer PROTO( ( void ) );
#endif
/********************/
/* Inline functions */
@ -153,9 +161,10 @@ ERRORis_enabled( Error error ) {
static_inline
void
ERRORbuffer_messages( bool flag ) {
extern void ERROR_start_message_buffer( void ),
#ifndef __MSVC__
extern void ERROR_start_message_buffer( void ),
ERROR_flush_message_buffer( void );
#endif
__ERROR_buffer_errors = flag;
if( __ERROR_buffer_errors ) {
ERROR_start_message_buffer();
@ -167,8 +176,10 @@ ERRORbuffer_messages( bool flag ) {
static_inline
void
ERRORflush_messages( void ) {
#ifndef __MSVC__
extern void ERROR_start_message_buffer( void ),
ERROR_flush_message_buffer( void );
#endif
if( __ERROR_buffer_errors ) {
ERROR_flush_message_buffer();
@ -182,28 +193,32 @@ ERRORflush_messages( void ) {
/* function prototypes */
/***********************/
extern void ERRORinitialize PROTO( ( void ) );
extern void ERRORinitialize_after_LIST PROTO( ( void ) );
extern void ERRORnospace PROTO( ( void ) );
extern void ERRORabort PROTO( ( int ) );
extern Error ERRORcreate PROTO( ( char *, Severity ) );
extern void ERRORreport PROTO( ( Error, ... ) );
extern SCL_EXPRESS_EXPORT void ERRORinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERRORinitialize_after_LIST PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERRORnospace PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERRORabort PROTO( ( int ) );
extern SCL_EXPRESS_EXPORT Error ERRORcreate PROTO( ( char *, Severity ) );
extern SCL_EXPRESS_EXPORT void ERRORreport PROTO( ( Error, ... ) );
/*SUPPRESS 652*/ /* 1.? */
/*SUPPRESS 842*/ /* 4.0.2 */
struct Symbol_; /* mention Symbol to avoid warning on following line */
extern void ERRORreport_with_symbol PROTO( ( Error, struct Symbol_ *, ... ) );
extern void ERRORreport_with_line PROTO( ( Error, int, ... ) );
extern void ERRORbuffer_messages PROTO( ( bool ) );
extern void ERRORflush_messages PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERRORreport_with_symbol PROTO( ( Error, struct Symbol_ *, ... ) );
extern SCL_EXPRESS_EXPORT void ERRORreport_with_line PROTO( ( Error, int, ... ) );
#if !supports_inline_functions
extern SCL_EXPRESS_EXPORT void ERRORbuffer_messages PROTO( ( bool ) );
extern SCL_EXPRESS_EXPORT void ERRORflush_messages PROTO( ( void ) );
#endif
extern void ERROR_start_message_buffer PROTO( ( void ) );
extern void ERROR_flush_message_buffer PROTO( ( void ) );
#ifndef __MSVC__
extern SCL_EXPRESS_EXPORT void ERROR_start_message_buffer PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERROR_flush_message_buffer PROTO( ( void ) );
#endif
extern void ERRORcreate_warning PROTO( ( char *, Error ) );
extern void ERRORset_warning PROTO( ( char *, int ) );
extern void ERRORset_all_warnings PROTO( ( int ) );
extern void ERRORsafe PROTO( ( jmp_buf env ) );
extern void ERRORunsafe PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void ERRORcreate_warning PROTO( ( char *, Error ) );
extern SCL_EXPRESS_EXPORT void ERRORset_warning PROTO( ( char *, int ) );
extern SCL_EXPRESS_EXPORT void ERRORset_all_warnings PROTO( ( int ) );
extern SCL_EXPRESS_EXPORT void ERRORsafe PROTO( ( jmp_buf env ) );
extern SCL_EXPRESS_EXPORT void ERRORunsafe PROTO( ( void ) );
#if deprecated
extern void ERRORdisable PROTO( ( Error ) );

View file

@ -62,6 +62,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include <math.h>
#include "expbasic.h" /* get basic definitions */
@ -198,23 +199,23 @@ struct EXPop_entry {
#include "decstart.h"
#endif /*EXPRESSION_C*/
GLOBAL struct EXPop_entry EXPop_table[OP_LAST];
GLOBAL SCL_EXPRESS_EXPORT struct EXPop_entry EXPop_table[OP_LAST];
GLOBAL Expression LITERAL_E INITIALLY( EXPRESSION_NULL );
GLOBAL Expression LITERAL_INFINITY INITIALLY( EXPRESSION_NULL );
GLOBAL Expression LITERAL_PI INITIALLY( EXPRESSION_NULL );
GLOBAL Expression LITERAL_ZERO INITIALLY( EXPRESSION_NULL );
GLOBAL Expression LITERAL_ONE;
GLOBAL SCL_EXPRESS_EXPORT Expression LITERAL_E INITIALLY( EXPRESSION_NULL );
GLOBAL SCL_EXPRESS_EXPORT Expression LITERAL_INFINITY INITIALLY( EXPRESSION_NULL );
GLOBAL SCL_EXPRESS_EXPORT Expression LITERAL_PI INITIALLY( EXPRESSION_NULL );
GLOBAL SCL_EXPRESS_EXPORT Expression LITERAL_ZERO INITIALLY( EXPRESSION_NULL );
GLOBAL SCL_EXPRESS_EXPORT Expression LITERAL_ONE;
GLOBAL Error ERROR_bad_qualification INITIALLY( ERROR_none );
GLOBAL Error ERROR_integer_expression_expected INITIALLY( ERROR_none );
GLOBAL Error ERROR_implicit_downcast INITIALLY( ERROR_none );
GLOBAL Error ERROR_ambig_implicit_downcast INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_bad_qualification INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_integer_expression_expected INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_implicit_downcast INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_ambig_implicit_downcast INITIALLY( ERROR_none );
GLOBAL struct freelist_head EXP_fl;
GLOBAL struct freelist_head OP_fl;
GLOBAL struct freelist_head QUERY_fl;
GLOBAL struct freelist_head QUAL_ATTR_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head EXP_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head OP_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head QUERY_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head QUAL_ATTR_fl;
#include "de_end.h"
@ -269,16 +270,16 @@ GLOBAL struct freelist_head QUAL_ATTR_fl;
/* function prototypes */
/***********************/
extern Expression EXPcreate PROTO( ( Type ) );
extern Expression EXPcreate_simple PROTO( ( Type ) );
extern Expression EXPcreate_from_symbol PROTO( ( Type, Symbol * ) );
extern Expression UN_EXPcreate PROTO( ( Op_Code, Expression ) );
extern Expression BIN_EXPcreate PROTO( ( Op_Code, Expression, Expression ) );
extern Expression TERN_EXPcreate PROTO( ( Op_Code, Expression, Expression, Expression ) );
extern Expression QUERYcreate PROTO( ( Symbol *, Expression ) );
extern void EXPinitialize PROTO( ( void ) );
extern Type EXPtype PROTO( ( Expression, struct Scope_ * ) );
extern int EXPget_integer_value PROTO( ( Expression ) );
extern SCL_EXPRESS_EXPORT Expression EXPcreate PROTO( ( Type ) );
extern SCL_EXPRESS_EXPORT Expression EXPcreate_simple PROTO( ( Type ) );
extern SCL_EXPRESS_EXPORT Expression EXPcreate_from_symbol PROTO( ( Type, Symbol * ) );
extern SCL_EXPRESS_EXPORT Expression UN_EXPcreate PROTO( ( Op_Code, Expression ) );
extern SCL_EXPRESS_EXPORT Expression BIN_EXPcreate PROTO( ( Op_Code, Expression, Expression ) );
extern SCL_EXPRESS_EXPORT Expression TERN_EXPcreate PROTO( ( Op_Code, Expression, Expression, Expression ) );
extern SCL_EXPRESS_EXPORT Expression QUERYcreate PROTO( ( Symbol *, Expression ) );
extern SCL_EXPRESS_EXPORT void EXPinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT Type EXPtype PROTO( ( Expression, struct Scope_ * ) );
extern SCL_EXPRESS_EXPORT int EXPget_integer_value PROTO( ( Expression ) );
/********************/
/* inline functions */

View file

@ -52,6 +52,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include <string.h>
#include "scope.h"
@ -98,150 +99,150 @@ struct Express_ {
# define INITIALLY(value)
#endif /*EXPRESS_C*/
GLOBAL Linked_List EXPRESS_path;
GLOBAL int EXPRESSpass;
GLOBAL SCL_EXPRESS_EXPORT Linked_List EXPRESS_path;
GLOBAL SCL_EXPRESS_EXPORT int EXPRESSpass;
GLOBAL void ( *EXPRESSinit_args ) PROTO( ( int, char ** ) ) INITIALLY( 0 );
GLOBAL void ( *EXPRESSinit_parse ) PROTO( ( void ) ) INITIALLY( 0 );
GLOBAL int ( *EXPRESSfail ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL int ( *EXPRESSsucceed ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL void ( *EXPRESSbackend ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL char * EXPRESSprogram_name;
extern char EXPRESSgetopt_options[]; /* initialized elsewhere */
GLOBAL int ( *EXPRESSgetopt ) PROTO( ( int, char * ) ) INITIALLY( 0 );
GLOBAL bool EXPRESSignore_duplicate_schemas INITIALLY( false );
GLOBAL SCL_EXPRESS_EXPORT void ( *EXPRESSinit_args ) PROTO( ( int, char ** ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT void ( *EXPRESSinit_parse ) PROTO( ( void ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int ( *EXPRESSfail ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int ( *EXPRESSsucceed ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT void ( *EXPRESSbackend ) PROTO( ( Express ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT char * EXPRESSprogram_name;
extern SCL_EXPRESS_EXPORT char EXPRESSgetopt_options[]; /* initialized elsewhere */
GLOBAL SCL_EXPRESS_EXPORT int ( *EXPRESSgetopt ) PROTO( ( int, char * ) ) INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT bool EXPRESSignore_duplicate_schemas INITIALLY( false );
GLOBAL Dictionary EXPRESSbuiltins; /* procedures/functions */
GLOBAL SCL_EXPRESS_EXPORT Dictionary EXPRESSbuiltins; /* procedures/functions */
GLOBAL Error ERROR_bail_out INITIALLY( ERROR_none );
GLOBAL Error ERROR_syntax INITIALLY( ERROR_none );
GLOBAL Error ERROR_unlabelled_param_type INITIALLY( ERROR_none );
GLOBAL Error ERROR_file_unreadable;
GLOBAL Error ERROR_file_unwriteable;
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_bail_out INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_syntax INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unlabelled_param_type INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_file_unreadable;
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_file_unwriteable;
GLOBAL struct Scope_ * FUNC_NVL;
GLOBAL struct Scope_ * FUNC_USEDIN;
GLOBAL SCL_EXPRESS_EXPORT struct Scope_ * FUNC_NVL;
GLOBAL SCL_EXPRESS_EXPORT struct Scope_ * FUNC_USEDIN;
GLOBAL char * KW_ABS INITIALLY( "ABS" );
GLOBAL char * KW_ABSTRACT INITIALLY( "ABSTRACT" );
GLOBAL char * KW_ACOS INITIALLY( "ACOS" );
GLOBAL char * KW_AGGREGATE INITIALLY( "AGGREGATE" );
GLOBAL char * KW_ALIAS INITIALLY( "ALIAS" );
GLOBAL char * KW_AND INITIALLY( "AND" );
GLOBAL char * KW_ANDOR INITIALLY( "ANDOR" );
GLOBAL char * KW_ARRAY INITIALLY( "ARRAY" );
GLOBAL char * KW_AS INITIALLY( "AS" );
GLOBAL char * KW_ASIN INITIALLY( "ASIN" );
GLOBAL char * KW_ATAN INITIALLY( "ATAN" );
GLOBAL char * KW_BAG INITIALLY( "BAG" );
GLOBAL char * KW_BEGIN INITIALLY( "BEGIN" );
GLOBAL char * KW_BINARY INITIALLY( "BINARY" );
GLOBAL char * KW_BLENGTH INITIALLY( "BLENGTH" );
GLOBAL char * KW_BOOLEAN INITIALLY( "BOOLEAN" );
GLOBAL char * KW_BY INITIALLY( "BY" );
GLOBAL char * KW_CASE INITIALLY( "CASE" );
GLOBAL char * KW_CONST_E INITIALLY( "CONST_E" );
GLOBAL char * KW_CONSTANT INITIALLY( "CONSTANT" );
GLOBAL char * KW_CONTEXT INITIALLY( "CONTEXT" );
GLOBAL char * KW_COS INITIALLY( "COS" );
GLOBAL char * KW_DERIVE INITIALLY( "DERIVE" );
GLOBAL char * KW_DIV INITIALLY( "DIV" );
GLOBAL char * KW_ELSE INITIALLY( "ELSE" );
GLOBAL char * KW_END INITIALLY( "END" );
GLOBAL char * KW_END_ALIAS INITIALLY( "END_ALIAS" );
GLOBAL char * KW_END_CASE INITIALLY( "END_CASE" );
GLOBAL char * KW_END_CONSTANT INITIALLY( "END_CONSTANT" );
GLOBAL char * KW_END_CONTEXT INITIALLY( "END_CONTEXT" );
GLOBAL char * KW_END_ENTITY INITIALLY( "END_ENTITY" );
GLOBAL char * KW_END_FUNCTION INITIALLY( "END_FUNCTION" );
GLOBAL char * KW_END_IF INITIALLY( "END_IF" );
GLOBAL char * KW_END_LOCAL INITIALLY( "END_LOCAL" );
GLOBAL char * KW_END_MODEL INITIALLY( "END_MODEL" );
GLOBAL char * KW_END_PROCEDURE INITIALLY( "END_PROCEDURE" );
GLOBAL char * KW_END_REPEAT INITIALLY( "END_REPEAT" );
GLOBAL char * KW_END_RULE INITIALLY( "END_RULE" );
GLOBAL char * KW_END_SCHEMA INITIALLY( "END_SCHEMA" );
GLOBAL char * KW_END_TYPE INITIALLY( "END_TYPE" );
GLOBAL char * KW_ENTITY INITIALLY( "ENTITY" );
GLOBAL char * KW_ENUMERATION INITIALLY( "ENUMERATION" );
GLOBAL char * KW_ESCAPE INITIALLY( "ESCAPE" );
GLOBAL char * KW_EXISTS INITIALLY( "EXISTS" );
GLOBAL char * KW_EXP INITIALLY( "EXP" );
GLOBAL char * KW_FALSE INITIALLY( "FALSE" );
GLOBAL char * KW_FIXED INITIALLY( "FIXED" );
GLOBAL char * KW_FOR INITIALLY( "FOR" );
GLOBAL char * KW_FORMAT INITIALLY( "FORMAT" );
GLOBAL char * KW_FROM INITIALLY( "FROM" );
GLOBAL char * KW_FUNCTION INITIALLY( "FUNCTION" );
GLOBAL char * KW_GENERIC INITIALLY( "GENERIC" );
GLOBAL char * KW_HIBOUND INITIALLY( "HIBOUND" );
GLOBAL char * KW_HIINDEX INITIALLY( "HIINDEX" );
GLOBAL char * KW_IF INITIALLY( "IF" );
GLOBAL char * KW_IN INITIALLY( "IN" );
GLOBAL char * KW_INCLUDE INITIALLY( "INCLUDE" );
GLOBAL char * KW_INSERT INITIALLY( "INSERT" );
GLOBAL char * KW_INTEGER INITIALLY( "INTEGER" );
GLOBAL char * KW_INVERSE INITIALLY( "INVERSE" );
GLOBAL char * KW_LENGTH INITIALLY( "LENGTH" );
GLOBAL char * KW_LIKE INITIALLY( "LIKE" );
GLOBAL char * KW_LIST INITIALLY( "LIST" );
GLOBAL char * KW_LOBOUND INITIALLY( "LOBOUND" );
GLOBAL char * KW_LOCAL INITIALLY( "LOCAL" );
GLOBAL char * KW_LOG INITIALLY( "LOG" );
GLOBAL char * KW_LOG10 INITIALLY( "LOG10" );
GLOBAL char * KW_LOG2 INITIALLY( "LOG2" );
GLOBAL char * KW_LOGICAL INITIALLY( "LOGICAL" );
GLOBAL char * KW_LOINDEX INITIALLY( "LOINDEX" );
GLOBAL char * KW_MOD INITIALLY( "MOD" );
GLOBAL char * KW_MODEL INITIALLY( "MODEL" );
GLOBAL char * KW_NOT INITIALLY( "NOT" );
GLOBAL char * KW_NUMBER INITIALLY( "NUMBER" );
GLOBAL char * KW_NVL INITIALLY( "NVL" );
GLOBAL char * KW_ODD INITIALLY( "ODD" );
GLOBAL char * KW_OF INITIALLY( "OF" );
GLOBAL char * KW_ONEOF INITIALLY( "ONEOF" );
GLOBAL char * KW_OPTIONAL INITIALLY( "OPTIONAL" );
GLOBAL char * KW_OR INITIALLY( "OR" );
GLOBAL char * KW_OTHERWISE INITIALLY( "OTHERWISE" );
GLOBAL char * KW_PI INITIALLY( "PI" );
GLOBAL char * KW_PROCEDURE INITIALLY( "PROCEDURE" );
GLOBAL char * KW_QUERY INITIALLY( "QUERY" );
GLOBAL char * KW_REAL INITIALLY( "REAL" );
GLOBAL char * KW_REFERENCE INITIALLY( "REFERENCE" );
GLOBAL char * KW_REMOVE INITIALLY( "REMOVE" );
GLOBAL char * KW_REPEAT INITIALLY( "REPEAT" );
GLOBAL char * KW_RETURN INITIALLY( "RETURN" );
GLOBAL char * KW_ROLESOF INITIALLY( "ROLESOF" );
GLOBAL char * KW_RULE INITIALLY( "RULE" );
GLOBAL char * KW_SCHEMA INITIALLY( "SCHEMA" );
GLOBAL char * KW_SELECT INITIALLY( "SELECT" );
GLOBAL char * KW_SELF INITIALLY( "SELF" );
GLOBAL char * KW_SET INITIALLY( "SET" );
GLOBAL char * KW_SIN INITIALLY( "SIN" );
GLOBAL char * KW_SIZEOF INITIALLY( "SIZEOF" );
GLOBAL char * KW_SKIP INITIALLY( "SKIP" );
GLOBAL char * KW_SQRT INITIALLY( "SQRT" );
GLOBAL char * KW_STRING INITIALLY( "STRING" );
GLOBAL char * KW_SUBTYPE INITIALLY( "SUBTYPE" );
GLOBAL char * KW_SUPERTYPE INITIALLY( "SUPERTYPE" );
GLOBAL char * KW_TAN INITIALLY( "TAN" );
GLOBAL char * KW_THEN INITIALLY( "THEN" );
GLOBAL char * KW_TO INITIALLY( "TO" );
GLOBAL char * KW_TRUE INITIALLY( "TRUE" );
GLOBAL char * KW_TYPE INITIALLY( "TYPE" );
GLOBAL char * KW_TYPEOF INITIALLY( "TYPEOF" );
GLOBAL char * KW_UNIQUE INITIALLY( "UNIQUE" );
GLOBAL char * KW_UNKNOWN INITIALLY( "UNKNOWN" );
GLOBAL char * KW_UNTIL INITIALLY( "UNTIL" );
GLOBAL char * KW_USE INITIALLY( "USE" );
GLOBAL char * KW_USEDIN INITIALLY( "USEDIN" );
GLOBAL char * KW_VALUE INITIALLY( "VALUE" );
GLOBAL char * KW_VALUE_IN INITIALLY( "VALUE_IN" );
GLOBAL char * KW_VALUE_UNIQUE INITIALLY( "VALUE_UNIQUE" );
GLOBAL char * KW_VAR INITIALLY( "VAR" );
GLOBAL char * KW_WHERE INITIALLY( "WHERE" );
GLOBAL char * KW_WHILE INITIALLY( "WHILE" );
GLOBAL char * KW_XOR INITIALLY( "XOR" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ABS INITIALLY( "ABS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ABSTRACT INITIALLY( "ABSTRACT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ACOS INITIALLY( "ACOS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_AGGREGATE INITIALLY( "AGGREGATE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ALIAS INITIALLY( "ALIAS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_AND INITIALLY( "AND" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ANDOR INITIALLY( "ANDOR" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ARRAY INITIALLY( "ARRAY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_AS INITIALLY( "AS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ASIN INITIALLY( "ASIN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ATAN INITIALLY( "ATAN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BAG INITIALLY( "BAG" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BEGIN INITIALLY( "BEGIN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BINARY INITIALLY( "BINARY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BLENGTH INITIALLY( "BLENGTH" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BOOLEAN INITIALLY( "BOOLEAN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_BY INITIALLY( "BY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_CASE INITIALLY( "CASE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_CONST_E INITIALLY( "CONST_E" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_CONSTANT INITIALLY( "CONSTANT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_CONTEXT INITIALLY( "CONTEXT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_COS INITIALLY( "COS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_DERIVE INITIALLY( "DERIVE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_DIV INITIALLY( "DIV" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ELSE INITIALLY( "ELSE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END INITIALLY( "END" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_ALIAS INITIALLY( "END_ALIAS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_CASE INITIALLY( "END_CASE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_CONSTANT INITIALLY( "END_CONSTANT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_CONTEXT INITIALLY( "END_CONTEXT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_ENTITY INITIALLY( "END_ENTITY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_FUNCTION INITIALLY( "END_FUNCTION" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_IF INITIALLY( "END_IF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_LOCAL INITIALLY( "END_LOCAL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_MODEL INITIALLY( "END_MODEL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_PROCEDURE INITIALLY( "END_PROCEDURE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_REPEAT INITIALLY( "END_REPEAT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_RULE INITIALLY( "END_RULE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_SCHEMA INITIALLY( "END_SCHEMA" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_END_TYPE INITIALLY( "END_TYPE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ENTITY INITIALLY( "ENTITY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ENUMERATION INITIALLY( "ENUMERATION" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ESCAPE INITIALLY( "ESCAPE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_EXISTS INITIALLY( "EXISTS" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_EXP INITIALLY( "EXP" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FALSE INITIALLY( "FALSE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FIXED INITIALLY( "FIXED" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FOR INITIALLY( "FOR" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FORMAT INITIALLY( "FORMAT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FROM INITIALLY( "FROM" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_FUNCTION INITIALLY( "FUNCTION" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_GENERIC INITIALLY( "GENERIC" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_HIBOUND INITIALLY( "HIBOUND" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_HIINDEX INITIALLY( "HIINDEX" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_IF INITIALLY( "IF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_IN INITIALLY( "IN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_INCLUDE INITIALLY( "INCLUDE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_INSERT INITIALLY( "INSERT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_INTEGER INITIALLY( "INTEGER" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_INVERSE INITIALLY( "INVERSE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LENGTH INITIALLY( "LENGTH" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LIKE INITIALLY( "LIKE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LIST INITIALLY( "LIST" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOBOUND INITIALLY( "LOBOUND" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOCAL INITIALLY( "LOCAL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOG INITIALLY( "LOG" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOG10 INITIALLY( "LOG10" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOG2 INITIALLY( "LOG2" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOGICAL INITIALLY( "LOGICAL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_LOINDEX INITIALLY( "LOINDEX" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_MOD INITIALLY( "MOD" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_MODEL INITIALLY( "MODEL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_NOT INITIALLY( "NOT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_NUMBER INITIALLY( "NUMBER" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_NVL INITIALLY( "NVL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ODD INITIALLY( "ODD" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_OF INITIALLY( "OF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ONEOF INITIALLY( "ONEOF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_OPTIONAL INITIALLY( "OPTIONAL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_OR INITIALLY( "OR" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_OTHERWISE INITIALLY( "OTHERWISE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_PI INITIALLY( "PI" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_PROCEDURE INITIALLY( "PROCEDURE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_QUERY INITIALLY( "QUERY" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_REAL INITIALLY( "REAL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_REFERENCE INITIALLY( "REFERENCE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_REMOVE INITIALLY( "REMOVE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_REPEAT INITIALLY( "REPEAT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_RETURN INITIALLY( "RETURN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_ROLESOF INITIALLY( "ROLESOF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_RULE INITIALLY( "RULE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SCHEMA INITIALLY( "SCHEMA" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SELECT INITIALLY( "SELECT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SELF INITIALLY( "SELF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SET INITIALLY( "SET" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SIN INITIALLY( "SIN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SIZEOF INITIALLY( "SIZEOF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SKIP INITIALLY( "SKIP" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SQRT INITIALLY( "SQRT" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_STRING INITIALLY( "STRING" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SUBTYPE INITIALLY( "SUBTYPE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_SUPERTYPE INITIALLY( "SUPERTYPE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_TAN INITIALLY( "TAN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_THEN INITIALLY( "THEN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_TO INITIALLY( "TO" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_TRUE INITIALLY( "TRUE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_TYPE INITIALLY( "TYPE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_TYPEOF INITIALLY( "TYPEOF" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_UNIQUE INITIALLY( "UNIQUE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_UNKNOWN INITIALLY( "UNKNOWN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_UNTIL INITIALLY( "UNTIL" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_USE INITIALLY( "USE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_USEDIN INITIALLY( "USEDIN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_VALUE INITIALLY( "VALUE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_VALUE_IN INITIALLY( "VALUE_IN" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_VALUE_UNIQUE INITIALLY( "VALUE_UNIQUE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_VAR INITIALLY( "VAR" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_WHERE INITIALLY( "WHERE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_WHILE INITIALLY( "WHILE" );
GLOBAL SCL_EXPRESS_EXPORT char * KW_XOR INITIALLY( "XOR" );
#undef GLOBAL
#undef INITIALLY
@ -267,17 +268,17 @@ GLOBAL char * KW_XOR INITIALLY( "XOR" );
/* function prototypes */
/***********************/
extern Express EXPRESScreate PROTO( ( void ) );
extern void EXPRESSparse PROTO( ( Express, FILE *, char * ) );
extern void EXPRESSinitialize PROTO( ( void ) );
extern void EXPRESSresolve PROTO( ( Express ) );
extern char * EXPRESSversion PROTO( ( void ) );
extern int EXPRESS_fail PROTO( ( Express ) );
extern int EXPRESS_succeed PROTO( ( Express ) );
extern void EXPRESSinit_init PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT Express EXPRESScreate PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void EXPRESSparse PROTO( ( Express, FILE *, char * ) );
extern SCL_EXPRESS_EXPORT void EXPRESSinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void EXPRESSresolve PROTO( ( Express ) );
extern SCL_EXPRESS_EXPORT char *EXPRESSversion PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int EXPRESS_fail PROTO( ( Express ) );
extern SCL_EXPRESS_EXPORT int EXPRESS_succeed PROTO( ( Express ) );
extern SCL_EXPRESS_EXPORT void EXPRESSinit_init PROTO( ( void ) );
#if 0
extern void EXPRESSdump_model PROTO( ( Express ) );
#endif /*0*/
extern void build_complex( Express );
extern SCL_EXPRESS_EXPORT void build_complex( Express );
#endif /*EXPRESS_H*/

View file

@ -101,6 +101,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#ifdef HASH_C
#include <assert.h>
#endif /*HASH_C*/
@ -171,8 +172,8 @@ typedef struct {
# define INITIALLY(value)
#endif /*HASH_C*/
GLOBAL struct freelist_head HASH_Table_fl;
GLOBAL struct freelist_head HASH_Element_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head HASH_Table_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head HASH_Element_fl;
#undef GLOBAL
#undef INITIALLY
@ -211,14 +212,14 @@ This change only seems to have affected hash.h and hash.c
/* function prototypes */
/***********************/
extern void HASHinitialize PROTO( ( void ) );
extern Hash_Table HASHcreate PROTO( ( unsigned ) );
extern Hash_Table HASHcopy PROTO( ( Hash_Table ) );
extern void HASHdestroy PROTO( ( Hash_Table ) );
extern Element HASHsearch PROTO( ( Hash_Table, Element, Action ) );
extern void HASHlistinit PROTO( ( Hash_Table, HashEntry * ) );
extern void HASHlistinit_by_type PROTO( ( Hash_Table, HashEntry *, char ) );
extern Element HASHlist PROTO( ( HashEntry * ) );
extern SCL_EXPRESS_EXPORT void HASHinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT Hash_Table HASHcreate PROTO( ( unsigned ) );
extern SCL_EXPRESS_EXPORT Hash_Table HASHcopy PROTO( ( Hash_Table ) );
extern SCL_EXPRESS_EXPORT void HASHdestroy PROTO( ( Hash_Table ) );
extern SCL_EXPRESS_EXPORT Element HASHsearch PROTO( ( Hash_Table, Element, Action ) );
extern SCL_EXPRESS_EXPORT void HASHlistinit PROTO( ( Hash_Table, HashEntry * ) );
extern SCL_EXPRESS_EXPORT void HASHlistinit_by_type PROTO( ( Hash_Table, HashEntry *, char ) );
extern SCL_EXPRESS_EXPORT Element HASHlist PROTO( ( HashEntry * ) );
#if 0
extern void HASHlistend PROTO( ( HashEntry * ) );
#endif

View file

@ -40,6 +40,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include <ctype.h>
#include "basic.h"
#include "error.h"
@ -77,19 +78,19 @@ typedef struct Scan_Buffer {
# define INITIALLY(value)
#endif /* LEX_ACTIONS_C */
GLOBAL Scan_Buffer SCAN_buffers[SCAN_NESTING_DEPTH];
GLOBAL int SCAN_current_buffer INITIALLY( 0 );
GLOBAL char * SCANcurrent;
GLOBAL SCL_EXPRESS_EXPORT Scan_Buffer SCAN_buffers[SCAN_NESTING_DEPTH];
GLOBAL SCL_EXPRESS_EXPORT int SCAN_current_buffer INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT char * SCANcurrent;
GLOBAL Error ERROR_include_file INITIALLY( ERROR_none );
GLOBAL Error ERROR_unmatched_close_comment INITIALLY( ERROR_none );
GLOBAL Error ERROR_unmatched_open_comment INITIALLY( ERROR_none );
GLOBAL Error ERROR_unterminated_string INITIALLY( ERROR_none );
GLOBAL Error ERROR_encoded_string_bad_digit INITIALLY( ERROR_none );
GLOBAL Error ERROR_encoded_string_bad_count INITIALLY( ERROR_none );
GLOBAL Error ERROR_bad_identifier INITIALLY( ERROR_none );
GLOBAL Error ERROR_unexpected_character INITIALLY( ERROR_none );
GLOBAL Error ERROR_nonascii_char;
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_include_file INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unmatched_close_comment INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unmatched_open_comment INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unterminated_string INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_encoded_string_bad_digit INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_encoded_string_bad_count INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_bad_identifier INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unexpected_character INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_nonascii_char;
#undef GLOBAL
@ -112,27 +113,27 @@ GLOBAL Error ERROR_nonascii_char;
/* function prototypes */
/***********************/
extern int yylex PROTO( ( void ) ); /* the scanner */
extern SCL_EXPRESS_EXPORT int yylex PROTO( ( void ) ); /* the scanner */
extern void SCANinitialize PROTO( ( void ) );
extern int SCANprocess_real_literal PROTO( ( void ) );
extern int SCANprocess_integer_literal PROTO( ( void ) );
extern int SCANprocess_binary_literal PROTO( ( void ) );
extern int SCANprocess_logical_literal PROTO( ( char * ) );
extern int SCANprocess_identifier_or_keyword PROTO( ( void ) );
extern int SCANprocess_string PROTO( ( void ) );
extern int SCANprocess_encoded_string PROTO( ( void ) );
extern int SCANprocess_semicolon PROTO( ( int ) );
extern void SCANsave_comment PROTO( ( void ) );
extern bool SCANread PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void SCANinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_real_literal PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_integer_literal PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_binary_literal PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_logical_literal PROTO( ( char * ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_identifier_or_keyword PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_string PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_encoded_string PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT int SCANprocess_semicolon PROTO( ( int ) );
extern SCL_EXPRESS_EXPORT void SCANsave_comment PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT bool SCANread PROTO( ( void ) );
#if macros_bit_the_dust
extern void SCANdefine_macro PROTO( ( char *, char * ) );
extern SCL_EXPRESS_EXPORT void SCANdefine_macro PROTO( ( char *, char * ) );
#endif
extern void SCANinclude_file PROTO( ( char * ) );
void SCANlowerize PROTO( ( char * ) );
void SCANupperize PROTO( ( char * ) );
extern char * SCANstrdup PROTO( ( char * ) );
extern long SCANtell PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void SCANinclude_file PROTO( ( char * ) );
SCL_EXPRESS_EXPORT void SCANlowerize PROTO( ( char * ) );
SCL_EXPRESS_EXPORT void SCANupperize PROTO( ( char * ) );
extern SCL_EXPRESS_EXPORT char * SCANstrdup PROTO( ( char * ) );
extern SCL_EXPRESS_EXPORT long SCANtell PROTO( ( void ) );
/*******************************/
/* inline function definitions */

View file

@ -38,6 +38,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "basic.h"
#include "memory.h"
@ -81,10 +82,10 @@ struct Linked_List_ {
#include "decstart.h"
#endif /*LINKED_LIST_C*/
GLOBAL Error ERROR_empty_list INITIALLY( ERROR_none );
GLOBAL struct freelist_head LINK_fl;
GLOBAL struct freelist_head LIST_fl;
GLOBAL Linked_List LINK__l; /* for LISTcreate_with macro - ugh */
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_empty_list INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head LINK_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head LIST_fl;
GLOBAL SCL_EXPRESS_EXPORT Linked_List LINK__l; /* for LISTcreate_with macro - ugh */
#include "de_end.h"
@ -138,21 +139,21 @@ GLOBAL Linked_List LINK__l; /* for LISTcreate_with macro - ugh */
/* function prototypes */
/***********************/
extern void LISTinitialize PROTO( ( void ) );
extern Linked_List LISTcreate PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void LISTinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT Linked_List LISTcreate PROTO( ( void ) );
/*extern Linked_List LISTcreate_with PROTO((Generic));*/
extern Linked_List LISTcopy PROTO( ( Linked_List ) );
extern Generic LISTadd_first PROTO( ( Linked_List, Generic ) );
extern Generic LISTadd_last PROTO( ( Linked_List, Generic ) );
extern Generic LISTadd_after PROTO( ( Linked_List, Link, Generic ) );
extern Generic LISTadd_before PROTO( ( Linked_List, Link, Generic ) );
extern Generic LISTremove_first PROTO( ( Linked_List ) );
extern Generic LISTremove PROTO( ( Linked_List, Link ) );
extern Generic LISTget_first PROTO( ( Linked_List ) );
extern Generic LISTget_second PROTO( ( Linked_List ) );
extern Generic LISTget_nth PROTO( ( Linked_List, int ) );
extern void LISTfree PROTO( ( Linked_List ) );
extern int LISTget_length PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Linked_List LISTcopy PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Generic LISTadd_first PROTO( ( Linked_List, Generic ) );
extern SCL_EXPRESS_EXPORT Generic LISTadd_last PROTO( ( Linked_List, Generic ) );
extern SCL_EXPRESS_EXPORT Generic LISTadd_after PROTO( ( Linked_List, Link, Generic ) );
extern SCL_EXPRESS_EXPORT Generic LISTadd_before PROTO( ( Linked_List, Link, Generic ) );
extern SCL_EXPRESS_EXPORT Generic LISTremove_first PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Generic LISTremove PROTO( ( Linked_List, Link ) );
extern SCL_EXPRESS_EXPORT Generic LISTget_first PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Generic LISTget_second PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Generic LISTget_nth PROTO( ( Linked_List, int ) );
extern SCL_EXPRESS_EXPORT void LISTfree PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT int LISTget_length PROTO( ( Linked_List ) );
/*******************************/
/* inline function definitions */

View file

@ -30,6 +30,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
/* mem.h - defs for fixed size block memory allocator */
typedef long Align;
@ -83,10 +84,10 @@ extern int yylineno;
fprintf(stderr,"fedex: out of space");\
} else {}
void _MEMinitialize PROTO( ( void ) );
void MEMinitialize PROTO( ( struct freelist_head *, int, int, int ) );
void MEM_destroy PROTO( ( struct freelist_head *, Freelist * ) );
Generic MEM_new PROTO( ( struct freelist_head * ) );
SCL_EXPRESS_EXPORT void _MEMinitialize PROTO( ( void ) );
SCL_EXPRESS_EXPORT void MEMinitialize PROTO( ( struct freelist_head *, int, int, int ) );
SCL_EXPRESS_EXPORT void MEM_destroy PROTO( ( struct freelist_head *, Freelist * ) );
SCL_EXPRESS_EXPORT Generic MEM_new PROTO( ( struct freelist_head * ) );
#include "de_end.h"

View file

@ -57,6 +57,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "basic.h" /* get basic definitions */
#include "symbol.h"
@ -89,7 +90,7 @@ struct Object {
#include "decstart.h"
#endif /*OBJECT_C */
GLOBAL struct Object * OBJ;
GLOBAL SCL_EXPRESS_EXPORT struct Object * OBJ;
#include "de_end.h"
@ -113,9 +114,9 @@ GLOBAL struct Object * OBJ;
/* function prototypes */
/***********************/
extern void OBJinitialize PROTO( ( void ) );
extern void OBJcreate PROTO( ( char, struct Symbol_ * ( * )( Generic ), char *, int ) );
extern Symbol * UNK_get_symbol PROTO( ( Generic x ) );
extern SCL_EXPRESS_EXPORT void OBJinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void OBJcreate PROTO( ( char, struct Symbol_ * ( * )( Generic ), char *, int ) );
extern SCL_EXPRESS_EXPORT Symbol * UNK_get_symbol PROTO( ( Generic x ) );
#if 0
extern void OBJcreate( char, struct Symbol * ( * )( Generic ), char *, int );
#endif

View file

@ -30,6 +30,7 @@
* Initial revision
*/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "type.h"
#include "variable.h"
@ -54,17 +55,17 @@
# define INITIALLY(value)
#endif /*RESOLVE_C*/
GLOBAL int print_objects_while_running INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int print_objects_while_running INITIALLY( 0 );
GLOBAL Error ERROR_undefined_attribute INITIALLY( ERROR_none );
GLOBAL Error ERROR_undefined_type INITIALLY( ERROR_none );
GLOBAL Error ERROR_undefined_schema INITIALLY( ERROR_none );
GLOBAL Error ERROR_unknown_attr_in_entity INITIALLY( ERROR_none );
GLOBAL Error ERROR_unknown_subtype INITIALLY( ERROR_none );
GLOBAL Error ERROR_unknown_supertype INITIALLY( ERROR_none );
GLOBAL Error ERROR_circular_reference INITIALLY( ERROR_none );
GLOBAL Error ERROR_ambiguous_attribute INITIALLY( ERROR_none );
GLOBAL Error ERROR_ambiguous_group INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_undefined_attribute INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_undefined_type INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_undefined_schema INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unknown_attr_in_entity INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unknown_subtype INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_unknown_supertype INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_circular_reference INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_ambiguous_attribute INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_ambiguous_group INITIALLY( ERROR_none );
#undef GLOBAL
#undef INITIALLY
@ -83,14 +84,14 @@ GLOBAL Error ERROR_ambiguous_group INITIALLY( ERROR_none );
/* function prototypes */
/***********************/
extern void RESOLVEinitialize PROTO( ( void ) );
extern void SCOPEresolve_expressions_statements PROTO( ( Scope ) );
extern void SCOPEresolve_subsupers PROTO( ( Scope ) );
extern void SCOPEresolve_types PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT void RESOLVEinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void SCOPEresolve_expressions_statements PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT void SCOPEresolve_subsupers PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT void SCOPEresolve_types PROTO( ( Scope ) );
/*extern void TYPE_resolve PROTO((Type *,Scope));*/
extern void TYPE_resolve PROTO( ( Type * ) );
extern void EXP_resolve PROTO( ( Expression, Scope, Type ) );
extern void ALGresolve PROTO( ( Scope ) );
extern void SCHEMAresolve PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT void TYPE_resolve PROTO( ( Type * ) );
extern SCL_EXPRESS_EXPORT void EXP_resolve PROTO( ( Expression, Scope, Type ) );
extern SCL_EXPRESS_EXPORT void ALGresolve PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT void SCHEMAresolve PROTO( ( Scope ) );
#endif /*RESOLVE_H*/

View file

@ -56,6 +56,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "symbol.h"
#include "scope.h"
@ -124,11 +125,11 @@ struct Schema_ {
# define INITIALLY(value)
#endif /* SCHEMA_C */
GLOBAL struct freelist_head REN_fl;
GLOBAL struct freelist_head SCOPE_fl;
GLOBAL struct freelist_head SCHEMA_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head REN_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head SCOPE_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head SCHEMA_fl;
GLOBAL int __SCOPE_search_id INITIALLY( 0 );
GLOBAL SCL_EXPRESS_EXPORT int __SCOPE_search_id INITIALLY( 0 );
#undef GLOBAL
#undef INITIALLY
@ -156,19 +157,19 @@ GLOBAL int __SCOPE_search_id INITIALLY( 0 );
/* function prototypes */
/***********************/
extern Variable VARfind PROTO( ( Scope, char *, int ) );
extern Schema SCHEMAcreate PROTO( ( void ) );
extern void SCHEMAinitialize PROTO( ( void ) );
extern void SCHEMAadd_use PROTO( ( Schema, Symbol *, Symbol *, Symbol * ) );
extern void SCHEMAadd_reference PROTO( ( Schema, Symbol *, Symbol *, Symbol * ) );
extern void SCHEMAdefine_use PROTO( ( Schema, Rename * ) );
extern void SCHEMAdefine_reference PROTO( ( Schema, Rename * ) );
extern Generic SCHEMAfind PROTO( ( Schema, char * name, int search_refs ) );
extern Scope SCOPEcreate PROTO( ( char ) );
extern Scope SCOPEcreate_tiny PROTO( ( char ) );
extern Scope SCOPEcreate_nostab PROTO( ( char ) );
extern Linked_List SCHEMAget_entities_use PROTO( ( Scope ) );
extern Linked_List SCHEMAget_entities_ref PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT Variable VARfind PROTO( ( Scope, char *, int ) );
extern SCL_EXPRESS_EXPORT Schema SCHEMAcreate PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void SCHEMAinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void SCHEMAadd_use PROTO( ( Schema, Symbol *, Symbol *, Symbol * ) );
extern SCL_EXPRESS_EXPORT void SCHEMAadd_reference PROTO( ( Schema, Symbol *, Symbol *, Symbol * ) );
extern SCL_EXPRESS_EXPORT void SCHEMAdefine_use PROTO( ( Schema, Rename * ) );
extern SCL_EXPRESS_EXPORT void SCHEMAdefine_reference PROTO( ( Schema, Rename * ) );
extern SCL_EXPRESS_EXPORT Generic SCHEMAfind PROTO( ( Schema, char * name, int search_refs ) );
extern SCL_EXPRESS_EXPORT Scope SCOPEcreate PROTO( ( char ) );
extern SCL_EXPRESS_EXPORT Scope SCOPEcreate_tiny PROTO( ( char ) );
extern SCL_EXPRESS_EXPORT Scope SCOPEcreate_nostab PROTO( ( char ) );
extern SCL_EXPRESS_EXPORT Linked_List SCHEMAget_entities_use PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT Linked_List SCHEMAget_entities_ref PROTO( ( Scope ) );
/********************/
/* inline functions */

View file

@ -57,6 +57,7 @@
/* modules used */
/****************/
#include <scl_export.h>
#include "type.h"
#include "variable.h"
#include "entity.h"
@ -149,12 +150,12 @@ struct Scope_ {
/* function prototypes */
/***********************/
extern struct Symbol_ * SCOPE_get_symbol PROTO( ( Generic ) );
extern SCL_EXPRESS_EXPORT struct Symbol_ * SCOPE_get_symbol PROTO( ( Generic ) );
/*extern struct Scope * SCOPEget_nearest_enclosing_entity PROTO((Scope));*/
extern void SCOPE_get_entities PROTO( ( Scope, Linked_List ) );
extern Linked_List SCOPEget_entities PROTO( ( Scope ) );
extern Linked_List SCOPEget_entities_superclass_order PROTO( ( Scope ) );
extern Generic SCOPEfind PROTO( ( Scope, char *, int ) );
extern SCL_EXPRESS_EXPORT void SCOPE_get_entities PROTO( ( Scope, Linked_List ) );
extern SCL_EXPRESS_EXPORT Linked_List SCOPEget_entities PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT Linked_List SCOPEget_entities_superclass_order PROTO( ( Scope ) );
extern SCL_EXPRESS_EXPORT Generic SCOPEfind PROTO( ( Scope, char *, int ) );
#if 0
extern Linked_List SCOPEget_types PROTO( ( Scope ) );

View file

@ -50,6 +50,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "scope.h"
@ -172,20 +173,20 @@ struct Return_Statement_ {
#include "decstart.h"
#endif /*STATEMENT_C*/
GLOBAL struct freelist_head STMT_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head STMT_fl;
GLOBAL struct freelist_head ALIAS_fl;
GLOBAL struct freelist_head ASSIGN_fl;
GLOBAL struct freelist_head CASE_fl;
GLOBAL struct freelist_head COMP_STMT_fl;
GLOBAL struct freelist_head COND_fl;
GLOBAL struct freelist_head LOOP_fl;
GLOBAL struct freelist_head PCALL_fl;
GLOBAL struct freelist_head RET_fl;
GLOBAL struct freelist_head INCR_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head ALIAS_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head ASSIGN_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head CASE_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head COMP_STMT_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head COND_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head LOOP_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head PCALL_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head RET_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head INCR_fl;
GLOBAL Statement STATEMENT_ESCAPE INITIALLY( STATEMENT_NULL );
GLOBAL Statement STATEMENT_SKIP INITIALLY( STATEMENT_NULL );
GLOBAL SCL_EXPRESS_EXPORT Statement STATEMENT_ESCAPE INITIALLY( STATEMENT_NULL );
GLOBAL SCL_EXPRESS_EXPORT Statement STATEMENT_SKIP INITIALLY( STATEMENT_NULL );
#include "de_end.h"
@ -235,18 +236,18 @@ GLOBAL Statement STATEMENT_SKIP INITIALLY( STATEMENT_NULL );
/* function prototypes */
/***********************/
extern Statement STMTcreate PROTO( ( int ) );
extern Statement ALIAScreate PROTO( ( struct Scope_ *, Variable, Linked_List ) );
extern Statement CASEcreate PROTO( ( Expression , Linked_List ) );
extern Statement ASSIGNcreate PROTO( ( Expression , Expression ) );
extern Statement COMP_STMTcreate PROTO( ( Linked_List ) );
extern Statement CONDcreate PROTO( ( Expression, Linked_List, Linked_List ) );
extern Statement LOOPcreate PROTO( ( struct Scope_ *, Expression, Expression, Linked_List ) );
extern Statement PCALLcreate PROTO( ( Linked_List ) );
extern Statement RETcreate PROTO( ( Expression ) );
extern void STMTinitialize PROTO( ( void ) );
extern struct Scope_ * INCR_CTLcreate PROTO( ( Symbol *, Expression start,
Expression end, Expression increment ) );
extern SCL_EXPRESS_EXPORT Statement STMTcreate PROTO( ( int ) );
extern SCL_EXPRESS_EXPORT Statement ALIAScreate PROTO( ( struct Scope_ *, Variable, Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement CASEcreate PROTO( ( Expression , Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement ASSIGNcreate PROTO( ( Expression , Expression ) );
extern SCL_EXPRESS_EXPORT Statement COMP_STMTcreate PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement CONDcreate PROTO( ( Expression, Linked_List, Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement LOOPcreate PROTO( ( struct Scope_ *, Expression, Expression, Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement PCALLcreate PROTO( ( Linked_List ) );
extern SCL_EXPRESS_EXPORT Statement RETcreate PROTO( ( Expression ) );
extern SCL_EXPRESS_EXPORT void STMTinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT struct Scope_ * INCR_CTLcreate PROTO( ( Symbol *, Expression start,
Expression end, Expression increment ) );
/********************/
/* inline functions */

View file

@ -48,6 +48,7 @@
#ifdef SYMBOL_C
#endif /* SYMBOL_C */
#include <scl_export.h>
#include "basic.h" /* get basic definitions */
#include "memory.h"
@ -82,7 +83,7 @@ struct Symbol_ {
#include "decstart.h"
#endif /* SYMBOL_C */
GLOBAL struct freelist_head SYMBOL_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head SYMBOL_fl;
#include "de_end.h"
@ -102,8 +103,8 @@ GLOBAL struct freelist_head SYMBOL_fl;
/* function prototypes */
/***********************/
extern void SYMBOLinitialize PROTO( ( void ) );
Symbol * SYMBOLcreate PROTO( ( char *, int, char * ) );
extern SCL_EXPRESS_EXPORT void SYMBOLinitialize PROTO( ( void ) );
SCL_EXPRESS_EXPORT Symbol * SYMBOLcreate PROTO( ( char *, int, char * ) );
/********************/
/* inline functions */

View file

@ -111,6 +111,7 @@ enum type_enum {
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "symbol.h"
#include "object.h"
@ -223,41 +224,41 @@ struct TypeBody_ {
/* Very commonly-used read-only types */
/* non-constant versions probably aren't necessary? */
GLOBAL Type Type_Bad;
GLOBAL Type Type_Unknown;
GLOBAL Type Type_Dont_Care;
GLOBAL Type Type_Runtime; /* indicates that this object can't be */
GLOBAL SCL_EXPRESS_EXPORT Type Type_Bad;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Unknown;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Dont_Care;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Runtime; /* indicates that this object can't be */
/* calculated now but must be deferred */
/* til (the mythical) runtime */
GLOBAL Type Type_Binary;
GLOBAL Type Type_Boolean;
GLOBAL Type Type_Enumeration;
GLOBAL Type Type_Expression;
GLOBAL Type Type_Aggregate;
GLOBAL Type Type_Integer;
GLOBAL Type Type_Integer;
GLOBAL Type Type_Number;
GLOBAL Type Type_Real;
GLOBAL Type Type_String;
GLOBAL Type Type_String_Encoded;
GLOBAL Type Type_Logical;
GLOBAL Type Type_Set;
GLOBAL Type Type_Attribute;
GLOBAL Type Type_Entity;
GLOBAL Type Type_Funcall;
GLOBAL Type Type_Generic;
GLOBAL Type Type_Identifier;
GLOBAL Type Type_Oneof;
GLOBAL Type Type_Query;
GLOBAL Type Type_Self;
GLOBAL Type Type_Set_Of_String;
GLOBAL Type Type_Set_Of_Generic;
GLOBAL Type Type_Bag_Of_Generic;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Binary;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Boolean;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Enumeration;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Expression;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Aggregate;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Integer;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Integer;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Number;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Real;
GLOBAL SCL_EXPRESS_EXPORT Type Type_String;
GLOBAL SCL_EXPRESS_EXPORT Type Type_String_Encoded;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Logical;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Set;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Attribute;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Entity;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Funcall;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Generic;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Identifier;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Oneof;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Query;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Self;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Set_Of_String;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Set_Of_Generic;
GLOBAL SCL_EXPRESS_EXPORT Type Type_Bag_Of_Generic;
GLOBAL struct freelist_head TYPEHEAD_fl;
GLOBAL struct freelist_head TYPEBODY_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head TYPEHEAD_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head TYPEBODY_fl;
GLOBAL Error ERROR_corrupted_type INITIALLY( ERROR_none );
GLOBAL SCL_EXPRESS_EXPORT Error ERROR_corrupted_type INITIALLY( ERROR_none );
#include "de_end.h"
@ -338,26 +339,26 @@ GLOBAL Error ERROR_corrupted_type INITIALLY( ERROR_none );
/* function prototypes */
/***********************/
extern Type TYPEcreate_partial PROTO( ( struct Symbol_ *, Scope ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_partial PROTO( ( struct Symbol_ *, Scope ) );
extern Type TYPEcreate PROTO( ( enum type_enum ) );
extern Type TYPEcreate_from_body_anonymously PROTO( ( TypeBody ) );
extern Type TYPEcreate_name PROTO( ( struct Symbol_ * ) );
extern Type TYPEcreate_nostab PROTO( ( struct Symbol_ *, Scope, char ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate PROTO( ( enum type_enum ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_from_body_anonymously PROTO( ( TypeBody ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_name PROTO( ( struct Symbol_ * ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_nostab PROTO( ( struct Symbol_ *, Scope, char ) );
/*extern Type TYPEcreate_typedef PROTO((Type, TypeBody,
Scope,struct Symbol *));*/
extern TypeBody TYPEBODYcreate PROTO( ( enum type_enum ) );
extern SCL_EXPRESS_EXPORT TypeBody TYPEBODYcreate PROTO( ( enum type_enum ) );
/*extern Type TYPEcopy_shallow PROTO((Type));*/
extern void TYPEinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT void TYPEinitialize PROTO( ( void ) );
#if 0
extern Dictionary TYPEget_enum_tags PROTO( ( Type ) );
#endif
extern bool TYPEinherits_from PROTO( ( Type, enum type_enum ) );
extern Type TYPEget_nonaggregate_base_type PROTO( ( Type ) );
extern SCL_EXPRESS_EXPORT bool TYPEinherits_from PROTO( ( Type, enum type_enum ) );
extern SCL_EXPRESS_EXPORT Type TYPEget_nonaggregate_base_type PROTO( ( Type ) );
extern Type TYPEcreate_user_defined_type PROTO( ( Type, Scope, struct Symbol_ * ) );
extern Type TYPEcreate_user_defined_tag PROTO( ( Type, Scope, struct Symbol_ * ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_user_defined_type PROTO( ( Type, Scope, struct Symbol_ * ) );
extern SCL_EXPRESS_EXPORT Type TYPEcreate_user_defined_tag PROTO( ( Type, Scope, struct Symbol_ * ) );
#if 0
extern int TYPEget_size PROTO( ( Type ) );

View file

@ -57,6 +57,7 @@
/* packages used */
/*****************/
#include <scl_export.h>
#include "expbasic.h" /* get basic definitions */
#include "symbol.h"
@ -110,7 +111,7 @@ struct Variable_ {
#include "decstart.h"
#endif /* VARIABLE_C */
GLOBAL struct freelist_head VAR_fl;
GLOBAL SCL_EXPRESS_EXPORT struct freelist_head VAR_fl;
#include "de_end.h"
@ -140,9 +141,9 @@ GLOBAL struct freelist_head VAR_fl;
/* function prototypes */
/***********************/
extern Variable VARcreate PROTO( ( Expression, Type ) );
extern void VARinitialize PROTO( ( void ) );
extern char * VARget_simple_name PROTO( ( Variable ) );
extern SCL_EXPRESS_EXPORT Variable VARcreate PROTO( ( Expression, Type ) );
extern SCL_EXPRESS_EXPORT void VARinitialize PROTO( ( void ) );
extern SCL_EXPRESS_EXPORT char * VARget_simple_name PROTO( ( Variable ) );
#if 0
extern void VARput_type PROTO( ( Variable *, Type ) );

82
include/scl_export.h Normal file
View file

@ -0,0 +1,82 @@
#ifndef SCL_EXPORT_H
#define SCL_EXPORT_H
/* Import/Export flags for express. */
#ifndef SCL_EXPRESS_EXPORT
# if defined(SCL_EXPRESS_DLL_EXPORTS) && defined(SCL_EXPRESS_DLL_IMPORTS)
# error "Only SCL_EXPRESS_DLL_EXPORTS or SCL_EXPRESS_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_EXPRESS_DLL_EXPORTS)
# define SCL_EXPRESS_EXPORT __declspec(dllexport)
# elif defined(SCL_EXPRESS_DLL_IMPORTS)
# define SCL_EXPRESS_EXPORT __declspec(dllimport)
# else
# define SCL_EXPRESS_EXPORT
# endif
#endif
/* Import/Export flags for exppp. */
#ifndef SCL_EXPPP_EXPORT
# if defined(SCL_EXPPP_DLL_EXPORTS) && defined(SCL_EXPPP_DLL_IMPORTS)
# error "Only SCL_EXPPP_DLL_EXPORTS or SCL_EXPPP_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_EXPPP_DLL_EXPORTS)
# define SCL_EXPPP_EXPORT __declspec(dllexport)
# elif defined(SCL_EXPPP_DLL_IMPORTS)
# define SCL_EXPPP_EXPORT __declspec(dllimport)
# else
# define SCL_EXPPP_EXPORT
# endif
#endif
/* Import/Export flags for utils. */
#ifndef SCL_UTILS_EXPORT
# if defined(SCL_UTILS_DLL_EXPORTS) && defined(SCL_UTILS_DLL_IMPORTS)
# error "Only SCL_UTILS_DLL_EXPORTS or SCL_UTILS_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_UTILS_DLL_EXPORTS)
# define SCL_UTILS_EXPORT __declspec(dllexport)
# elif defined(SCL_UTILS_DLL_IMPORTS)
# define SCL_UTILS_EXPORT __declspec(dllimport)
# else
# define SCL_UTILS_EXPORT
# endif
#endif
/* Import/Export flags for dai. */
#ifndef SCL_DAI_EXPORT
# if defined(SCL_DAI_DLL_EXPORTS) && defined(SCL_DAI_DLL_IMPORTS)
# error "Only SCL_DAI_DLL_EXPORTS or SCL_DAI_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_DAI_DLL_EXPORTS)
# define SCL_DAI_EXPORT __declspec(dllexport)
# elif defined(SCL_DAI_DLL_IMPORTS)
# define SCL_DAI_EXPORT __declspec(dllimport)
# else
# define SCL_DAI_EXPORT
# endif
#endif
/* Import/Export flags for core. */
#ifndef SCL_CORE_EXPORT
# if defined(SCL_CORE_DLL_EXPORTS) && defined(SCL_CORE_DLL_IMPORTS)
# error "Only SCL_CORE_DLL_EXPORTS or SCL_CORE_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_CORE_DLL_EXPORTS)
# define SCL_CORE_EXPORT __declspec(dllexport)
# elif defined(SCL_CORE_DLL_IMPORTS)
# define SCL_CORE_EXPORT __declspec(dllimport)
# else
# define SCL_CORE_EXPORT
# endif
#endif
/* Import/Export flags for editor. */
#ifndef SCL_EDITOR_EXPORT
# if defined(SCL_EDITOR_DLL_EXPORTS) && defined(SCL_EDITOR_DLL_IMPORTS)
# error "Only SCL_EDITOR_DLL_EXPORTS or SCL_EDITOR_DLL_IMPORTS can be defined, not both."
# elif defined(SCL_EDITOR_DLL_EXPORTS)
# define SCL_EDITOR_EXPORT __declspec(dllexport)
# elif defined(SCL_EDITOR_DLL_IMPORTS)
# define SCL_EDITOR_EXPORT __declspec(dllimport)
# else
# define SCL_EDITOR_EXPORT
# endif
#endif
#endif /* SCL_EXPORT_H */

View file

@ -66,6 +66,7 @@ add_definitions( -DFLEX )
if(MSVC)
add_definitions( -DYY_NO_UNISTD_H )
add_definitions( -DSCL_EXPRESS_DLL_EXPORTS )
endif(MSVC)
SCL_ADDLIB(express "${EXPRESS_SOURCES}" "")