slang.h | slang.h | |||
---|---|---|---|---|
#ifndef DAVIS_SLANG_H_ | #ifndef DAVIS_SLANG_H_ | |||
#define DAVIS_SLANG_H_ | #define DAVIS_SLANG_H_ | |||
/* -*- mode: C; mode: fold; -*- */ | /* -*- mode: C; mode: fold; -*- */ | |||
/* | /* | |||
Copyright (C) 2004-2008 John E. Davis | Copyright (C) 2004-2009 John E. Davis | |||
This file is part of the S-Lang Library. | This file is part of the S-Lang Library. | |||
The S-Lang Library is free software; you can redistribute it and/or | The S-Lang Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU General Public License as | modify it under the terms of the GNU General Public License as | |||
published by the Free Software Foundation; either version 2 of the | published by the Free Software Foundation; either version 2 of the | |||
License, or (at your option) any later version. | License, or (at your option) any later version. | |||
The S-Lang Library is distributed in the hope that it will be useful, | The S-Lang Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
General Public License for more details. | General Public License for more details. | |||
You should have received a copy of the GNU General Public License | You should have received a copy of the GNU General Public License | |||
along with this library; if not, write to the Free Software | along with this library; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | |||
USA. | USA. | |||
*/ | */ | |||
#define SLANG_VERSION 20104 | #define SLANG_VERSION 20200 | |||
#define SLANG_VERSION_STRING "2.1.4" | #define SLANG_VERSION_STRING "2.2.0" | |||
/* #ifdef __DATE__ */ | /* #ifdef __DATE__ */ | |||
/* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 " " __DATE__ */ | /* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 " " __DATE__ */ | |||
/* #else */ | /* #else */ | |||
/* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 */ | /* # define SLANG_VERSION_STRING SLANG_VERSION_STRING0 */ | |||
/* #endif */ | /* #endif */ | |||
/*{{{ System Dependent Macros and Typedefs */ | /*{{{ System Dependent Macros and Typedefs */ | |||
#if defined(__WATCOMC__) && defined(DOS) | #if defined(__WATCOMC__) && defined(DOS) | |||
# ifndef __MSDOS__ | # ifndef __MSDOS__ | |||
# define __MSDOS__ | # define __MSDOS__ | |||
skipping to change at line 403 | skipping to change at line 403 | |||
SL_EXTERN int SLwchar_apply_char_map (SLwchar_Map_Type *map, SLwchar_Type * input, SLwchar_Type *output, unsigned int num); | SL_EXTERN int SLwchar_apply_char_map (SLwchar_Map_Type *map, SLwchar_Type * input, SLwchar_Type *output, unsigned int num); | |||
/* This function returns a malloced string */ | /* This function returns a malloced string */ | |||
SLuchar_Type *SLuchar_apply_char_map (SLwchar_Map_Type *map, SLuchar_Type * str); | SLuchar_Type *SLuchar_apply_char_map (SLwchar_Map_Type *map, SLuchar_Type * str); | |||
/*}}}*/ | /*}}}*/ | |||
/*{{{ Interpreter Typedefs */ | /*{{{ Interpreter Typedefs */ | |||
typedef unsigned int SLtype; | typedef unsigned int SLtype; | |||
/* typedef unsigned short SLtype; */ | #define SLANG_SLTYPE_INT_TYPE SLANG_UINT_TYPE | |||
typedef struct _pSLang_Name_Type | typedef struct _pSLang_Name_Type | |||
{ | { | |||
SLFUTURE_CONST char *name; | SLFUTURE_CONST char *name; | |||
struct _pSLang_Name_Type *next; | struct _pSLang_Name_Type *next; | |||
unsigned char name_type; | unsigned char name_type; | |||
/* These values here map directly to byte codes. See _slang.h. | /* These values here map directly to byte codes. See _slang.h. | |||
*/ | */ | |||
#define SLANG_LVARIABLE 0x01 | #define SLANG_LVARIABLE 0x01 | |||
#define SLANG_GVARIABLE 0x02 | #define SLANG_GVARIABLE 0x02 | |||
skipping to change at line 769 | skipping to change at line 769 | |||
#define SLMATH_ATANH 16 | #define SLMATH_ATANH 16 | |||
#define SLMATH_ASINH 17 | #define SLMATH_ASINH 17 | |||
#define SLMATH_ACOSH 18 | #define SLMATH_ACOSH 18 | |||
#define SLMATH_TODOUBLE 19 | #define SLMATH_TODOUBLE 19 | |||
#define SLMATH_CONJ 20 | #define SLMATH_CONJ 20 | |||
#define SLMATH_ISINF 21 | #define SLMATH_ISINF 21 | |||
#define SLMATH_ISNAN 22 | #define SLMATH_ISNAN 22 | |||
#define SLMATH_FLOOR 23 | #define SLMATH_FLOOR 23 | |||
#define SLMATH_CEIL 24 | #define SLMATH_CEIL 24 | |||
#define SLMATH_ROUND 25 | #define SLMATH_ROUND 25 | |||
#define SLMATH_EXPM1 26 | ||||
#define SLMATH_LOG1P 27 | ||||
SL_EXTERN int SLclass_add_unary_op (SLtype, | SL_EXTERN int SLclass_add_unary_op (SLtype, | |||
int (*) (int, | int (*) (int, | |||
SLtype, VOID_STAR, unsigned int, | SLtype, VOID_STAR, unsigned int, | |||
VOID_STAR), | VOID_STAR), | |||
int (*) (int, SLtype, SLtype *)); | int (*) (int, SLtype, SLtype *)); | |||
SL_EXTERN int | SL_EXTERN int | |||
SLclass_add_app_unary_op (SLtype, | SLclass_add_app_unary_op (SLtype, | |||
int (*) (int, | int (*) (int, | |||
skipping to change at line 864 | skipping to change at line 866 | |||
VOID_STAR data; | VOID_STAR data; | |||
SLuindex_Type num_elements; | SLuindex_Type num_elements; | |||
unsigned int num_dims; | unsigned int num_dims; | |||
SLindex_Type dims [SLARRAY_MAX_DIMS]; | SLindex_Type dims [SLARRAY_MAX_DIMS]; | |||
VOID_STAR (*index_fun)_PROTO((struct _pSLang_Array_Type *, SLindex_Type *)); | VOID_STAR (*index_fun)_PROTO((struct _pSLang_Array_Type *, SLindex_Type *)); | |||
/* This function is designed to allow a type to store an array in | /* This function is designed to allow a type to store an array in | |||
* any manner it chooses. This function returns the address of the data | * any manner it chooses. This function returns the address of the data | |||
* value at the specified index location. | * value at the specified index location. | |||
*/ | */ | |||
unsigned int flags; | unsigned int flags; | |||
#define SLARR_DATA_VALUE_IS_READ_ONLY 1 | #define SLARR_DATA_VALUE_IS_READ_ONLY 0x0001 | |||
#define SLARR_DATA_VALUE_IS_POINTER 2 | #define SLARR_DATA_VALUE_IS_POINTER 0x0002 | |||
#define SLARR_DATA_VALUE_IS_RANGE 4 | #define SLARR_DATA_VALUE_IS_RANGE 0x0004 | |||
#define SLARR_DATA_VALUE_IS_INTRINSIC 8 | #define SLARR_DATA_VALUE_IS_INTRINSIC 0x0008 | |||
#define SLARR_DERIVED_FROM_SCALAR 0x0100 | ||||
SLang_Class_Type *cl; | SLang_Class_Type *cl; | |||
unsigned int num_refs; | unsigned int num_refs; | |||
void (*free_fun)_PROTO((struct _pSLang_Array_Type *)); | void (*free_fun)_PROTO((struct _pSLang_Array_Type *)); | |||
VOID_STAR client_data; | VOID_STAR client_data; | |||
} | } | |||
SLang_Array_Type; | SLang_Array_Type; | |||
extern int _pSLarray_convert_to_array (VOID_STAR cd, | ||||
int (*get_type)(VOID_STAR, SLuindex_T | ||||
ype, SLtype *), | ||||
int (*push)(VOID_STAR, SLuindex_Type) | ||||
, | ||||
SLuindex_Type num_objects, SLtype typ | ||||
e); | ||||
SL_EXTERN int SLang_pop_array_of_type (SLang_Array_Type **atp, SLtype type) ; | SL_EXTERN int SLang_pop_array_of_type (SLang_Array_Type **atp, SLtype type) ; | |||
SL_EXTERN int SLang_pop_array (SLang_Array_Type **atp, int convert_scalar); | SL_EXTERN int SLang_pop_array (SLang_Array_Type **atp, int convert_scalar); | |||
SL_EXTERN int SLang_push_array (SLang_Array_Type *at, int do_free); | SL_EXTERN int SLang_push_array (SLang_Array_Type *at, int do_free); | |||
SL_EXTERN void SLang_free_array (SLang_Array_Type *at); | SL_EXTERN void SLang_free_array (SLang_Array_Type *at); | |||
SL_EXTERN SLang_Array_Type *SLang_create_array (SLtype, int, VOID_STAR, SLi ndex_Type *, unsigned int); | SL_EXTERN SLang_Array_Type *SLang_create_array (SLtype, int, VOID_STAR, SLi ndex_Type *, unsigned int); | |||
SL_EXTERN SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *); | SL_EXTERN SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *); | |||
SL_EXTERN int SLang_get_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); | SL_EXTERN int SLang_get_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); | |||
SL_EXTERN int SLang_set_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); | SL_EXTERN int SLang_set_array_element (SLang_Array_Type *, SLindex_Type *, VOID_STAR); | |||
typedef int SLarray_Contract_Fun_Type (VOID_STAR xp, unsigned int increment , unsigned int num, VOID_STAR yp); | typedef int SLarray_Contract_Fun_Type (VOID_STAR xp, unsigned int increment , unsigned int num, VOID_STAR yp); | |||
skipping to change at line 1989 | skipping to change at line 1997 | |||
/*}}}*/ | /*}}}*/ | |||
/*{{{ Signal Routines */ | /*{{{ Signal Routines */ | |||
typedef void SLSig_Fun_Type (int); | typedef void SLSig_Fun_Type (int); | |||
SL_EXTERN SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *); | SL_EXTERN SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *); | |||
SL_EXTERN SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *); | SL_EXTERN SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *); | |||
SL_EXTERN int SLsig_block_signals (void); | SL_EXTERN int SLsig_block_signals (void); | |||
SL_EXTERN int SLsig_unblock_signals (void); | SL_EXTERN int SLsig_unblock_signals (void); | |||
SL_EXTERN int SLsystem (SLFUTURE_CONST char *); | SL_EXTERN int SLsystem (SLFUTURE_CONST char *); | |||
SL_EXTERN int SLsystem_intr (SLFUTURE_CONST char *); | ||||
/* Make a signal off-limits to the interpreter */ | /* Make a signal off-limits to the interpreter */ | |||
SL_EXTERN int SLsig_forbid_signal (int); | SL_EXTERN int SLsig_forbid_signal (int); | |||
SL_EXTERN SLFUTURE_CONST char *SLerrno_strerror (int); | SL_EXTERN SLFUTURE_CONST char *SLerrno_strerror (int); | |||
SL_EXTERN int SLerrno_set_errno (int); | SL_EXTERN int SLerrno_set_errno (int); | |||
/*}}}*/ | /*}}}*/ | |||
/* Functions for dealing with the FPU */ | /* Functions for dealing with the FPU */ | |||
End of changes. 7 change blocks. | ||||
8 lines changed or deleted | 20 lines changed or added | |||