1 /* Copyright (C) 1996-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published
6    by the Free Software Foundation; version 2 of the License, or
7    (at your option) any later version.
8 
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13 
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
16 
17 #ifndef _TOKEN_H
18 #define _TOKEN_H
19 
20 enum token_t
21 {
22   tok_none = 0,
23 
24   tok_eof,
25   tok_eol,
26   tok_bsymbol,
27   tok_ident,
28   tok_ellipsis2,
29   tok_ellipsis3,
30   tok_ellipsis4,
31   tok_ellipsis2_2,
32   tok_ellipsis4_2,
33   tok_semicolon,
34   tok_comma,
35   tok_open_brace,
36   tok_close_brace,
37   tok_charcode,
38   tok_ucs4,
39   tok_number,
40   tok_minus1,
41   tok_string,
42   tok_include,
43 
44   tok_escape_char,
45   tok_comment_char,
46   tok_charmap,
47   tok_end,
48   tok_g0esc,
49   tok_g1esc,
50   tok_g2esc,
51   tok_g3esc,
52   tok_escseq,
53   tok_addset,
54 
55   tok_charids,
56 
57   tok_code_set_name,
58   tok_mb_cur_max,
59   tok_mb_cur_min,
60   tok_charconv,
61   tok_width,
62   tok_width_variable,
63   tok_width_default,
64   tok_repertoiremap,
65 
66   tok_lc_ctype,
67   tok_copy,
68   /* Keep the following entries up to the next comment in this order!  */
69   tok_upper,
70   tok_lower,
71   tok_alpha,
72   tok_digit,
73   tok_xdigit,
74   tok_space,
75   tok_print,
76   tok_graph,
77   tok_blank,
78   tok_cntrl,
79   tok_punct,
80   tok_alnum,
81   /* OK, shuffling allowed again.  */
82   tok_outdigit,
83   tok_charclass,
84   tok_class,
85   tok_toupper,
86   tok_tolower,
87   tok_map,
88   tok_translit_start,
89   tok_translit_end,
90   tok_translit_ignore,
91   tok_default_missing,
92   tok_lc_collate,
93   tok_codepoint_collation,
94   tok_coll_weight_max,
95   tok_section_symbol,
96   tok_collating_element,
97   tok_collating_symbol,
98   tok_symbol_equivalence,
99   tok_script,
100   tok_order_start,
101   tok_order_end,
102   tok_from,
103   tok_forward,
104   tok_backward,
105   tok_position,
106   tok_undefined,
107   tok_ignore,
108   tok_reorder_after,
109   tok_reorder_end,
110   tok_reorder_sections_after,
111   tok_reorder_sections_end,
112   tok_define,
113   tok_undef,
114   tok_ifdef,
115   tok_ifndef,
116   tok_else,
117   tok_elifdef,
118   tok_elifndef,
119   tok_endif,
120   tok_lc_monetary,
121   tok_int_curr_symbol,
122   tok_currency_symbol,
123   tok_mon_decimal_point,
124   tok_mon_thousands_sep,
125   tok_mon_grouping,
126   tok_positive_sign,
127   tok_negative_sign,
128   tok_int_frac_digits,
129   tok_frac_digits,
130   tok_p_cs_precedes,
131   tok_p_sep_by_space,
132   tok_n_cs_precedes,
133   tok_n_sep_by_space,
134   tok_p_sign_posn,
135   tok_n_sign_posn,
136   tok_int_p_cs_precedes,
137   tok_int_p_sep_by_space,
138   tok_int_n_cs_precedes,
139   tok_int_n_sep_by_space,
140   tok_int_p_sign_posn,
141   tok_int_n_sign_posn,
142   tok_duo_int_curr_symbol,
143   tok_duo_currency_symbol,
144   tok_duo_int_frac_digits,
145   tok_duo_frac_digits,
146   tok_duo_p_cs_precedes,
147   tok_duo_p_sep_by_space,
148   tok_duo_n_cs_precedes,
149   tok_duo_n_sep_by_space,
150   tok_duo_int_p_cs_precedes,
151   tok_duo_int_p_sep_by_space,
152   tok_duo_int_n_cs_precedes,
153   tok_duo_int_n_sep_by_space,
154   tok_duo_p_sign_posn,
155   tok_duo_n_sign_posn,
156   tok_duo_int_p_sign_posn,
157   tok_duo_int_n_sign_posn,
158   tok_uno_valid_from,
159   tok_uno_valid_to,
160   tok_duo_valid_from,
161   tok_duo_valid_to,
162   tok_conversion_rate,
163   tok_lc_numeric,
164   tok_decimal_point,
165   tok_thousands_sep,
166   tok_grouping,
167   tok_lc_time,
168   tok_abday,
169   tok_day,
170   tok_abmon,
171   tok_mon,
172   tok_d_t_fmt,
173   tok_d_fmt,
174   tok_t_fmt,
175   tok_am_pm,
176   tok_t_fmt_ampm,
177   tok_era,
178   tok_era_year,
179   tok_era_d_fmt,
180   tok_era_d_t_fmt,
181   tok_era_t_fmt,
182   tok_alt_digits,
183   tok_week,
184   tok_first_weekday,
185   tok_first_workday,
186   tok_cal_direction,
187   tok_timezone,
188   tok_date_fmt,
189   tok_alt_mon,
190   tok_ab_alt_mon,
191   tok_lc_messages,
192   tok_yesexpr,
193   tok_noexpr,
194   tok_yesstr,
195   tok_nostr,
196   tok_lc_paper,
197   tok_height,
198   tok_lc_name,
199   tok_name_fmt,
200   tok_name_gen,
201   tok_name_mr,
202   tok_name_mrs,
203   tok_name_miss,
204   tok_name_ms,
205   tok_lc_address,
206   tok_postal_fmt,
207   tok_country_name,
208   tok_country_post,
209   tok_country_ab2,
210   tok_country_ab3,
211   tok_country_num,
212   tok_country_car,
213   tok_country_isbn,
214   tok_lang_name,
215   tok_lang_ab,
216   tok_lang_term,
217   tok_lang_lib,
218   tok_lc_telephone,
219   tok_tel_int_fmt,
220   tok_tel_dom_fmt,
221   tok_int_select,
222   tok_int_prefix,
223   tok_lc_measurement,
224   tok_measurement,
225   tok_lc_identification,
226   tok_title,
227   tok_source,
228   tok_address,
229   tok_contact,
230   tok_email,
231   tok_tel,
232   tok_fax,
233   tok_language,
234   tok_territory,
235   tok_audience,
236   tok_application,
237   tok_abbreviation,
238   tok_revision,
239   tok_date,
240   tok_category,
241 
242   tok_error
243 };
244 
245 
246 struct keyword_t
247 {
248   const char *name;
249   enum token_t token;
250   int symname_or_ident;
251 
252   /* Only for locdef file.  */
253   int locale;
254   enum token_t base;
255   enum token_t group;
256   enum token_t list;
257 };
258 
259 
260 #endif /* token.h */
261