Renamed ASN.1 compiler to yaz-comp (used to be yc.tcl).
[yaz-moved-to-github.git] / z39.50 / z-date.c
1 /* Generated automatically by the YAZ ASN.1 Compiler 0.3 */
2 /* Module-C: UserInfoFormat-dateTime */
3
4 #include <yaz/z-date.h>
5
6 int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name)
7 {
8         if (!odr_sequence_begin (o, p, sizeof(**p), name))
9                 return opt && odr_ok (o);
10         return
11                 odr_explicit_tag (o, z_Date,
12                         &(*p)->date, ODR_CONTEXT, 1, 1, "date") &&
13                 odr_explicit_tag (o, z_Time,
14                         &(*p)->time, ODR_CONTEXT, 2, 1, "time") &&
15                 odr_sequence_end (o);
16 }
17
18 int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name)
19 {
20         if (!odr_sequence_begin (o, p, sizeof(**p), name))
21                 return opt && odr_ok (o);
22         return
23                 odr_implicit_tag (o, odr_integer,
24                         &(*p)->month, ODR_CONTEXT, 2, 0, "month") &&
25                 odr_implicit_tag (o, odr_integer,
26                         &(*p)->day, ODR_CONTEXT, 3, 1, "day") &&
27                 odr_sequence_end (o);
28 }
29
30 int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name)
31 {
32         static Odr_arm arm[] = {
33                 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateQuarter_first,
34                 (Odr_fun) odr_null, "first"},
35                 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateQuarter_second,
36                 (Odr_fun) odr_null, "second"},
37                 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateQuarter_third,
38                 (Odr_fun) odr_null, "third"},
39                 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateQuarter_fourth,
40                 (Odr_fun) odr_null, "fourth"},
41                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
42         };
43         if (!odr_initmember(o, p, sizeof(**p)))
44                 return opt && odr_ok(o);
45         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
46                 return 1;
47         *p = 0;
48         return opt && odr_ok(o);
49 }
50
51 int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name)
52 {
53         static Odr_arm arm[] = {
54                 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateSeason_winter,
55                 (Odr_fun) odr_null, "winter"},
56                 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateSeason_spring,
57                 (Odr_fun) odr_null, "spring"},
58                 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateSeason_summer,
59                 (Odr_fun) odr_null, "summer"},
60                 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateSeason_autumn,
61                 (Odr_fun) odr_null, "autumn"},
62                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
63         };
64         if (!odr_initmember(o, p, sizeof(**p)))
65                 return opt && odr_ok(o);
66         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
67                 return 1;
68         *p = 0;
69         return opt && odr_ok(o);
70 }
71
72 int z_Era (ODR o, Z_Era **p, int opt, const char *name)
73 {
74         static Odr_arm arm[] = {
75                 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade,
76                 (Odr_fun) odr_null, "decade"},
77                 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century,
78                 (Odr_fun) odr_null, "century"},
79                 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium,
80                 (Odr_fun) odr_null, "millennium"},
81                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
82         };
83         if (!odr_initmember(o, p, sizeof(**p)))
84                 return opt && odr_ok(o);
85         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
86                 return 1;
87         *p = 0;
88         return opt && odr_ok(o);
89 }
90
91 int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name)
92 {
93         if (!odr_sequence_begin (o, p, sizeof(**p), name))
94                 return opt && odr_ok (o);
95         return
96                 odr_implicit_tag (o, odr_null,
97                         &(*p)->circa, ODR_CONTEXT, 1, 1, "circa") &&
98                 odr_implicit_tag (o, z_Era,
99                         &(*p)->era, ODR_CONTEXT, 2, 1, "era") &&
100                 odr_sequence_end (o);
101 }
102
103 int z_Date (ODR o, Z_Date **p, int opt, const char *name)
104 {
105         static Odr_arm arm[] = {
106                 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Date_monthAndDay,
107                 (Odr_fun) z_DateMonthAndDay, "monthAndDay"},
108                 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Date_julianDay,
109                 (Odr_fun) odr_integer, "julianDay"},
110                 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Date_weekNumber,
111                 (Odr_fun) odr_integer, "weekNumber"},
112                 {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Date_quarter,
113                 (Odr_fun) z_DateQuarter, "quarter"},
114                 {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_Date_season,
115                 (Odr_fun) z_DateSeason, "season"},
116                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
117         };
118         if (!odr_sequence_begin (o, p, sizeof(**p), name))
119                 return opt && odr_ok (o);
120         return
121                 odr_implicit_tag (o, odr_integer,
122                         &(*p)->year, ODR_CONTEXT, 1, 0, "year") &&
123                 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "partOfYear") &&
124                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
125                 odr_constructed_end (o)) || odr_ok(o)) &&
126                 odr_implicit_tag (o, z_DateFlags,
127                         &(*p)->flags, ODR_CONTEXT, 3, 1, "flags") &&
128                 odr_sequence_end (o);
129 }
130
131 int z_Time (ODR o, Z_Time **p, int opt, const char *name)
132 {
133         static Odr_arm arm[] = {
134                 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Time_local,
135                 (Odr_fun) odr_null, "local"},
136                 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Time_utc,
137                 (Odr_fun) odr_null, "utc"},
138                 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Time_utcOffset,
139                 (Odr_fun) odr_integer, "utcOffset"},
140                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
141         };
142         if (!odr_sequence_begin (o, p, sizeof(**p), name))
143                 return opt && odr_ok (o);
144         return
145                 odr_implicit_tag (o, odr_integer,
146                         &(*p)->hour, ODR_CONTEXT, 1, 0, "hour") &&
147                 odr_implicit_tag (o, odr_integer,
148                         &(*p)->minute, ODR_CONTEXT, 2, 1, "minute") &&
149                 odr_implicit_tag (o, odr_integer,
150                         &(*p)->second, ODR_CONTEXT, 3, 1, "second") &&
151                 odr_implicit_tag (o, z_IntUnit,
152                         &(*p)->partOfSecond, ODR_CONTEXT, 4, 1, "partOfSecond") &&
153                 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "zone") &&
154                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
155                 odr_constructed_end (o) &&
156                 odr_sequence_end (o);
157 }