/* @(#)Copyright (c), 1987, 1996 StatSci, Inc.  All rights reserved. */
/* @(#)S_externs.h version 3.1 created 4/18/96 */
/***
   NAME S_externs
   PURPOSE
     Random 'extern' variables & functions split off from S.h.
   NOTES
     The general idea here is to include the variables & functions that
     could/would be needed by some external chunk of software that might
     need to go wandering through S object structures (say, S+API, for
     example).
***/
#ifndef S_externsINCLUDED
#define S_externsINCLUDED 1

/* Pre-requisite includes go here. */
#include <sccs.h>
SCCS_ID_C(S_externsDotH,@(#)S_externs.h 3.1 last edit 4/18/96 StatSci)

#include <ansi_things.h>

/* These functions are defined in $QPE/pars_util.c for S-PLUS */
extern char *token_name PARAMS((int));
extern int mode_lookup PARAMS((char *));

/* The following is defined in $QPE/comp_util.c for S-PLUS */
extern long test_sign PARAMS((char *, int));

/* The following are defined in $QPE/str_utils.c for S-PLUS */
extern int name_eq PARAMS((char *, char *));
extern void make_formats PARAMS((void));
extern void set_full_precision PARAMS((long *));

#ifdef str_utilsDEFINE
#define INIT(x) = x
#define vextern
#else
#define INIT(x)
#define vextern extern
#endif /* str_utilsDEFINE */

vextern char *Integer_format, *Single_format, *Double_format, *Complex_format;
vextern long Integer_length, Single_length, Double_length, Complex_length;

#undef INIT
#undef vextern
#endif /* S_externsINCLUDED */
