/* libsizzle/nls.h - national language support
 
  Copyright (C) 2000 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
 
  This is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2, or (at your option)
  any later version.
  
  This software is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this package; see the file COPYING.  If not, write to the
  Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  MA 02111-1307, USA.  */

#ifndef __SIZZLE_NLS_H__
#define __SIZZLE_NLS_H__

#if HAVE_CONFIG_H
# include <config.h>
#endif 

#if __SIZZLE_IMPORT__
# define SIZZLE_API __declspec (dllimport)
#elif __SIZZLE_EXPORT__ 
# define SIZZLE_API __declspec (dllexport)
#else
# define SIZZLE_API
#endif

#include "result.h"

/* These hold error messages, possibly localized.  Used by the type
   checking macros above.  */
SIZZLE_API extern char * zzz_too_few_arguments;
SIZZLE_API extern char * zzz_too_many_arguments;
SIZZLE_API extern char * zzz_invalid_argument_list;
SIZZLE_API extern char * zzz_invalid_arg_type;
SIZZLE_API extern char * zzz_invalid_arg_range;
SIZZLE_API extern char * zzz_in_call_to;
SIZZLE_API extern char * zzz_expected;

/* These hold error message components (expected type names), possibly
   localized.  Used by the type checking macros above.  */
SIZZLE_API extern char * zzz_string_type_name;
SIZZLE_API extern char * zzz_mutable_string_type_name;
SIZZLE_API extern char * zzz_number_type_name;
SIZZLE_API extern char * zzz_integer_type_name;
SIZZLE_API extern char * zzz_real_type_name;
SIZZLE_API extern char * zzz_list_type_name;
SIZZLE_API extern char * zzz_proper_list_type_name;
SIZZLE_API extern char * zzz_finite_list_type_name;
SIZZLE_API extern char * zzz_symbol_type_name;
SIZZLE_API extern char * zzz_pair_type_name;
SIZZLE_API extern char * zzz_symbol_or_list_type_name;
SIZZLE_API extern char * zzz_procedure_type_name;
SIZZLE_API extern char * zzz_boolean_or_procedure_type_name;
SIZZLE_API extern char * zzz_environment_type_name;
SIZZLE_API extern char * zzz_boolean_type_name;
SIZZLE_API extern char * zzz_character_type_name;
SIZZLE_API extern char * zzz_hash_table_type_name;
SIZZLE_API extern char * zzz_mutable_hash_table_type_name;
SIZZLE_API extern char * zzz_non_negative_integer_type_name;
SIZZLE_API extern char * zzz_proper_or_circular_list_type_name;
SIZZLE_API extern char * zzz_proper_alist_type_name;
SIZZLE_API extern char * zzz_non_empty_list_type_name;
SIZZLE_API extern char * zzz_syntax_type_name;
SIZZLE_API extern char * zzz_positive_number_type_name;
SIZZLE_API extern char * zzz_positive_integer_type_name;
SIZZLE_API extern char * zzz_string_or_integer_type_name;
SIZZLE_API extern char * zzz_fdport_type_name;
SIZZLE_API extern char * zzz_port_type_name;
SIZZLE_API extern char * zzz_list_or_vector_type_name;
SIZZLE_API extern char * zzz_vector_type_name;
SIZZLE_API extern char * zzz_promise_type_name;
SIZZLE_API extern char * zzz_regexp_type_name;
SIZZLE_API extern char * zzz_sport_type_name;
SIZZLE_API extern char * zzz_boolean_or_integer_type_name;
SIZZLE_API extern char * zzz_s8vector_type_name;
SIZZLE_API extern char * zzz_u8vector_type_name;
SIZZLE_API extern char * zzz_s16vector_type_name;
SIZZLE_API extern char * zzz_u16vector_type_name;
SIZZLE_API extern char * zzz_s32vector_type_name;
SIZZLE_API extern char * zzz_u32vector_type_name;
SIZZLE_API extern char * zzz_s64vector_type_name;
SIZZLE_API extern char * zzz_u64vector_type_name;
SIZZLE_API extern char * zzz_f32vector_type_name;
SIZZLE_API extern char * zzz_f64vector_type_name;
SIZZLE_API extern char * zzz_macro_type_name;
SIZZLE_API extern char * zzz_keyword_type_name;
SIZZLE_API extern char * zzz_safe_filename_type_name;
SIZZLE_API extern char * zzz_box_type_name;

/* Initialize the NLS module.  This *must* be called before any of the
   variables above is used, because otherwise the library will
   segfault.  */
SIZZLE_API result_t zzz_init_nls (void);

#endif /* not __SIZZLE_NLS_H__ */

