da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/***********************************************************************
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* This software is part of the ast package *
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner* Copyright (c) 1985-2010 AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* and is licensed under the *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Common Public License, Version 1.0 *
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin* by AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* A copy of the License is available at *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* http://www.opensource.org/licenses/cpl1.0.txt *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Information and Software Systems Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* AT&T Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Florham Park NJ *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Glenn Fowler <gsf@research.att.com> *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* David Korn <dgk@research.att.com> *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Phong Vo <kpv@research.att.com> *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin***********************************************************************/
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/* : : generated by proto : : */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/* : : generated by ./lcgen : : */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#ifndef _LC_H
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if !defined(__PROTO__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <prototyped.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if !defined(__LINKAGE__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __LINKAGE__ /* 2004-08-11 transition */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define _LC_H 1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <ast.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_abbreviated 0x00001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_checked 0x00002
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz#define LC_debug 0x00004
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz#define LC_default 0x00008
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz#define LC_defined 0x00010
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_local 0x00020
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_primary 0x00040
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_qualified 0x00080
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_undefined 0x00100
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz#define LC_utf8 0x00200
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz#define LC_verbose 0x00400
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner#define LC_setlocale 0x10000
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner#define LC_setenv 0x20000
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner#define LC_user 0x40000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_language_attribute_max 2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define LC_territory_language_max 4
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstruct Lc_s;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_info_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const struct Lc_s* lc;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long number;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin __V_* data;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_info_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_attribute_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* name;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long flags;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long index;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_attribute_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_charset_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* code;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* alternates;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* ms;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long index;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_charset_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_language_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* code;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* name;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* alternates;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_charset_t* charset;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long flags;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long index;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_attribute_t* attributes[LC_language_attribute_max];
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_language_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_territory_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* code;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* name;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long flags;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long index;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_language_t* languages[LC_territory_language_max];
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#ifdef _LC_TERRITORY_PRIVATE_
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin _LC_TERRITORY_PRIVATE_
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_territory_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_map_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* code;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_language_t* language;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_territory_t* territory;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_charset_t* charset;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_attribute_t* attribute;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_map_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_attribute_list_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin struct Lc_attribute_list_s* next;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_attribute_t* attribute;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_attribute_list_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* name;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* code;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_language_t* language;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_territory_t* territory;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_charset_t* charset;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const Lc_attribute_list_t* attributes;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long flags;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin unsigned long index;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#ifdef _LC_PRIVATE_
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin _LC_PRIVATE_
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstruct Lc_category_s;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef int (*Lc_category_set_f) __PROTO__((struct Lc_category_s*));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypedef struct Lc_category_s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin const char* name;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin int external;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin int internal;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Lc_category_set_f setf;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Lc_t* prev;
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner unsigned int flags;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin} Lc_category_t;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if _BLD_ast && defined(__EXPORT__)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#undef __MANGLE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __MANGLE__ __LINKAGE__ __EXPORT__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ size_t lccanon __PROTO__((Lc_t*, unsigned long flags, char*, size_t));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Lc_category_t* lccategories __PROTO__((void));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ int lcindex __PROTO__((int, int));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Lc_info_t* lcinfo __PROTO__((int));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Lc_t* lcmake __PROTO__((const char*));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern __MANGLE__ Lc_t* lcscan __PROTO__((Lc_t*));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#undef __MANGLE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#define __MANGLE__ __LINKAGE__
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif