Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
asn1c
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
asn1c
Commits
9c974183
Commit
9c974183
authored
Sep 15, 2004
by
Lev Walkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DEFAULT type support
parent
5498f2d6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
2196 additions
and
2144 deletions
+2196
-2144
libasn1parser/asn1p_l.c
libasn1parser/asn1p_l.c
+1440
-1466
libasn1parser/asn1p_l.l
libasn1parser/asn1p_l.l
+6
-3
libasn1parser/asn1p_value.c
libasn1parser/asn1p_value.c
+29
-8
libasn1parser/asn1p_value.h
libasn1parser/asn1p_value.h
+9
-3
libasn1parser/asn1p_y.c
libasn1parser/asn1p_y.c
+661
-638
libasn1parser/asn1p_y.h
libasn1parser/asn1p_y.h
+1
-1
libasn1parser/asn1p_y.y
libasn1parser/asn1p_y.y
+50
-25
No files found.
libasn1parser/asn1p_l.c
View file @
9c974183
This source diff could not be displayed because it is too large. You can
view the blob
instead.
libasn1parser/asn1p_l.l
View file @
9c974183
...
...
@@ -285,7 +285,9 @@ WSP [\t\r\v\f\n ]
}
ABSENT return TOK_ABSENT;
/*
ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX;
*/
ALL return TOK_ALL;
ANY {
/* Appeared in 1990, removed in 1997 */
...
...
@@ -485,9 +487,10 @@ WITH return TOK_WITH;
yylineno, yytext);
while(YYSTATE != INITIAL)
yy_pop_state();
yy_top_state(); /* Just to use this function. */
yyterminate();
yy_fatal_error("Unexpected token");
if(0) {
yy_top_state(); /* Just to use this function. */
yy_fatal_error("Parse error");
}
return -1;
}
...
...
libasn1parser/asn1p_value.c
View file @
9c974183
...
...
@@ -110,13 +110,12 @@ asn1p_value_fromint(asn1_integer_t i) {
asn1p_value_t
*
asn1p_value_clone
(
asn1p_value_t
*
v
)
{
asn1p_value_t
*
clone
;
asn1p_value_t
*
clone
=
NULL
;
if
(
v
)
{
switch
(
v
->
type
)
{
case
ATV_NOVALUE
:
return
calloc
(
1
,
sizeof
(
*
v
));
case
ATV_REFERENCED
:
return
asn1p_value_fromref
(
v
->
value
.
reference
,
1
);
case
ATV_NULL
:
return
calloc
(
1
,
sizeof
(
*
clone
));
case
ATV_REAL
:
return
asn1p_value_fromdouble
(
v
->
value
.
v_double
);
case
ATV_INTEGER
:
...
...
@@ -140,7 +139,24 @@ asn1p_value_clone(asn1p_value_t *v) {
case
ATV_BITVECTOR
:
return
asn1p_value_frombuf
(
v
->
value
.
binary_vector
.
bits
,
v
->
value
.
binary_vector
.
size_in_bits
,
1
);
case
ATV_REFERENCED
:
return
asn1p_value_fromref
(
v
->
value
.
reference
,
1
);
case
ATV_CHOICE_IDENTIFIER
:
{
char
*
id
=
v
->
value
.
choice_identifier
.
identifier
;
clone
=
calloc
(
1
,
sizeof
(
*
clone
));
if
(
!
clone
)
return
NULL
;
clone
->
type
=
v
->
type
;
id
=
strdup
(
id
);
if
(
!
id
)
{
asn1p_value_free
(
clone
);
return
NULL
;
}
clone
->
value
.
choice_identifier
.
identifier
=
id
;
v
=
asn1p_value_clone
(
v
->
value
.
choice_identifier
.
value
);
if
(
!
v
)
{
asn1p_value_free
(
clone
);
return
NULL
;
}
clone
->
value
.
choice_identifier
.
value
=
v
;
return
clone
;
}
}
assert
(
!
"UNREACHABLE"
);
}
return
v
;
}
...
...
@@ -150,16 +166,14 @@ asn1p_value_free(asn1p_value_t *v) {
if
(
v
)
{
switch
(
v
->
type
)
{
case
ATV_NOVALUE
:
case
ATV_NULL
:
break
;
case
ATV_REFERENCED
:
asn1p_ref_free
(
v
->
value
.
reference
);
break
;
case
ATV_REAL
:
case
ATV_INTEGER
:
case
ATV_MIN
:
case
ATV_MAX
:
case
ATV_FALSE
:
case
ATV_TRUE
:
case
ATV_REAL
:
/* No freeing necessary */
break
;
case
ATV_STRING
:
...
...
@@ -171,6 +185,13 @@ asn1p_value_free(asn1p_value_t *v) {
assert
(
v
->
value
.
binary_vector
.
bits
);
free
(
v
->
value
.
binary_vector
.
bits
);
break
;
case
ATV_REFERENCED
:
asn1p_ref_free
(
v
->
value
.
reference
);
break
;
case
ATV_CHOICE_IDENTIFIER
:
free
(
v
->
value
.
choice_identifier
.
identifier
);
asn1p_value_free
(
v
->
value
.
choice_identifier
.
value
);
break
;
}
free
(
v
);
}
...
...
libasn1parser/asn1p_value.h
View file @
9c974183
...
...
@@ -13,9 +13,9 @@ typedef struct asn1p_value_s {
*/
enum
{
ATV_NOVALUE
,
ATV_
REFERENCED
,
ATV_
INTEGER
,
ATV_
REAL
,
ATV_
NULL
,
/* A "NULL" value of type NULL. */
ATV_
REAL
,
/* A constant floating-point value */
ATV_
INTEGER
,
/* An integer constant */
ATV_MAX
,
ATV_MIN
,
ATV_TRUE
,
...
...
@@ -23,6 +23,8 @@ typedef struct asn1p_value_s {
ATV_STRING
,
ATV_UNPARSED
,
ATV_BITVECTOR
,
ATV_REFERENCED
,
/* Reference to a value defined elsewhere */
ATV_CHOICE_IDENTIFIER
,
/* ChoiceIdentifier value */
}
type
;
/* Value type and location */
union
{
...
...
@@ -40,6 +42,10 @@ typedef struct asn1p_value_s {
uint8_t
*
bits
;
int
size_in_bits
;
}
binary_vector
;
struct
{
char
*
identifier
;
struct
asn1p_value_s
*
value
;
}
choice_identifier
;
}
value
;
}
asn1p_value_t
;
...
...
libasn1parser/asn1p_y.c
View file @
9c974183
...
...
@@ -182,7 +182,7 @@ typedef union {
asn1p_value_t
*
a_value
;
/* Number, DefinedValue, etc */
struct
asn1p_param_s
a_parg
;
/* A parameter argument */
asn1p_paramlist_t
*
a_plist
;
/* A pargs list */
enum
asn1p_expr_marker_e
a_marker
;
/* OPTIONAL/DEFAULT */
struct
asn1p_expr_marker_s
a_marker
;
/* OPTIONAL/DEFAULT */
enum
asn1p_constr_pres_e
a_pres
;
/* PRESENT/ABSENT/OPTIONAL */
asn1_integer_t
a_int
;
char
*
tv_str
;
...
...
@@ -205,11 +205,11 @@ typedef union {
#define YYFINAL 39
7
#define YYFINAL 39
9
#define YYFLAG -32768
#define YYNTBASE 115
#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 21
3
)
#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 21
1
)
static
const
char
yytranslate
[]
=
{
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
...
...
@@ -263,96 +263,96 @@ static const short yyprhs[] = { 0,
231
,
233
,
239
,
240
,
242
,
244
,
248
,
251
,
256
,
261
,
262
,
264
,
265
,
272
,
274
,
277
,
279
,
281
,
283
,
287
,
291
,
295
,
297
,
299
,
304
,
309
,
314
,
320
,
326
,
328
,
333
,
338
,
340
,
344
,
346
,
350
,
354
,
35
6
,
360
,
362
,
366
,
3
68
,
370
,
372
,
374
,
379
,
380
,
384
,
386
,
388
,
39
0
,
392
,
394
,
396
,
400
,
402
,
405
,
407
,
409
,
411
,
41
3
,
416
,
419
,
421
,
423
,
426
,
429
,
431
,
433
,
435
,
4
37
,
440
,
442
,
445
,
447
,
449
,
451
,
453
,
455
,
457
,
4
59
,
461
,
463
,
465
,
467
,
469
,
471
,
473
,
475
,
477
,
4
79
,
481
,
483
,
484
,
486
,
488
,
493
,
497
,
502
,
504
,
50
8
,
514
,
516
,
520
,
524
,
528
,
533
,
537
,
539
,
543
,
54
7
,
551
,
555
,
557
,
559
,
561
,
564
,
567
,
571
,
573
,
575
,
57
7
,
579
,
581
,
583
,
585
,
591
,
593
,
597
,
599
,
603
,
604
,
606
,
608
,
610
,
612
,
614
,
616
,
620
,
625
,
62
7
,
631
,
634
,
638
,
640
,
644
,
645
,
647
,
649
,
652
,
65
4
,
656
,
657
,
661
,
664
,
668
,
670
,
674
,
676
,
681
,
686
,
6
88
,
690
,
692
,
694
,
695
,
697
,
699
,
702
,
705
,
7
07
,
709
,
711
333
,
338
,
340
,
344
,
346
,
350
,
354
,
35
8
,
360
,
364
,
366
,
3
70
,
372
,
374
,
376
,
378
,
383
,
387
,
388
,
392
,
39
4
,
396
,
398
,
400
,
402
,
404
,
406
,
408
,
410
,
414
,
41
6
,
419
,
421
,
423
,
425
,
427
,
430
,
433
,
435
,
437
,
4
40
,
443
,
445
,
447
,
449
,
451
,
454
,
456
,
459
,
461
,
4
63
,
465
,
467
,
469
,
471
,
473
,
475
,
477
,
479
,
481
,
4
83
,
485
,
487
,
489
,
491
,
493
,
495
,
497
,
498
,
500
,
50
2
,
507
,
511
,
516
,
518
,
522
,
528
,
530
,
534
,
538
,
54
2
,
547
,
551
,
553
,
557
,
561
,
565
,
569
,
571
,
573
,
575
,
57
8
,
581
,
585
,
587
,
589
,
591
,
593
,
595
,
597
,
599
,
605
,
607
,
611
,
613
,
617
,
618
,
620
,
622
,
624
,
62
6
,
628
,
630
,
634
,
639
,
641
,
645
,
648
,
652
,
654
,
65
8
,
659
,
661
,
663
,
666
,
669
,
673
,
675
,
679
,
681
,
686
,
6
91
,
693
,
695
,
697
,
699
,
700
,
702
,
704
,
707
,
7
10
,
712
,
714
,
716
};
static
const
short
yyrhs
[]
=
{
116
,
0
,
117
,
0
,
116
,
117
,
0
,
2
10
,
118
,
34
,
122
,
0
,
117
,
0
,
116
,
117
,
0
,
2
08
,
118
,
34
,
122
,
3
,
21
,
125
,
39
,
0
,
0
,
119
,
0
,
104
,
120
,
105
,
0
,
104
,
105
,
0
,
121
,
0
,
120
,
121
,
0
,
21
2
,
0
,
212
,
106
,
9
,
107
,
0
,
9
,
0
,
0
,
21
0
,
0
,
210
,
106
,
9
,
107
,
0
,
9
,
0
,
0
,
123
,
0
,
124
,
0
,
123
,
124
,
0
,
41
,
84
,
0
,
52
,
84
,
0
,
20
,
84
,
0
,
43
,
53
,
0
,
12
,
57
,
0
,
0
,
126
,
0
,
127
,
0
,
126
,
127
,
0
,
129
,
0
,
134
,
0
,
142
,
0
,
168
,
0
,
137
,
0
,
0
,
38
,
12
,
128
,
0
,
176
,
0
,
54
,
130
,
108
,
0
,
54
,
46
,
0
,
131
,
0
,
130
,
131
,
0
,
132
,
46
,
2
10
,
118
,
0
,
133
,
0
,
132
,
109
,
133
,
0
,
2
10
,
0
,
212
,
0
,
42
,
135
,
108
,
0
,
42
,
17
,
46
,
2
08
,
118
,
0
,
133
,
0
,
132
,
109
,
133
,
0
,
2
08
,
0
,
210
,
0
,
42
,
135
,
108
,
0
,
42
,
17
,
108
,
0
,
42
,
108
,
0
,
136
,
0
,
135
,
109
,
136
,
0
,
2
10
,
0
,
212
,
0
,
210
,
138
,
3
,
104
,
139
,
0
,
2
08
,
0
,
210
,
0
,
208
,
138
,
3
,
104
,
139
,
105
,
0
,
163
,
0
,
173
,
0
,
0
,
140
,
0
,
141
,
0
,
140
,
109
,
141
,
0
,
102
,
0
,
184
,
0
,
2
10
,
3
,
20
8
,
87
,
0
,
210
,
3
,
161
,
0
,
210
,
3
,
151
,
0
,
2
10
,
104
,
143
,
105
,
3
,
161
,
0
,
144
,
0
,
143
,
109
,
144
,
0
,
2
10
,
0
,
210
,
110
,
212
,
0
,
173
,
110
,
21
2
,
0
,
146
,
0
,
145
,
109
,
146
,
0
,
161
,
0
,
21
2
,
0
,
148
,
0
,
147
,
109
,
148
,
0
,
21
2
,
161
,
200
,
0
,
30
,
68
,
161
,
0
,
160
,
0
,
150
,
0
,
149
,
109
,
150
,
0
,
21
2
,
161
,
0
,
0
,
140
,
109
,
141
,
0
,
102
,
0
,
184
,
0
,
2
08
,
3
,
20
6
,
87
,
0
,
208
,
3
,
161
,
0
,
208
,
3
,
151
,
0
,
2
08
,
104
,
143
,
105
,
3
,
161
,
0
,
144
,
0
,
143
,
109
,
144
,
0
,
2
08
,
0
,
208
,
110
,
210
,
0
,
173
,
110
,
21
0
,
0
,
146
,
0
,
145
,
109
,
146
,
0
,
161
,
0
,
21
0
,
0
,
148
,
0
,
147
,
109
,
148
,
0
,
21
0
,
161
,
200
,
0
,
30
,
68
,
161
,
0
,
160
,
0
,
150
,
0
,
149
,
109
,
150
,
0
,
21
0
,
161
,
0
,
160
,
0
,
28
,
104
,
153
,
105
,
155
,
0
,
0
,
88
,
0
,
154
,
0
,
153
,
109
,
154
,
0
,
166
,
200
,
0
,
166
,
161
,
200
,
152
,
0
,
166
,
166
,
200
,
152
,
0
,
0
,
156
,
0
,
0
,
95
,
82
,
104
,
157
,
158
,
105
,
0
,
159
,
0
,
158
,
159
,
0
,
4
,
0
,
166
,
0
,
102
,
0
,
102
,
111
,
171
,
0
,
102
,
111
,
20
7
,
0
,
20
8
,
162
,
180
,
0
,
175
,
0
,
176
,
0
,
27
,
104
,
102
,
0
,
102
,
111
,
171
,
0
,
102
,
111
,
20
5
,
0
,
20
6
,
162
,
180
,
0
,
175
,
0
,
176
,
0
,
27
,
104
,
149
,
105
,
0
,
78
,
104
,
147
,
105
,
0
,
79
,
104
,
147
,
105
,
0
,
78
,
180
,
68
,
20
8
,
162
,
0
,
79
,
180
,
68
,
20
8
,
162
,
0
,
18
,
0
,
18
,
35
,
25
,
21
2
,
0
,
210
,
104
,
145
,
105
,
0
,
163
,
0
,
56
,
68
,
163
,
0
,
11
,
0
,
11
,
112
,
2
10
,
0
,
11
,
112
,
2
12
,
0
,
211
,
0
,
211
,
112
,
164
,
0
,
165
,
0
,
164
,
112
,
165
,
0
,
167
,
0
,
167
,
0
,
13
,
0
,
14
,
0
,
212
,
138
,
3
,
169
,
0
,
0
,
104
,
1
70
,
172
,
0
,
5
,
0
,
7
,
0
,
6
,
0
,
207
,
0
,
171
,
0
,
212
,
0
,
210
,
112
,
212
,
0
,
4
,
0
,
172
,
4
,
0
,
24
,
0
,
63
,
0
,
76
,
0
,
1
74
,
0
,
67
,
81
,
0
,
65
,
51
,
0
,
77
,
0
,
44
,
0
,
36
,
71
,
0
,
26
,
81
,
0
,
91
,
0
,
47
,
0
,
58
,
0
,
40
,
0
,
22
,
81
,
0
,
173
,
0
,
174
,
204
,
0
,
23
,
0
,
48
,
0
,
49
,
0
,
50
,
0
,
59
,
0
,
64
,
0
,
74
,
0
,
8
3
,
0
,
85
,
0
,
90
,
0
,
92
,
0
,
93
,
0
,
9
4
,
0
,
66
,
0
,
99
,
0
,
100
,
0
,
97
,
0
,
98
,
0
,
9
6
,
0
,
0
,
181
,
0
,
182
,
0
,
80
,
106
,
183
,
107
,
0
,
106
,
183
,
107
,
0
,
182
,
106
,
183
,
107
,
0
,
184
,
0
,
184
,
109
,
102
,
0
,
184
,
109
,
102
,
1
09
,
184
,
0
,
185
,
0
,
184
,
177
,
185
,
0
,
184
,
178
,
185
,
0
,
185
,
179
,
185
,
0
,
187
,
106
,
183
,
1
07
,
0
,
106
,
183
,
107
,
0
,
188
,
0
,
188
,
186
,
188
,
0
,
61
,
186
,
188
,
0
,
188
,
186
,
60
,
0
,
61
,
186
,
60
,
0
,
194
,
0
,
189
,
0
,
101
,
0
,
1
01
,
113
,
0
,
113
,
101
,
0
,
113
,
101
,
113
,
0
,
80
,
0
,
46
,
0
,
207
,
0
,
212
,
0
,
6
,
0
,
45
,
0
,
86
,
0
,
95
,
30
,
104
,
190
,
1
05
,
0
,
191
,
0
,
190
,
109
,
191
,
0
,
102
,
0
,
212
,
18
0
,
1
92
,
0
,
0
,
193
,
0
,
73
,
0
,
15
,
0
,
69
,
0
,
195
,
0
,
196
,
0
,
104
,
210
,
105
,
0
,
195
,
104
,
197
,
105
,
0
,
198
,
0
,
197
,
109
,
198
,
0
,
114
,
199
,
0
,
114
,
112
,
199
,
0
,
212
,
0
,
199
,
1
12
,
212
,
0
,
0
,
201
,
0
,
69
,
0
,
33
,
202
,
0
,
188
,
0
,
173
,
0
,
0
,
104
,
203
,
172
,
0
,
104
,
105
,
0
,
104
,
205
,
105
,
0
,
206
,
0
,
205
,
10
9
,
206
,
0
,
212
,
0
,
212
,
106
,
207
,
107
,
0
,
21
2
,
106
,
171
,
107
,
0
,
207
,
0
,
102
,
0
,
9
,
0
,
10
,
0
,
0
,
209
,
0
,
103
,
0
,
103
,
52
,
0
,
103
,
41
,
0
,
11
,
0
,
12
,
0
,
12
,
0
,
8
,
0
147
,
105
,
0
,
78
,
180
,
68
,
20
6
,
162
,
0
,
79
,
180
,
68
,
20
6
,
162
,
0
,
18
,
0
,
18
,
35
,
25
,
21
0
,
0
,
208
,
104
,
145
,
105
,
0
,
163
,
0
,
56
,
68
,
163
,
0
,
11
,
0
,
11
,
112
,
2
08
,
0
,
209
,
112
,
2
08
,
0
,
11
,
112
,
210
,
0
,
209
,
0
,
209
,
112
,
164
,
0
,
165
,
0
,
164
,
112
,
165
,
0
,
167
,
0
,
167
,
0
,
13
,
0
,
14
,
0
,
210
,
138
,
3
,
1
69
,
0
,
210
,
110
,
169
,
0
,
0
,
104
,
170
,
172
,
0
,
63
,
0
,
45
,
0
,
86
,
0
,
5
,
0
,
7
,
0
,
6
,
0
,
205
,
0
,
171
,
0
,
210
,
0
,
208
,
1
12
,
210
,
0
,
4
,
0
,
172
,
4
,
0
,
24
,
0
,
63
,
0
,
76
,
0
,
174
,
0
,
67
,
81
,
0
,
65
,
51
,
0
,
77
,
0
,
44
,
0
,
36
,
71
,
0
,
26
,
81
,
0
,
91
,
0
,
47
,
0
,
58
,
0
,
40
,
0
,
22
,
81
,
0
,
173
,
0
,
174
,
202
,
0
,
2
3
,
0
,
48
,
0
,
49
,
0
,
50
,
0
,
59
,
0
,
6
4
,
0
,
74
,
0
,
83
,
0
,
85
,
0
,
90
,
0
,
92
,
0
,
9
3
,
0
,
94
,
0
,
66
,
0
,
99
,
0
,
100
,
0
,
97
,
0
,
98
,
0
,
96
,
0
,
0
,
181
,
0
,
182
,
0
,
80
,
106
,
183
,
107
,
0
,
106
,
183
,
107
,
0
,
1
82
,
106
,
183
,
107
,
0
,
184
,
0
,
184
,
109
,
102
,
0
,
184
,
109
,
102
,
109
,
184
,
0
,
185
,
0
,
184
,
1
77
,
185
,
0
,
184
,
178
,
185
,
0
,
185
,
179
,
185
,
0
,
187
,
106
,
183
,
107
,
0
,
106
,
183
,
107
,
0
,
188
,
0
,
188
,
186
,
188
,
0
,
61
,
186
,
188
,
0
,
1
88
,
186
,
60
,
0
,
61
,
186
,
60
,
0
,
194
,
0
,
189
,
0
,
101
,
0
,
101
,
113
,
0
,
113
,
101
,
0
,
113
,
101
,
113
,
0
,
80
,
0
,
46
,
0
,
2
05
,
0
,
210
,
0
,
6
,
0
,
45
,
0
,
86
,
0
,
95
,
3
0
,
1
04
,
190
,
105
,
0
,
191
,
0
,
190
,
109
,
191
,
0
,
102
,
0
,
210
,
180
,
192
,
0
,
0
,
193
,
0
,
73
,
0
,
15
,
0
,
69
,
0
,
195
,
0
,
196
,
0
,
104
,
208
,
105
,
0
,
195
,
104
,
197
,
105
,
0
,
198
,
0
,
1
97
,
109
,
198
,
0
,
114
,
199
,
0
,
114
,
112
,
199
,
0
,
210
,
0
,
199
,
112
,
210
,
0
,
0
,
201
,
0
,
69
,
0
,
33
,
169
,
0
,
104
,
105
,
0
,
104
,
203
,
10
5
,
0
,
204
,
0
,
203
,
109
,
204
,
0
,
210
,
0
,
21
0
,
106
,
205
,
107
,
0
,
210
,
106
,
171
,
107
,
0
,
205
,
0
,
102
,
0
,
9
,
0
,
10
,
0
,
0
,
207
,
0
,
103
,
0
,
103
,
52
,
0
,
103
,
41
,
0
,
11
,
0
,
12
,
0
,
12
,
0
,
8
,
0
};
#endif
...
...
@@ -370,21 +370,21 @@ static const short yyrline[] = { 0,
892
,
897
,
907
,
909
,
912
,
920
,
926
,
935
,
941
,
958
,
960
,
965
,
969
,
974
,
979
,
985
,
989
,
1000
,
1009
,
1018
,
1029
,
1051
,
1055
,
1061
,
1067
,
1073
,
1079
,
1088
,
1097
,
1103
,
1117
,
1141
,
1148
,
1162
,
1171
,
1181
,
1191
,
1
199
,
1220
,
1229
,
123
8
,
1239
,
1241
,
1248
,
1260
,
1270
,
1272
,
1277
,
1281
,
1285
,
12
89
,
1292
,
1297
,
1309
,
1325
,
1336
,
1350
,
1352
,
1353
,
1354
,
13
55
,
1356
,
1357
,
1358
,
1359
,
1360
,
1361
,
1362
,
1368
,
137
0
,
13
71
,
1374
,
1381
,
1393
,
1395
,
1399
,
1403
,
1404
,
1405
,
140
6
,
14
07
,
1411
,
1412
,
1413
,
1414
,
1418
,
1419
,
1426
,
1426
,
1427
,
14
27
,
1428
,
1430
,
1432
,
1437
,
1441
,
1450
,
1454
,
1459
,
1463
,
14
69
,
1479
,
1483
,
1486
,
1489
,
1494
,
1503
,
1511
,
1517
,
1524
,
15
32
,
1540
,
1549
,
1552
,
1557
,
1559
,
1560
,
1561
,
1564
,
156
8
,
15
73
,
1577
,
1588
,
1593
,
1598
,
1605
,
1611
,
1615
,
1620
,
1626
,
163
8
,
1640
,
1643
,
1647
,
1650
,
1655
,
1659
,
1667
,
1682
,
1688
,
16
95
,
1708
,
1720
,
1735
,
1739
,
1756
,
1758
,
1761
,
1765
,
1771
,
17
74
,
1776
,
1776
,
1796
,
1801
,
1806
,
1812
,
1818
,
1826
,
1834
,
18
42
,
1849
,
1859
,
1864
,
1894
,
1896
,
1899
,
1904
,
1908
,
1914
,
19
19
,
1926
,
1933
1117
,
1141
,
1148
,
1162
,
1171
,
1181
,
1191
,
1
201
,
1209
,
1230
,
123
9
,
1248
,
1249
,
1251
,
1258
,
1270
,
1280
,
1288
,
1288
,
1293
,
12
98
,
1303
,
1308
,
1312
,
1316
,
1320
,
1323
,
1328
,
1340
,
1356
,
13
67
,
1381
,
1383
,
1384
,
1385
,
1386
,
1387
,
1388
,
1389
,
139
0
,
13
91
,
1392
,
1393
,
1399
,
1401
,
1402
,
1405
,
1412
,
1424
,
142
6
,
14
30
,
1434
,
1435
,
1436
,
1437
,
1438
,
1442
,
1443
,
1444
,
1445
,
14
49
,
1450
,
1457
,
1457
,
1458
,
1458
,
1459
,
1461
,
1463
,
1468
,
14
72
,
1481
,
1485
,
1490
,
1494
,
1500
,
1510
,
1514
,
1517
,
1520
,
15
25
,
1534
,
1542
,
1548
,
1555
,
1563
,
1571
,
1580
,
1583
,
158
8
,
15
90
,
1591
,
1592
,
1595
,
1599
,
1604
,
1608
,
1619
,
1623
,
1628
,
163
5
,
1641
,
1645
,
1650
,
1656
,
1668
,
1670
,
1673
,
1677
,
1680
,
16
85
,
1689
,
1697
,
1712
,
1718
,
1725
,
1738
,
1750
,
1765
,
1769
,
17
86
,
1791
,
1794
,
1799
,
1821
,
1826
,
1831
,
1837
,
1843
,
1851
,
18
59
,
1867
,
1874
,
1884
,
1889
,
1919
,
1921
,
1924
,
1929
,
1933
,
19
39
,
1944
,
1951
,
1958
};
#endif
...
...
@@ -423,16 +423,15 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"optUnique"
,
"ClassFieldList"
,
"ClassField"
,
"optWithSyntax"
,
"WithSyntax"
,
"@2"
,
"WithSyntaxFormat"
,
"WithSyntaxFormatToken"
,
"ExtensionAndException"
,
"Type"
,
"TypeDeclaration"
,
"ComplexTypeReference"
,
"ComplexTypeReferenceAmpList"
,
"ComplexTypeReferenceElement"
,
"ClassFieldIdentifier"
,
"ClassFieldName"
,
"ValueDefinition"
,
"InlineOrDefinedValue"
,
"@3"
,
"DefinedValue"
,
"Opaque"
,
"BasicTypeId"
,
"BasicTypeId_UniverationCompatible"
,
"BasicType"
,
"BasicString"
,
"Union"
,
"Intersection"
,
"Except"
,
"optConstraints"
,
"Constraints"
,
"SetOfConstraints"
,
"ElementSetSpecs"
,
"ElementSetSpec"
,
"ConstraintSubtypeElement"
,
"ConstraintRangeSpec"
,
"ConstraintSpec"
,
"ConstraintValue"
,
"WithComponents"
,
"WithComponentsList"
,
"WithComponentsElement"
,
"optPresenceConstraint"
,
"PresenceConstraint"
,
"TableConstraint"
,
"SimpleTableConstraint"
,
"ComponentRelationConstraint"
,
"AtNotationList"
,
"AtNotationElement"
,
"ComponentIdList"
,
"optMarker"
,
"Marker"
,
"DefaultValue"
,
"@4"
,
"UniverationDefinition"
,
"UniverationList"
,
"UniverationElement"
,
"SignedNumber"
,
"optTag"
,
"Tag"
,
"TypeRefName"
,
"ObjectClassReference"
,
"Identifier"
,
NULL
"ClassFieldIdentifier"
,
"ClassFieldName"
,
"ValueDefinition"
,
"Value"
,
"@3"
,
"DefinedValue"
,
"Opaque"
,
"BasicTypeId"
,
"BasicTypeId_UniverationCompatible"
,
"BasicType"
,
"BasicString"
,
"Union"
,
"Intersection"
,
"Except"
,
"optConstraints"
,
"Constraints"
,
"SetOfConstraints"
,
"ElementSetSpecs"
,
"ElementSetSpec"
,
"ConstraintSubtypeElement"
,
"ConstraintRangeSpec"
,
"ConstraintSpec"
,
"ConstraintValue"
,
"WithComponents"
,
"WithComponentsList"
,
"WithComponentsElement"
,
"optPresenceConstraint"
,
"PresenceConstraint"
,
"TableConstraint"
,
"SimpleTableConstraint"
,
"ComponentRelationConstraint"
,
"AtNotationList"
,
"AtNotationElement"
,
"ComponentIdList"
,
"optMarker"
,
"Marker"
,
"UniverationDefinition"
,
"UniverationList"
,
"UniverationElement"
,
"SignedNumber"
,
"optTag"
,
"Tag"
,
"TypeRefName"
,
"ObjectClassReference"
,
"Identifier"
,
NULL
};
#endif
...
...
@@ -448,21 +447,21 @@ static const short yyr1[] = { 0,
150
,
151
,
152
,
152
,
153
,
153
,
154
,
154
,
154
,
155
,
155
,
157
,
156
,
158
,
158
,
159
,
159
,
160
,
160
,
160
,
161
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
162
,
163
,
163
,
163
,
163
,
163
,
16
4
,
164
,
16
5
,
166
,
167
,
167
,
168
,
170
,
169
,
169
,
169
,
169
,
169
,
169
,
1
71
,
171
,
172
,
172
,
173
,
173
,
173
,
173
,
17
3
,
173
,
173
,
173
,
173
,
173
,
173
,
173
,
174
,
174
,
17
4
,
175
,
175
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
17
7
,
177
,
178
,
17
8
,
179
,
180
,
180
,
181
,
181
,
182
,
182
,
183
,
183
,
18
3
,
184
,
184
,
184
,
184
,
185
,
185
,
185
,
185
,
185
,
185
,
185
,
185
,
185
,
18
6
,
186
,
186
,
186
,
187
,
187
,
18
8
,
188
,
188
,
188
,
188
,
189
,
190
,
190
,
191
,
191
,
1
92
,
192
,
193
,
193
,
193
,
194
,
194
,
195
,
196
,
197
,
19
7
,
198
,
198
,
199
,
199
,
200
,
200
,
201
,
201
,
202
,
20
2
,
203
,
202
,
204
,
204
,
205
,
205
,
206
,
206
,
206
,
20
6
,
206
,
207
,
207
,
208
,
208
,
209
,
209
,
209
,
210
,
2
10
,
211
,
212
162
,
162
,
162
,
163
,
163
,
163
,
163
,
163
,
16
3
,
164
,
16
4
,
165
,
166
,
167
,
167
,
168
,
169
,
170
,
169
,
169
,
169
,
169
,
1
69
,
169
,
169
,
169
,
169
,
171
,
171
,
172
,
17
2
,
173
,
173
,
173
,
173
,
173
,
173
,
173
,
173
,
173
,
17
3
,
173
,
173
,
174
,
174
,
174
,
175
,
175
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
176
,
17
6
,
176
,
176
,
17
6
,
176
,
177
,
177
,
178
,
178
,
179
,
180
,
180
,
181
,
18
1
,
182
,
182
,
183
,
183
,
183
,
184
,
184
,
184
,
184
,
185
,
185
,
185
,
185
,
18
5
,
185
,
185
,
185
,
185
,
186
,
18
6
,
186
,
186
,
187
,
187
,
188
,
188
,
188
,
188
,
188
,
1
89
,
190
,
190
,
191
,
191
,
192
,
192
,
193
,
193
,
193
,
19
4
,
194
,
195
,
196
,
197
,
197
,
198
,
198
,
199
,
199
,
20
0
,
200
,
201
,
201
,
202
,
202
,
203
,
203
,
204
,
204
,
20
4
,
204
,
204
,
205
,
205
,
206
,
206
,
207
,
207
,
207
,
2
08
,
208
,
209
,
210
};
static
const
short
yyr2
[]
=
{
0
,
...
...
@@ -477,279 +476,271 @@ static const short yyr2[] = { 0,
1
,
5
,
0
,
1
,
1
,
3
,
2
,
4
,
4
,
0
,
1
,
0
,
6
,
1
,
2
,
1
,
1
,
1
,
3
,
3
,
3
,
1
,
1
,
4
,
4
,
4
,
5
,
5
,
1
,
4
,
4
,
1
,
3
,
1
,
3
,
3
,
1
,
3
,
1
,
3
,
1
,
1
,
1
,
1
,
4
,
0
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
1
,
2
,
1
,
1
,
1
,
1
,
2
,
2
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
4
,
1
,
3
,
1
,
3
,
3
,
3
,
1
,
3
,
1
,
3
,
1
,
1
,
1
,
1
,
4
,
3
,
0
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
1
,
2
,
1
,
1
,
1
,
1
,
2
,
2
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
4
,
3
,
4
,
1
,
3
,
5
,
1
,
3
,
3
,
3
,
4
,
3
,
1
,
3
,
3
,
3
,
3
,
1
,
1
,
1
,
2
,
2
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
5
,
1
,
3
,
1
,
3
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
4
,
1
,
3
,
2
,
3
,
1
,
3
,
0
,
1
,
1
,
2
,
1
,
1
,
0
,
3
,
2
,
3
,
1
,
3
,
1
,
4
,
4
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
4
,
3
,
4
,
1
,
3
,
5
,
1
,
3
,
3
,
3
,
4
,
3
,
1
,
3
,
3
,
3
,
3
,
1
,
1
,
1
,
2
,
2
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
5
,
1
,
3
,
1
,
3
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
4
,
1
,
3
,
2
,
3
,
1
,
3
,
0
,
1
,
1
,
2
,
2
,
3
,
1
,
3
,
1
,
4
,
4
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
};
static
const
short
yydefact
[]
=
{
0
,
25
0
,
251
,
1
,
2
,
5
,
3
,
0
,
0
,
6
,
253
,
25
1
,
252
,
1
,
2
,
5
,
3
,
0
,
0
,
6
,
254
,
13
,
8
,
0
,
9
,
11
,
14
,
7
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
16
,
0
,
22
,
20
,
18
,
21
,
19
,
0
,
17
,
12
,
23
,
15
4
,
0
,
0
,
1
55
,
156
,
157
,
0
,
158
,
159
,
167
,
160
,
161
,
162
,
16
3
,
164
,
165
,
166
,
0
,
24
,
25
,
27
,
28
,
31
,
18
,
21
,
19
,
0
,
17
,
12
,
23
,
15
9
,
0
,
0
,
1
60
,
161
,
162
,
0
,
163
,
164
,
172
,
165
,
166
,
167
,
16
8
,
169
,
170
,
171
,
0
,
24
,
25
,
27
,
28
,
31
,
29
,
30
,
34
,
0
,
0
,
32
,
0
,
46
,
0
,
47
,
49
,
50
,
36
,
0
,
37
,
0
,
40
,
42
,
43
,
4
,
26
,
24
5
,
114
,
252
,
0
,
137
,
0
,
0
,
150
,
144
,
1
48
,
149
,
138
,
0
,
0
,
139
,
143
,
147
,
0
,
0
,
52
,
53
,
14
0
,
117
,
0
,
33
,
45
,
44
,
0
,
35
,
38
,
0
,
0
,
0
,
24
7
,
62
,
61
,
0
,
246
,
0
,
15
1
,
146
,
145
,
142
,
141
,
0
,
64
,
0
,
66
,
0
,
0
,
0
,
48
,
5
,
41
,
0
,
2
49
,
248
,
114
,
252
,
109
,
0
,
0
,
17
3
,
173
,
60
,
173
,
112
,
152
,
140
,
102
,
103
,
0
,
115
,
11
6
,
0
,
0
,
0
,
0
,
54
,
12
3
,
124
,
118
,
119
,
121
,
128
,
130
,
129
,
243
,
244
,
126
,
125
,
132
,
131
,
0
,
133
,
39
,
0
,
85
,
245
,
122
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
174
,
175
,
0
,
0
,
1
01
,
0
,
153
,
245
,
245
,
65
,
68
,
67
,
2
03
,
204
,
200
,
0
,
199
,
205
,
0
,
58
,
0
,
0
,
0
,
5
5
,
56
,
59
,
182
,
0
,
188
,
194
,
193
,
216
,
217
,
201
,
202
,
0
,
0
,
0
,
90
,
0
,
0
,
228
,
226
,
226
,
87
,
227
,
0
,
0
,
98
,
0
,
78
,
81
,
245
,
113
,
0
,
0
,
0
,
73
,
77
,
245
,
0
,
179
,
245
,
0
,
0
,
245
,
242
,
234
,
0
,
236
,
241
,
238
,
0
,
69
,
71
,
72
,
63
,
195
,
0
,
0
,
0
,
0
,
0
,
51
,
0
,
170
,
171
,
168
,
169
,
0
,
0
,
172
,
0
,
0
,
0
,
0
,
120
,
135
,
127
,
134
,
0
,
82
,
91
,
86
,
232
,
231
,
230
,
229
,
83
,
83
,
110
,
0
,
104
,
0
,
80
,
0
,
245
,
105
,
0
,
226
,
177
,
0
,
0
,
0
,
106
,
0
,
235
,
0
,
0
,
111
,
245
,
196
,
1
97
,
192
,
190
,
0
,
218
,
187
,
57
,
183
,
184
,
185
,
0
,
191
,
189
,
0
,
0
,
220
,
136
,
0
,
0
,
84
,
88
,
89
,
99
,
100
,
79
,
176
,
76
,
74
,
75
,
180
,
107
,
178
,
108
,
237
,
0
,
0
,
70
,
198
,
209
,
0
,
20
7
,
173
,
186
,
0
,
222
,
224
,
219
,
0
,
92
,
233
,
0
,
240
,
239
,
206
,
0
,
211
,
223
,
0
,
221
,
0
,
181
,
208
,
214
,
215
,
213
,
210
,
212
,
225
,
96
,
0
,
94
,
97
,
93
,
95
,
0
,
0
,
0
26
,
24
6
,
114
,
253
,
0
,
142
,
0
,
0
,
155
,
149
,
1
53
,
154
,
143
,
0
,
0
,
144
,
148
,
152
,
0
,
0
,
52
,
53
,
14
5
,
118
,
0
,
33
,
45
,
44
,
0
,
35
,
38
,
0
,
0
,
0
,
24
8
,
62
,
61
,
0
,
247
,
0
,
15
6
,
151
,
150
,
147
,
146
,
0
,
64
,
0
,
66
,
0
,
0
,
0
,
48
,
5
,
41
,
0
,
2
50
,
249
,
114
,
253
,
109
,
0
,
0
,
17
8
,
178
,
60
,
178
,
112
,
157
,
145
,
102
,
103
,
0
,
115
,
11
7
,
0
,
0
,
0
,
0
,
54
,
12
4
,
125
,
119
,
120
,
122
,
116
,
133
,
135
,
134
,
244
,
245
,
131
,
130
,
132
,
128
,
126
,
137
,
136
,
0
,
138
,
39
,
0
,
85
,
246
,
123
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
79
,
180
,
0
,
0
,
101
,
0
,
158
,
246
,
2
46
,
65
,
68
,
67
,
208
,
209
,
205
,
0
,
204
,
21
0
,
0
,
5
8
,
0
,
0
,
0
,
55
,
56
,
59
,
187
,
0
,
193
,
199
,
198
,
221
,
222
,
206
,
207
,
0
,
0
,
0
,
0
,
90
,
0
,
0
,
233
,
231
,
231
,
87
,
232
,
0
,
0
,
98
,
0
,
78
,
81
,
246
,
113
,
0
,
0
,
0
,
73
,
77
,
246
,
0
,
184
,
246
,
0
,
0
,
246
,
243
,
235
,
0
,
237
,
242
,
239
,
0
,
69
,
71
,
72
,
63
,
200
,
0
,
0
,
0
,
0
,
0
,
51
,
0
,
175
,
176
,
173
,
174
,
0
,
0
,
177
,
0
,
0
,
0
,
0
,
121
,
140
,
129
,
139
,
127
,
0
,
82
,
91
,
86
,
234
,
83
,
83
,
110
,
0
,
104
,
0
,
80
,
0
,
246
,
105
,
0
,
231
,
182
,
0
,
0
,
0
,
106
,
0
,
236
,
0
,
0
,
1
11
,
246
,
201
,
202
,
197
,
195
,
0
,
223
,
192
,
57
,
188
,
189
,
190
,
0
,
196
,
194
,
0
,
0
,
225
,
141
,
0
,
84
,
88
,
89
,
99
,
100
,
138
,
79
,
181
,
76
,
74
,
75
,
185
,
107
,
183
,
108
,
238
,
0
,
0
,
7
0
,
20
3
,
214
,
0
,
212
,
178
,
191
,
0
,
227
,
229
,
224
,
0
,
92
,
0
,
241
,
240
,
211
,
0
,
216
,
228
,
0
,
226
,
0
,
186
,
213
,
219
,
220
,
218
,
215
,
217
,
23
0
,
9
6
,
0
,
9
4
,
97
,
93
,
95
,
0
,
0
,
0
};
static
const
short
yydefgoto
[]
=
{
39
5
,
static
const
short
yydefgoto
[]
=
{
39
7
,
3
,
4
,
8
,
9
,
13
,
14
,
25
,
26
,
27
,
55
,
56
,
57
,
106
,
58
,
74
,
75
,
76
,
77
,
59
,
69
,
70
,
60
,
100
,
21
1
,
212
,
213
,
61
,
126
,
127
,
261
,
26
2
,
245
,
246
,
238
,
239
,
116
,
341
,
178
,
179
,
290
,
29
1
,
380
,
390
,
391
,
247
,
263
,
147
,
148
,
163
,
164
,
18
0
,
181
,
62
,
172
,
225
,
173
,
287
,
149
,
103
,
151
,
152
,
2
78
,
279
,
281
,
188
,
189
,
190
,
249
,
250
,
215
,
2
68
,
216
,
217
,
218
,
360
,
361
,
386
,
387
,
219
,
220
,
22
1
,
335
,
336
,
365
,
233
,
234
,
296
,
339
,
195
,
257
,
2
58
,
222
,
235
,
119
,
153
,
104
,
223
70
,
60
,
100
,
21
5
,
216
,
217
,
61
,
126
,
127
,
266
,
26
7
,
250
,
251
,
243
,
244
,
116
,
343
,
182
,
183
,
296
,
29
7
,
382
,
392
,
393
,
252
,
268
,
147
,
148
,
163
,
164
,
18
4
,
185
,
62
,
176
,
229
,
177
,
292
,
149
,
103
,
151
,
152
,
2
83
,
284
,
286
,
192
,
193
,
194
,
254
,
255
,
219
,
2
73
,
220
,
221
,
222
,
363
,
364
,
388
,
389
,
223
,
224
,
22
5
,
338
,
339
,
368
,
238
,
239
,
199
,
262
,
263
,
226
,
2
40
,
119
,
179
,
104
,
227
};
static
const
short
yypact
[]
=
{
254
,
-
32768
,
-
32768
,
254
,
-
32768
,
-
79
,
-
32768
,
13
,
7
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
35
,
-
32768
,
-
51
,
202
,
-
32768
,
-
32768
,
61
,
20
,
11
,
19
,
57
,
44
,
90
,
202
,
-
32768
,
23
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
115
,
-
32768
,
-
32768
,
351
,
-
32768
,
176
,
12
,
-
32768
,
-
32768
,
-
32768
,
174
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
151
,
351
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
220
,
565
,
-
32768
,
99
,
-
32768
,
199
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
24
,
-
32768
,
-
20
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
9
,
106
,
-
32768
,
140
,
-
32768
,
145
,
163
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
186
,
182
,
-
32768
,
-
32768
,
-
32768
,
582
,
249
,
-
32768
,
-
32768
,
-
32768
,
1
43
,
278
,
-
32768
,
-
32768
,
-
32768
,
22
8
,
-
32768
,
-
32768
,
254
,
228
,
180
,
129
,
-
32768
,
-
32768
,
428
,
-
32768
,
22
8
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
101
,
-
32768
,
147
,
191
,
19
5
,
300
,
74
,
-
32768
,
-
79
,
-
32768
,
300
,
-
32768
,
-
32768
,
105
,
214
,
2
85
,
217
,
255
,
89
,
124
,
-
32768
,
-
40
,
-
32768
,
-
32768
,
218
,
-
32768
,
-
32768
,
2
21
,
-
32768
,
-
32768
,
328
,
582
,
324
,
324
,
51
,
-
32768
,
-
32768
,
2
2
2
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
223
,
-
32768
,
-
32768
,
142
,
-
32768
,
40
,
-
32768
,
308
,
37
,
304
,
230
,
48
,
155
,
269
,
-
32768
,
2
32
,
48
,
271
,
-
32768
,
42
,
-
32768
,
26
,
237
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
26
,
-
32768
,
-
32768
,
311
,
-
32768
,
254
,
155
,
238
,
236
,
-
32768
,
206
,
251
,
242
,
-
26
,
-
32768
,
-
32768
,
245
,
-
32768
,
-
32768
,
-
32768
,
300
,
346
,
324
,
256
,
300
,
320
,
-
32768
,
5
,
5
,
-
32768
,
-
32768
,
505
,
324
,
241
,
144
,
-
32768
,
-
32768
,
237
,
-
32768
,
155
,
286
,
153
,
-
32768
,
-
32768
,
237
,
246
,
17
1
,
237
,
155
,
167
,
237
,
-
32768
,
-
32768
,
168
,
-
32768
,
-
32768
,
252
,
170
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
248
,
265
,
82
,
266
,
250
,
26
2
,
-
32768
,
51
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
155
,
155
,
-
32768
,
155
,
155
,
188
,
258
,
-
32768
,
-
32768
,
369
,
-
32768
,
293
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
288
,
288
,
-
32768
,
280
,
-
32768
,
37
,
-
32768
,
270
,
237
,
-
32768
,
48
,
5
,
-
32768
,
277
,
505
,
273
,
-
32768
,
505
,
-
32768
,
54
,
280
,
-
32768
,
26
,
-
32768
,
268
,
-
32768
,
-
32768
,
60
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
275
,
-
32768
,
-
32768
,
9
,
177
,
-
32768
,
-
32768
,
282
,
346
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
279
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
283
,
284
,
-
32768
,
-
32768
,
-
32768
,
189
,
-
32768
,
-
40
,
-
32768
,
324
,
272
,
-
32768
,
-
32768
,
258
,
-
32768
,
369
,
155
,
-
32768
,
-
32768
,
-
32768
,
60
,
85
,
272
,
324
,
-
32768
,
94
,
206
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
14
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
392
,
394
,
-
32768
static
const
short
yypact
[]
=
{
42
,
-
32768
,
-
32768
,
42
,
-
32768
,
-
6
,
-
32768
,
72
,
111
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
74
,
-
32768
,
-
1
,
162
,
-
32768
,
-
32768
,
138
,
99
,
83
,
91
,
123
,
97
,
222
,
162
,
-
32768
,
121
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
209
,
-
32768
,
-
32768
,
313
,
-
32768
,
219
,
33
,
-
32768
,
-
32768
,
-
32768
,
96
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
210
,
313
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
12
,
527
,
-
32768
,
185
,
-
32768
,
-
18
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
49
,
-
32768
,
-
25
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
3
,
145
,
-
32768
,
186
,
-
32768
,
202
,
229
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
250
,
223
,
-
32768
,
-
32768
,
-
32768
,
544
,
302
,
-
32768
,
-
32768
,
-
32768
,
1
94
,
311
,
-
32768
,
-
32768
,
-
32768
,
15
8
,
-
32768
,
-
32768
,
42
,
158
,
214
,
102
,
-
32768
,
-
32768
,
390
,
-
32768
,
15
8
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
87
,
-
32768
,
213
,
216
,
22
5
,
297
,
254
,
-
32768
,
-
6
,
-
32768
,
124
,
-
32768
,
-
32768
,
-
57
,
231
,
2
92
,
233
,
270
,
-
12
,
149
,
-
32768
,
-
37
,
-
32768
,
-
32768
,
235
,
-
32768
,
-
32768
,
2
37
,
-
32768
,
-
32768
,
339
,
544
,
335
,
335
,
152
,
-
32768
,
-
32768
,
2
3
2
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
238
,
236
,
-
32768
,
90
,
-
32768
,
176
,
-
32768
,
320
,
8
,
207
,
241
,
32
,
140
,
281
,
-
32768
,
246
,
32
,
285
,
-
32768
,
63
,
-
32768
,
20
,
251
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
16
,
-
32768
,
-
32768
,
326
,
-
32768
,
42
,
140
,
252
,
255
,
-
32768
,
234
,
263
,
259
,
-
16
,
-
32768
,
-
32768
,
264
,
-
32768
,
-
32768
,
-
32768
,
124
,
362
,
335
,
254
,
274
,
124
,
254
,
-
32768
,
18
,
18
,
-
32768
,
-
32768
,
467
,
335
,
260
,
101
,
-
32768
,
-
32768
,
251
,
-
32768
,
140
,
306
,
13
1
,
-
32768
,
-
32768
,
251
,
268
,
177
,
251
,
140
,
132
,
251
,
-
32768
,
-
32768
,
134
,
-
32768
,
-
32768
,
272
,
164
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
26
7
,
275
,
242
,
277
,
278
,
279
,
-
32768
,
152
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
140
,
140
,
-
32768
,
140
,
140
,
262
,
271
,
-
32768
,
-
32768
,
378
,
-
32768
,
-
32768
,
307
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
296
,
296
,
-
32768
,
280
,
-
32768
,
8
,
-
32768
,
283
,
251
,
-
32768
,
32
,
18
,
-
32768
,
286
,
467
,
284
,
-
32768
,
467
,
-
32768
,
10
,
280
,
-
32768
,
20
,
-
32768
,
282
,
-
32768
,
-
32768
,
27
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
287
,
-
32768
,
-
32768
,
5
,
173
,
-
32768
,
-
32768
,
288
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
290
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
293
,
303
,
-
32768
,
-
32768
,
-
32768
,
175
,
-
32768
,
-
37
,
-
32768
,
335
,
299
,
-
32768
,
-
32768
,
271
,
-
32768
,
140
,
-
32768
,
-
32768
,
-
32768
,
27
,
71
,
299
,
335
,
-
32768
,
159
,
234
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
13
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
393
,
397
,
-
32768
};
static
const
short
yypgoto
[]
=
{
-
32768
,
-
32768
,
395
,
261
,
-
32768
,
-
32768
,
389
,
-
32768
,
-
32768
,
377
,
-
32768
,
-
32768
,
3
48
,
-
32768
,
-
32768
,
-
32768
,
333
,
-
32768
,
295
,
-
32768
,
-
32768
,
3
03
,
-
32768
,
344
,
-
32768
,
-
32768
,
141
,
-
32768
,
-
32768
,
259
,
-
32768
,
10
0
,
227
,
113
,
-
32768
,
111
,
-
32768
,
123
,
-
32768
,
194
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
33
,
-
169
,
-
81
,
-
173
,
-
49
,
-
32768
,
203
,
-
1
77
,
-
100
,
-
32768
,
-
32768
,
-
32768
,
-
252
,
87
,
-
52
,
-
109
,
-
32768
,
67
,
-
32768
,
-
32768
,
-
32768
,
-
137
,
-
32768
,
-
32768
,
-
44
,
-
156
,
-
107
,
2
11
,
-
32768
,
-
56
,
-
32768
,
-
32768
,
5
5
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
63
,
65
,
-
160
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
116
,
-
125
,
-
71
,
-
32768
,
2
,
-
32768
,
-
7
-
32768
,
401
,
289
,
-
32768
,
-
32768
,
396
,
-
32768
,
-
32768
,
389
,
-
32768
,
-
32768
,
3
63
,
-
32768
,
-
32768
,
-
32768
,
344
,
-
32768
,
308
,
-
32768
,
-
32768
,
3
15
,
-
32768
,
355
,
-
32768
,
-
32768
,
144
,
-
32768
,
-
32768
,
276
,
-
32768
,
10
3
,
240
,
117
,
-
32768
,
126
,
-
32768
,
127
,
-
32768
,
196
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
40
,
-
173
,
-
75
,
-
218
,
-
53
,
-
32768
,
208
,
-
1
80
,
-
109
,
-
32768
,
-
23
,
-
32768
,
-
167
,
-
32768
,
-
33
,
-
110
,
-
32768
,
37
,
-
32768
,
-
32768
,
-
32768
,
-
144
,
-
32768
,
-
32768
,
-
93
,
-
151
,
11
,
2
20
,
-
32768
,
-
210
,
-
32768
,
-
32768
,
6
5
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
73
,
76
,
-
172
,
-
32768
,
-
32768
,
-
32768
,
128
,
-
103
,
-
72
,
-
32768
,
2
,
-
32768
,
-
7
};
#define YYLAST 6
73
#define YYLAST 6
35
static
const
short
yytable
[]
=
{
15
,
117
,
5
,
232
,
214
,
5
,
15
,
174
,
192
,
150
,
193
,
118
,
102
,
102
,
240
,
101
,
101
,
10
,
389
,
114
,
10
,
10
,
11
,
1
,
2
,
7
,
112
,
161
,
162
,
67
,
65
,
165
,
10
,
72
,
10
,
1
,
2
,
79
,
229
,
64
,
185
,
16
,
71
,
10
,
11
,
10
,
78
,
128
,
343
,
65
,
10
,
169
,
170
,
161
,
162
,
19
,
10
,
201
,
64
,
10
,
169
,
170
,
10
,
169
,
170
,
355
,
187
,
79
,
10
,
259
,
28
,
297
,
298
,
229
,
230
,
266
,
78
,
29
,
244
,
166
,
167
,
168
,
10
,
169
,
170
,
1
,
2
,
267
,
201
,
113
,
10
,
169
,
170
,
34
,
115
,
30
,
202
,
203
,
389
,
231
,
383
,
129
,
72
,
31
,
63
,
128
,
79
,
161
,
162
,
230
,
32
,
71
,
204
,
155
,
134
,
78
,
265
,
214
,
12
,
393
,
68
,
364
,
154
,
63
,
165
,
176
,
150
,
202
,
33
,
115
,
36
,
205
,
110
,
240
,
175
,
242
,
37
,
206
,
351
,
237
,
17
,
353
,
322
,
115
,
255
,
-
226
,
207
,
256
,
349
,
-
226
,
237
,
199
,
200
,
208
,
384
,
209
,
255
,
210
,
385
,
129
,
303
,
201
,
359
,
10
,
169
,
170
,
271
,
308
,
206
,
185
,
137
,
328
,
329
,
295
,
330
,
344
,
241
,
294
,
171
,
248
,
311
,
138
,
10
,
314
,
248
,
1
,
2
,
260
,
66
,
264
,
80
,
259
,
356
,
186
,
201
,
187
,
10
,
169
,
170
,
304
,
202
,
203
,
150
,
392
,
185
,
150
,
156
,
107
,
312
,
-
250
,
157
,
270
,
323
,
392
,
20
,
381
,
204
,
120
,
120
,
288
,
73
,
121
,
21
,
82
,
347
,
376
,
122
,
333
,
191
,
299
,
187
,
83
,
84
,
202
,
123
,
205
,
10
,
124
,
331
,
1
,
2
,
206
,
85
,
22
,
86
,
23
,
87
,
227
,
332
,
301
,
207
,
228
,
130
,
302
,
24
,
131
,
88
,
158
,
306
,
209
,
89
,
210
,
307
,
125
,
90
,
1
,
2
,
91
,
274
,
275
,
276
,
277
,
313
,
315
,
206
,
318
,
307
,
316
,
92
,
319
,
310
,
132
,
367
,
93
,
136
,
94
,
368
,
95
,
10
,
169
,
170
,
1
,
2
,
176
,
374
,
241
,
96
,
97
,
375
,
160
,
248
,
159
,
175
,
274
,
275
,
276
,
277
,
108
,
109
,
260
,
176
,
98
,
264
,
161
,
162
,
83
,
84
,
362
,
-
251
,
175
,
182
,
183
,
194
,
184
,
99
,
196
,
201
,
366
,
10
,
169
,
170
,
197
,
10
,
236
,
224
,
226
,
243
,
251
,
252
,
254
,
115
,
269
,
85
,
272
,
86
,
273
,
87
,
280
,
282
,
284
,
286
,
289
,
300
,
309
,
305
,
325
,
88
,
366
,
317
,
10
,
89
,
320
,
1
,
2
,
90
,
202
,
321
,
91
,
362
,
326
,
324
,
388
,
334
,
337
,
38
,
338
,
340
,
346
,
92
,
350
,
352
,
358
,
363
,
93
,
378
,
94
,
369
,
95
,
371
,
39
,
372
,
373
,
396
,
40
,
397
,
177
,
96
,
97
,
6
,
41
,
42
,
43
,
18
,
35
,
81
,
44
,
206
,
111
,
135
,
105
,
45
,
98
,
133
,
345
,
327
,
46
,
198
,
47
,
253
,
357
,
348
,
342
,
292
,
394
,
293
,
48
,
370
,
285
,
283
,
377
,
382
,
379
,
354
,
0
,
49
,
0
,
50
,
0
,
0
,
139
,
140
,
51
,
0
,
52
,
53
,
54
,
141
,
0
,
0
,
0
,
85
,
38
,
86
,
0
,
87
,
142
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
88
,
0
,
0
,
0
,
89
,
0
,
0
,
0
,
90
,
0
,
0
,
91
,
41
,
42
,
43
,
0
,
0
,
0
,
0
,
0
,
143
,
0
,
92
,
45
,
0
,
0
,
0
,
93
,
46
,
94
,
47
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
48
,
0
,
96
,
97
,
144
,
145
,
0
,
0
,
0
,
49
,
0
,
50
,
0
,
146
,
139
,
140
,
51
,
98
,
52
,
53
,
54
,
141
,
0
,
0
,
0
,
85
,
38
,
86
,
0
,
87
,
142
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
88
,
0
,
0
,
0
,
89
,
0
,
0
,
0
,
90
,
0
,
0
,
91
,
41
,
42
,
43
,
0
,
0
,
0
,
0
,
0
,
143
,
0
,
92
,
45
,
0
,
0
,
0
,
93
,
46
,
94
,
47
,
95
,
0
,
0
,
0
,
83
,
84
,
0
,
48
,
0
,
96
,
97
,
144
,
145
,
0
,
0
,
85
,
49
,
86
,
50
,
87
,
0
,
1
,
2
,
51
,
98
,
52
,
53
,
54
,
0
,
88
,
0
,
0
,
85
,
89
,
86
,
0
,
87
,
90
,
0
,
0
,
91
,
0
,
0
,
0
,
0
,
0
,
88
,
0
,
0
,
0
,
89
,
92
,
0
,
0
,
90
,
0
,
93
,
91
,
94
,
0
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
92
,
96
,
97
,
0
,
0
,
93
,
0
,
94
,
0
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
98
,
0
,
96
,
97
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
98
196
,
5
,
197
,
237
,
5
,
15
,
117
,
150
,
218
,
118
,
101
,
101
,
10
,
245
,
82
,
10
,
391
,
10
,
170
,
171
,
112
,
165
,
83
,
84
,
114
,
161
,
162
,
10
,
178
,
65
,
102
,
102
,
72
,
85
,
10
,
86
,
79
,
87
,
64
,
10
,
10
,
71
,
189
,
1
,
2
,
78
,
-
251
,
88
,
65
,
67
,
234
,
89
,
1
,
2
,
120
,
90
,
10
,
64
,
91
,
1
,
2
,
249
,
326
,
300
,
301
,
128
,
79
,
189
,
191
,
92
,
10
,
170
,
171
,
63
,
93
,
78
,
94
,
336
,
95
,
10
,
11
,
10
,
11
,
113
,
271
,
385
,
235
,
96
,
97
,
108
,
109
,
190
,
63
,
191
,
264
,
354
,
272
,
7
,
356
,
115
,
129
,
72
,
98
,
10
,
19
,
79
,
1
,
2
,
236
,
242
,
71
,
260
,
155
,
134
,
78
,
99
,
367
,
395
,
165
,
153
,
276
,
154
,
115
,
128
,
180
,
270
,
218
,
178
,
362
,
150
,
178
,
245
,
166
,
242
,
247
,
345
,
161
,
162
,
352
,
386
,
68
,
73
,
137
,
387
,
16
,
205
,
28
,
10
,
170
,
171
,
203
,
204
,
358
,
138
,
307
,
29
,
110
,
205
,
129
,
10
,
170
,
171
,
391
,
315
,
260
,
10
,
30
,
261
,
1
,
2
,
306
,
161
,
162
,
20
,
31
,
32
,
12
,
311
,
17
,
246
,
33
,
21
,
253
,
314
,
206
,
207
,
317
,
253
,
161
,
162
,
265
,
156
,
269
,
334
,
232
,
157
,
206
,
207
,
233
,
346
,
208
,
394
,
22
,
150
,
23
,
304
,
150
,
294
,
234
,
305
,
299
,
394
,
208
,
24
,
275
,
264
,
359
,
83
,
84
,
209
,
378
,
383
,
293
,
180
,
34
,
210
,
180
,
36
,
189
,
37
,
66
,
209
,
350
,
302
,
211
,
309
,
316
,
210
,
318
,
310
,
310
,
153
,
319
,
213
,
235
,
214
,
211
,
205
,
80
,
10
,
170
,
171
,
195
,
212
,
191
,
213
,
120
,
214
,
167
,
168
,
169
,
10
,
170
,
171
,
1
,
2
,
121
,
205
,
321
,
10
,
170
,
171
,
322
,
279
,
280
,
281
,
282
,
370
,
115
,
376
,
-
231
,
371
,
122
,
377
,
-
231
,
313
,
206
,
10
,
170
,
171
,
1
,
2
,
107
,
331
,
332
,
347
,
333
,
246
,
172
,
123
,
124
,
325
,
253
,
125
,
130
,
131
,
206
,
1
,
2
,
161
,
162
,
265
,
347
,
132
,
269
,
153
,
173
,
136
,
153
,
365
,
10
,
335
,
158
,
1
,
2
,
159
,
186
,
210
,
160
,
369
,
279
,
280
,
281
,
282
,
-
252
,
38
,
187
,
188
,
198
,
174
,
200
,
201
,
10
,
228
,
241
,
231
,
248
,
210
,
256
,
230
,
39
,
257
,
259
,
115
,
40
,
274
,
277
,
175
,
285
,
369
,
41
,
42
,
43
,
278
,
287
,
291
,
44
,
289
,
295
,
365
,
303
,
45
,
390
,
308
,
312
,
324
,
46
,
320
,
47
,
323
,
327
,
340
,
328
,
342
,
337
,
329
,
48
,
353
,
341
,
349
,
355
,
372
,
398
,
366
,
361
,
49
,
399
,
50
,
373
,
374
,
139
,
140
,
51
,
6
,
52
,
53
,
54
,
141
,
18
,
375
,
380
,
85
,
38
,
86
,
35
,
87
,
142
,
111
,
81
,
105
,
135
,
330
,
181
,
133
,
360
,
88
,
351
,
344
,
298
,
89
,
348
,
396
,
202
,
90
,
258
,
290
,
91
,
41
,
42
,
43
,
288
,
384
,
379
,
381
,
0
,
143
,
357
,
92
,
45
,
0
,
0
,
0
,
93
,
46
,
94
,
47
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
48
,
0
,
96
,
97
,
144
,
145
,
0
,
0
,
0
,
49
,
0
,
50
,
0
,
146
,
139
,
140
,
51
,
98
,
52
,
53
,
54
,
141
,
0
,
0
,
0
,
85
,
38
,
86
,
0
,
87
,
142
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
88
,
0
,
0
,
0
,
89
,
0
,
0
,
0
,
90
,
0
,
0
,
91
,
41
,
42
,
43
,
0
,
0
,
0
,
0
,
0
,
143
,
0
,
92
,
45
,
0
,
0
,
0
,
93
,
46
,
94
,
47
,
95
,
0
,
0
,
0
,
83
,
84
,
0
,
48
,
0
,
96
,
97
,
144
,
145
,
0
,
0
,
85
,
49
,
86
,
50
,
87
,
0
,
1
,
2
,
51
,
98
,
52
,
53
,
54
,
0
,
88
,
0
,
0
,
85
,
89
,
86
,
0
,
87
,
90
,
0
,
0
,
91
,
0
,
0
,
0
,
0
,
0
,
88
,
0
,
0
,
0
,
89
,
92
,
0
,
0
,
90
,
0
,
93
,
91
,
94
,
0
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
92
,
96
,
97
,
0
,
0
,
93
,
0
,
94
,
0
,
95
,
0
,
0
,
0
,
0
,
0
,
0
,
98
,
0
,
96
,
97
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
98
};
static
const
short
yycheck
[]
=
{
7
,
82
,
0
,
180
,
160
,
3
,
13
,
132
,
145
,
118
,
147
,
82
,
64
,
65
,
183
,
64
,
65
,
8
,
4
,
28
,
8
,
8
,
9
,
11
,
12
,
104
,
46
,
13
,
14
,
17
,
37
,
131
,
8
,
40
,
8
,
11
,
12
,
44
,
33
,
37
,
80
,
34
,
40
,
8
,
9
,
8
,
44
,
99
,
300
,
56
,
8
,
9
,
10
,
13
,
14
,
106
,
8
,
6
,
56
,
8
,
9
,
10
,
8
,
9
,
10
,
317
,
106
,
74
,
8
,
194
,
9
,
231
,
232
,
33
,
69
,
101
,
74
,
57
,
30
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
113
,
6
,
109
,
8
,
9
,
10
,
3
,
103
,
84
,
45
,
46
,
4
,
180
,
15
,
99
,
109
,
84
,
37
,
157
,
113
,
13
,
14
,
69
,
53
,
109
,
61
,
120
,
112
,
113
,
197
,
273
,
105
,
105
,
108
,
112
,
120
,
56
,
224
,
132
,
235
,
45
,
84
,
103
,
107
,
80
,
108
,
302
,
132
,
184
,
21
,
86
,
311
,
102
,
105
,
314
,
60
,
103
,
102
,
105
,
95
,
105
,
308
,
109
,
102
,
158
,
159
,
102
,
69
,
104
,
102
,
106
,
73
,
157
,
241
,
6
,
102
,
8
,
9
,
10
,
210
,
248
,
86
,
80
,
41
,
278
,
279
,
229
,
281
,
300
,
183
,
229
,
104
,
186
,
251
,
52
,
8
,
254
,
191
,
11
,
12
,
194
,
12
,
196
,
39
,
316
,
317
,
104
,
6
,
106
,
8
,
9
,
10
,
243
,
45
,
46
,
311
,
380
,
80
,
314
,
105
,
108
,
252
,
104
,
109
,
209
,
268
,
390
,
12
,
371
,
61
,
112
,
112
,
226
,
46
,
81
,
20
,
3
,
305
,
362
,
81
,
283
,
104
,
236
,
106
,
11
,
12
,
45
,
71
,
80
,
8
,
51
,
282
,
11
,
12
,
86
,
22
,
41
,
24
,
43
,
26
,
105
,
60
,
105
,
95
,
109
,
3
,
109
,
52
,
112
,
36
,
110
,
105
,
104
,
40
,
106
,
109
,
81
,
44
,
11
,
12
,
47
,
97
,
98
,
99
,
100
,
105
,
105
,
86
,
105
,
109
,
109
,
58
,
109
,
109
,
3
,
105
,
63
,
104
,
65
,
109
,
67
,
8
,
9
,
10
,
11
,
12
,
300
,
105
,
302
,
76
,
77
,
109
,
104
,
307
,
110
,
300
,
97
,
98
,
99
,
100
,
108
,
109
,
316
,
317
,
91
,
319
,
13
,
14
,
11
,
12
,
324
,
104
,
317
,
35
,
104
,
104
,
68
,
104
,
104
,
6
,
334
,
8
,
9
,
10
,
3
,
8
,
25
,
112
,
112
,
106
,
68
,
106
,
68
,
103
,
30
,
22
,
105
,
24
,
109
,
26
,
96
,
106
,
104
,
4
,
95
,
111
,
107
,
68
,
105
,
36
,
364
,
106
,
8
,
40
,
113
,
11
,
12
,
44
,
45
,
101
,
47
,
375
,
107
,
104
,
378
,
114
,
4
,
23
,
82
,
88
,
107
,
58
,
102
,
107
,
113
,
107
,
63
,
112
,
65
,
104
,
67
,
109
,
38
,
107
,
107
,
0
,
42
,
0
,
134
,
76
,
77
,
3
,
48
,
49
,
50
,
13
,
26
,
56
,
54
,
86
,
74
,
113
,
65
,
59
,
91
,
109
,
302
,
273
,
64
,
157
,
66
,
191
,
319
,
307
,
298
,
228
,
390
,
104
,
74
,
339
,
224
,
217
,
364
,
375
,
368
,
316
,
-
1
,
83
,
-
1
,
85
,
-
1
,
-
1
,
11
,
12
,
90
,
-
1
,
92
,
93
,
94
,
18
,
-
1
,
-
1
,
-
1
,
22
,
23
,
24
,
-
1
,
26
,
27
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
36
,
-
1
,
-
1
,
-
1
,
40
,
-
1
,
-
1
,
-
1
,
44
,
-
1
,
-
1
,
47
,
48
,
49
,
50
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
56
,
-
1
,
58
,
59
,
-
1
,
-
1
,
-
1
,
63
,
64
,
65
,
66
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
74
,
-
1
,
76
,
77
,
78
,
79
,
-
1
,
-
1
,
-
1
,
83
,
-
1
,
85
,
-
1
,
87
,
11
,
12
,
90
,
91
,
92
,
93
,
94
,
18
,
-
1
,
-
1
,
-
1
,
22
,
23
,
24
,
-
1
,
26
,
27
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
36
,
-
1
,
-
1
,
-
1
,
40
,
-
1
,
-
1
,
-
1
,
44
,
-
1
,
-
1
,
47
,
48
,
49
,
50
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
56
,
-
1
,
58
,
59
,
-
1
,
-
1
,
-
1
,
63
,
64
,
65
,
66
,
67
,
-
1
,
-
1
,
-
1
,
11
,
12
,
-
1
,
74
,
-
1
,
76
,
77
,
78
,
79
,
-
1
,
-
1
,
22
,
83
,
24
,
85
,
26
,
-
1
,
11
,
12
,
90
,
91
,
92
,
93
,
94
,
-
1
,
36
,
-
1
,
-
1
,
22
,
40
,
24
,
-
1
,
26
,
44
,
-
1
,
-
1
,
47
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
36
,
-
1
,
-
1
,
-
1
,
40
,
58
,
-
1
,
-
1
,
44
,
-
1
,
63
,
47
,
65
,
-
1
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
58
,
76
,
77
,
-
1
,
-
1
,
63
,
-
1
,
65
,
-
1
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
91
,
-
1
,
76
,
77
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
91
145
,
0
,
147
,
184
,
3
,
13
,
82
,
118
,
160
,
82
,
64
,
65
,
8
,
187
,
3
,
8
,
4
,
8
,
9
,
10
,
46
,
131
,
11
,
12
,
28
,
13
,
14
,
8
,
132
,
37
,
64
,
65
,
40
,
22
,
8
,
24
,
44
,
26
,
37
,
8
,
8
,
40
,
80
,
11
,
12
,
44
,
104
,
36
,
56
,
17
,
33
,
40
,
11
,
12
,
112
,
44
,
8
,
56
,
47
,
11
,
12
,
30
,
273
,
236
,
237
,
99
,
74
,
80
,
106
,
58
,
8
,
9
,
10
,
37
,
63
,
74
,
65
,
288
,
67
,
8
,
9
,
8
,
9
,
109
,
101
,
15
,
69
,
76
,
77
,
108
,
109
,
104
,
56
,
106
,
198
,
314
,
113
,
104
,
317
,
103
,
99
,
109
,
91
,
8
,
106
,
113
,
11
,
12
,
184
,
102
,
109
,
102
,
120
,
112
,
113
,
104
,
112
,
105
,
228
,
118
,
214
,
120
,
103
,
157
,
132
,
201
,
278
,
231
,
102
,
240
,
234
,
305
,
131
,
102
,
188
,
303
,
13
,
14
,
311
,
69
,
108
,
46
,
41
,
73
,
34
,
6
,
9
,
8
,
9
,
10
,
158
,
159
,
320
,
52
,
248
,
57
,
108
,
6
,
157
,
8
,
9
,
10
,
4
,
257
,
102
,
8
,
84
,
105
,
11
,
12
,
246
,
13
,
14
,
12
,
84
,
53
,
105
,
253
,
105
,
187
,
84
,
20
,
190
,
256
,
45
,
46
,
259
,
195
,
13
,
14
,
198
,
105
,
200
,
287
,
105
,
109
,
45
,
46
,
109
,
303
,
61
,
382
,
41
,
314
,
43
,
105
,
317
,
231
,
33
,
109
,
234
,
392
,
61
,
52
,
213
,
319
,
320
,
11
,
12
,
80
,
365
,
373
,
230
,
231
,
3
,
86
,
234
,
107
,
80
,
21
,
12
,
80
,
308
,
241
,
95
,
105
,
105
,
86
,
105
,
109
,
109
,
240
,
109
,
104
,
69
,
106
,
95
,
6
,
39
,
8
,
9
,
10
,
104
,
102
,
106
,
104
,
112
,
106
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
81
,
6
,
105
,
8
,
9
,
10
,
109
,
97
,
98
,
99
,
100
,
105
,
103
,
105
,
105
,
109
,
81
,
109
,
109
,
109
,
45
,
8
,
9
,
10
,
11
,
12
,
108
,
283
,
284
,
303
,
286
,
305
,
45
,
71
,
51
,
60
,
310
,
81
,
3
,
112
,
45
,
11
,
12
,
13
,
14
,
319
,
320
,
3
,
322
,
314
,
63
,
104
,
317
,
327
,
8
,
60
,
110
,
11
,
12
,
110
,
35
,
86
,
104
,
337
,
97
,
98
,
99
,
100
,
104
,
23
,
104
,
68
,
104
,
86
,
104
,
3
,
8
,
112
,
25
,
110
,
106
,
86
,
68
,
112
,
38
,
106
,
68
,
103
,
42
,
30
,
105
,
104
,
96
,
367
,
48
,
49
,
50
,
109
,
106
,
4
,
54
,
104
,
95
,
377
,
111
,
59
,
380
,
68
,
107
,
101
,
64
,
106
,
66
,
113
,
104
,
4
,
105
,
88
,
114
,
107
,
74
,
102
,
82
,
107
,
107
,
104
,
0
,
107
,
113
,
83
,
0
,
85
,
109
,
107
,
11
,
12
,
90
,
3
,
92
,
93
,
94
,
18
,
13
,
107
,
112
,
22
,
23
,
24
,
26
,
26
,
27
,
74
,
56
,
65
,
113
,
278
,
134
,
109
,
322
,
36
,
310
,
301
,
233
,
40
,
305
,
392
,
157
,
44
,
195
,
228
,
47
,
48
,
49
,
50
,
221
,
377
,
367
,
371
,
-
1
,
56
,
319
,
58
,
59
,
-
1
,
-
1
,
-
1
,
63
,
64
,
65
,
66
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
74
,
-
1
,
76
,
77
,
78
,
79
,
-
1
,
-
1
,
-
1
,
83
,
-
1
,
85
,
-
1
,
87
,
11
,
12
,
90
,
91
,
92
,
93
,
94
,
18
,
-
1
,
-
1
,
-
1
,
22
,
23
,
24
,
-
1
,
26
,
27
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
36
,
-
1
,
-
1
,
-
1
,
40
,
-
1
,
-
1
,
-
1
,
44
,
-
1
,
-
1
,
47
,
48
,
49
,
50
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
56
,
-
1
,
58
,
59
,
-
1
,
-
1
,
-
1
,
63
,
64
,
65
,
66
,
67
,
-
1
,
-
1
,
-
1
,
11
,
12
,
-
1
,
74
,
-
1
,
76
,
77
,
78
,
79
,
-
1
,
-
1
,
22
,
83
,
24
,
85
,
26
,
-
1
,
11
,
12
,
90
,
91
,
92
,
93
,
94
,
-
1
,
36
,
-
1
,
-
1
,
22
,
40
,
24
,
-
1
,
26
,
44
,
-
1
,
-
1
,
47
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
36
,
-
1
,
-
1
,
-
1
,
40
,
58
,
-
1
,
-
1
,
44
,
-
1
,
63
,
47
,
65
,
-
1
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
58
,
76
,
77
,
-
1
,
-
1
,
63
,
-
1
,
65
,
-
1
,
67
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
91
,
-
1
,
76
,
77
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
91
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison.simple"
...
...
@@ -2283,13 +2274,26 @@ case 116:
checkmem
(
yyval
.
a_ref
);
ret
=
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
-
2
].
tv_str
,
RLT_UNKNOWN
);
checkmem
(
ret
==
0
);
ret
=
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_
lowercase
);
ret
=
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_
UNKNOWN
);
checkmem
(
ret
==
0
);
free
(
yyvsp
[
-
2
].
tv_str
);
;
break
;}
case
117
:
#line 1191 "asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
checkmem
(
yyval
.
a_ref
);
ret
=
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
-
2
].
tv_str
,
RLT_UNKNOWN
);
checkmem
(
ret
==
0
);
ret
=
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_lowercase
);
checkmem
(
ret
==
0
);
free
(
yyvsp
[
-
2
].
tv_str
);
;
break
;}
case
118
:
#line 1201 "asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2299,8 +2303,8 @@ case 117:
checkmem
(
ret
==
0
);
;
break
;}
case
11
8
:
#line 1
19
9 "asn1p_y.y"
case
11
9
:
#line 1
20
9 "asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
yyvsp
[
0
].
a_ref
;
...
...
@@ -2321,8 +2325,8 @@ case 118:
}
;
break
;}
case
1
19
:
#line 12
2
1 "asn1p_y.y"
case
1
20
:
#line 12
3
1 "asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2332,8 +2336,8 @@ case 119:
checkmem
(
ret
==
0
);
;
break
;}
case
12
0
:
#line 12
2
9 "asn1p_y.y"
case
12
1
:
#line 12
3
9 "asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
yyvsp
[
-
2
].
a_ref
;
...
...
@@ -2342,22 +2346,22 @@ case 120:
checkmem
(
ret
==
0
);
;
break
;}
case
12
3
:
#line 12
4
3 "asn1p_y.y"
case
12
4
:
#line 12
5
3 "asn1p_y.y"
{
yyval
.
a_refcomp
.
lex_type
=
RLT_AmpUppercase
;
yyval
.
a_refcomp
.
name
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
12
4
:
#line 12
4
8 "asn1p_y.y"
case
12
5
:
#line 12
5
8 "asn1p_y.y"
{
yyval
.
a_refcomp
.
lex_type
=
RLT_Amplowercase
;
yyval
.
a_refcomp
.
name
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
12
5
:
#line 12
6
1 "asn1p_y.y"
case
12
6
:
#line 12
7
1 "asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
NULL
);
...
...
@@ -2366,53 +2370,87 @@ case 125:
yyval
.
a_expr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
126
:
#line 1271 "asn1p_y.y"
case
127
:
#line 1281 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_CHOICE_IDENTIFIER
;
yyval
.
a_value
->
value
.
choice_identifier
.
identifier
=
yyvsp
[
-
2
].
tv_str
;
yyval
.
a_value
->
value
.
choice_identifier
.
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
128
:
#line 1288 "asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
;
break
;}
case
12
7
:
#line 12
72
"asn1p_y.y"
case
12
9
:
#line 12
88
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_frombuf
(
yyvsp
[
0
].
tv_opaque
.
buf
,
yyvsp
[
0
].
tv_opaque
.
len
,
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_UNPARSED
;
;
break
;}
case
128
:
#line 1277 "asn1p_y.y"
case
130
:
#line 1293 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_NULL
;
;
break
;}
case
131
:
#line 1298 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_FALSE
;
;
break
;}
case
132
:
#line 1303 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_TRUE
;
;
break
;}
case
133
:
#line 1308 "asn1p_y.y"
{
yyval
.
a_value
=
_convert_bitstring2binary
(
yyvsp
[
0
].
tv_str
,
'B'
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
1
29
:
#line 1
281
"asn1p_y.y"
case
1
34
:
#line 1
312
"asn1p_y.y"
{
yyval
.
a_value
=
_convert_bitstring2binary
(
yyvsp
[
0
].
tv_str
,
'H'
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
13
0
:
#line 1
285
"asn1p_y.y"
case
13
5
:
#line 1
316
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_frombuf
(
yyvsp
[
0
].
tv_opaque
.
buf
,
yyvsp
[
0
].
tv_opaque
.
len
,
0
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
13
1
:
#line 1
289
"asn1p_y.y"
case
13
6
:
#line 1
320
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
13
2
:
#line 1
292
"asn1p_y.y"
case
13
7
:
#line 1
323
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
13
3
:
#line 1
298
"asn1p_y.y"
case
13
8
:
#line 1
329
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -2425,8 +2463,8 @@ case 133:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
13
4
:
#line 13
09
"asn1p_y.y"
case
13
9
:
#line 13
40
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -2442,8 +2480,8 @@ case 134:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
1
35
:
#line 13
26
"asn1p_y.y"
case
1
40
:
#line 13
57
"asn1p_y.y"
{
yyval
.
tv_opaque
.
len
=
yyvsp
[
0
].
tv_opaque
.
len
+
2
;
yyval
.
tv_opaque
.
buf
=
malloc
(
yyval
.
tv_opaque
.
len
+
1
);
...
...
@@ -2455,8 +2493,8 @@ case 135:
free
(
yyvsp
[
0
].
tv_opaque
.
buf
);
;
break
;}
case
1
36
:
#line 13
36
"asn1p_y.y"
case
1
41
:
#line 13
67
"asn1p_y.y"
{
int
newsize
=
yyvsp
[
-
1
].
tv_opaque
.
len
+
yyvsp
[
0
].
tv_opaque
.
len
;
char
*
p
=
malloc
(
newsize
+
1
);
...
...
@@ -2470,68 +2508,68 @@ case 136:
yyval
.
tv_opaque
.
len
=
newsize
;
;
break
;}
case
1
37
:
#line 13
51
"asn1p_y.y"
case
1
42
:
#line 13
82
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_BOOLEAN
;
;
break
;}
case
1
38
:
#line 13
52
"asn1p_y.y"
case
1
43
:
#line 13
83
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_NULL
;
;
break
;}
case
1
39
:
#line 13
53
"asn1p_y.y"
case
1
44
:
#line 13
84
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_REAL
;
;
break
;}
case
14
0
:
#line 13
54
"asn1p_y.y"
case
14
5
:
#line 13
85
"asn1p_y.y"
{
yyval
.
a_type
=
yyvsp
[
0
].
a_type
;
;
break
;}
case
14
1
:
#line 13
55
"asn1p_y.y"
case
14
6
:
#line 13
86
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_OCTET_STRING
;
;
break
;}
case
14
2
:
#line 13
56
"asn1p_y.y"
case
14
7
:
#line 13
87
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_OBJECT_IDENTIFIER
;
;
break
;}
case
14
3
:
#line 13
57
"asn1p_y.y"
case
14
8
:
#line 13
88
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_RELATIVE_OID
;
;
break
;}
case
14
4
:
#line 13
58
"asn1p_y.y"
case
14
9
:
#line 13
89
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_EXTERNAL
;
;
break
;}
case
1
45
:
#line 13
59
"asn1p_y.y"
case
1
50
:
#line 13
90
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_EMBEDDED_PDV
;
;
break
;}
case
1
46
:
#line 13
60
"asn1p_y.y"
case
1
51
:
#line 13
91
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_CHARACTER_STRING
;
;
break
;}
case
1
47
:
#line 13
61
"asn1p_y.y"
case
1
52
:
#line 13
92
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_UTCTime
;
;
break
;}
case
1
48
:
#line 13
62
"asn1p_y.y"
case
1
53
:
#line 13
93
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_GeneralizedTime
;
;
break
;}
case
1
49
:
#line 1
369
"asn1p_y.y"
case
1
54
:
#line 1
400
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_INTEGER
;
;
break
;}
case
15
0
:
#line 1
370
"asn1p_y.y"
case
15
5
:
#line 1
401
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_ENUMERATED
;
;
break
;}
case
15
1
:
#line 1
371
"asn1p_y.y"
case
15
6
:
#line 1
402
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_BIT_STRING
;
;
break
;}
case
15
2
:
#line 1
375
"asn1p_y.y"
case
15
7
:
#line 1
406
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2539,8 +2577,8 @@ case 152:
yyval
.
a_expr
->
meta_type
=
AMT_TYPE
;
;
break
;}
case
15
3
:
#line 1
381
"asn1p_y.y"
case
15
8
:
#line 1
412
"asn1p_y.y"
{
if
(
yyvsp
[
0
].
a_expr
)
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
...
...
@@ -2552,92 +2590,92 @@ case 153:
yyval
.
a_expr
->
meta_type
=
AMT_TYPE
;
;
break
;}
case
15
4
:
#line 1
394
"asn1p_y.y"
case
15
9
:
#line 1
425
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_BMPString
;
;
break
;}
case
1
55
:
#line 1
395
"asn1p_y.y"
case
1
60
:
#line 1
426
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_GeneralString
;
fprintf
(
stderr
,
"WARNING: GeneralString is not fully supported"
);
fprintf
(
stderr
,
"WARNING: GeneralString is not fully supported
\n
"
);
;
break
;}
case
1
56
:
#line 1
399
"asn1p_y.y"
case
1
61
:
#line 1
430
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_GraphicString
;
fprintf
(
stderr
,
"WARNING: GraphicString is not fully supported"
);
fprintf
(
stderr
,
"WARNING: GraphicString is not fully supported
\n
"
);
;
break
;}
case
1
57
:
#line 14
03
"asn1p_y.y"
case
1
62
:
#line 14
34
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_IA5String
;
;
break
;}
case
1
58
:
#line 14
04
"asn1p_y.y"
case
1
63
:
#line 14
35
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_ISO646String
;
;
break
;}
case
1
59
:
#line 14
05
"asn1p_y.y"
case
1
64
:
#line 14
36
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_NumericString
;
;
break
;}
case
16
0
:
#line 14
06
"asn1p_y.y"
case
16
5
:
#line 14
37
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_PrintableString
;
;
break
;}
case
16
1
:
#line 14
07
"asn1p_y.y"
case
16
6
:
#line 14
38
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_T61String
;
fprintf
(
stderr
,
"WARNING: T61String is not fully supported"
);
fprintf
(
stderr
,
"WARNING: T61String is not fully supported
\n
"
);
;
break
;}
case
16
2
:
#line 14
11
"asn1p_y.y"
case
16
7
:
#line 14
42
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_TeletexString
;
;
break
;}
case
16
3
:
#line 14
12
"asn1p_y.y"
case
16
8
:
#line 14
43
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_UniversalString
;
;
break
;}
case
16
4
:
#line 14
13
"asn1p_y.y"
case
16
9
:
#line 14
44
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_UTF8String
;
;
break
;}
case
1
65
:
#line 14
14
"asn1p_y.y"
case
1
70
:
#line 14
45
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_VideotexString
;
fprintf
(
stderr
,
"WARNING: VideotexString is not fully supported"
);
fprintf
(
stderr
,
"WARNING: VideotexString is not fully supported
\n
"
);
;
break
;}
case
1
66
:
#line 14
18
"asn1p_y.y"
case
1
71
:
#line 14
49
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_VisibleString
;
;
break
;}
case
1
67
:
#line 14
19
"asn1p_y.y"
case
1
72
:
#line 14
50
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_ObjectDescriptor
;
;
break
;}
case
17
3
:
#line 14
31
"asn1p_y.y"
case
17
8
:
#line 14
62
"asn1p_y.y"
{
yyval
.
a_constr
=
0
;
;
break
;}
case
17
4
:
#line 14
32
"asn1p_y.y"
case
17
9
:
#line 14
63
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
1
75
:
#line 14
38
"asn1p_y.y"
case
1
80
:
#line 14
69
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_SET
,
yyvsp
[
0
].
a_constr
,
0
);
;
break
;}
case
1
76
:
#line 14
41
"asn1p_y.y"
case
1
81
:
#line 14
72
"asn1p_y.y"
{
/*
* This is a special case, for compatibility purposes.
...
...
@@ -2646,26 +2684,26 @@ case 176:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_SIZE
,
yyvsp
[
-
1
].
a_constr
,
0
);
;
break
;}
case
1
77
:
#line 14
51
"asn1p_y.y"
case
1
82
:
#line 14
82
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
-
1
].
a_constr
;
;
break
;}
case
1
78
:
#line 14
54
"asn1p_y.y"
case
1
83
:
#line 14
85
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_SET
,
yyvsp
[
-
3
].
a_constr
,
yyvsp
[
-
1
].
a_constr
);
;
break
;}
case
1
79
:
#line 14
60
"asn1p_y.y"
case
1
84
:
#line 14
91
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
18
0
:
#line 14
63
"asn1p_y.y"
case
18
5
:
#line 14
94
"asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2673,8 +2711,8 @@ case 180:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
yyvsp
[
-
2
].
a_constr
,
ct
);
;
break
;}
case
18
1
:
#line 1
469
"asn1p_y.y"
case
18
6
:
#line 1
500
"asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2684,32 +2722,32 @@ case 181:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
ct
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
18
2
:
#line 1
480
"asn1p_y.y"
case
18
7
:
#line 1
511
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
18
3
:
#line 1
483
"asn1p_y.y"
case
18
8
:
#line 1
514
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_UNI
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
18
4
:
#line 1
486
"asn1p_y.y"
case
18
9
:
#line 1
517
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_INT
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
1
85
:
#line 1
489
"asn1p_y.y"
case
1
90
:
#line 1
520
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_EXC
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
1
86
:
#line 1
495
"asn1p_y.y"
case
1
91
:
#line 1
526
"asn1p_y.y"
{
int
ret
;
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2719,8 +2757,8 @@ case 186:
checkmem
(
ret
==
0
);
;
break
;}
case
1
87
:
#line 15
03
"asn1p_y.y"
case
1
92
:
#line 15
34
"asn1p_y.y"
{
int
ret
;
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2730,8 +2768,8 @@ case 187:
checkmem
(
ret
==
0
);
;
break
;}
case
1
88
:
#line 15
11
"asn1p_y.y"
case
1
93
:
#line 15
42
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2739,8 +2777,8 @@ case 188:
yyval
.
a_constr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
1
89
:
#line 15
17
"asn1p_y.y"
case
1
94
:
#line 15
48
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2749,8 +2787,8 @@ case 189:
yyval
.
a_constr
->
range_stop
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
19
0
:
#line 15
24
"asn1p_y.y"
case
19
5
:
#line 15
55
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2760,8 +2798,8 @@ case 190:
yyval
.
a_constr
->
range_start
->
type
=
ATV_MIN
;
;
break
;}
case
19
1
:
#line 15
32
"asn1p_y.y"
case
19
6
:
#line 15
63
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2771,8 +2809,8 @@ case 191:
yyval
.
a_constr
->
range_stop
->
type
=
ATV_MAX
;
;
break
;}
case
19
2
:
#line 15
40
"asn1p_y.y"
case
19
7
:
#line 15
71
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2783,54 +2821,54 @@ case 192:
yyval
.
a_constr
->
range_stop
->
type
=
ATV_MAX
;
;
break
;}
case
19
3
:
#line 15
49
"asn1p_y.y"
case
19
8
:
#line 15
80
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
19
4
:
#line 15
52
"asn1p_y.y"
case
19
9
:
#line 15
83
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
195
:
#line 15
58
"asn1p_y.y"
case
200
:
#line 15
89
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_RANGE
;
;
break
;}
case
196
:
#line 15
59
"asn1p_y.y"
case
201
:
#line 15
90
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_RLRANGE
;
;
break
;}
case
197
:
#line 15
60
"asn1p_y.y"
case
202
:
#line 15
91
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_LLRANGE
;
;
break
;}
case
198
:
#line 15
61
"asn1p_y.y"
case
203
:
#line 15
92
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_ULRANGE
;
;
break
;}
case
199
:
#line 15
65
"asn1p_y.y"
case
204
:
#line 15
96
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_CT_SIZE
;
;
break
;}
case
20
0
:
#line 15
68
"asn1p_y.y"
case
20
5
:
#line 15
99
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_CT_FROM
;
;
break
;}
case
20
1
:
#line 1
574
"asn1p_y.y"
case
20
6
:
#line 1
605
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
20
2
:
#line 1
577
"asn1p_y.y"
case
20
7
:
#line 1
608
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -2843,57 +2881,57 @@ case 202:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
20
3
:
#line 1
588
"asn1p_y.y"
case
20
8
:
#line 1
619
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_frombuf
(
yyvsp
[
0
].
tv_opaque
.
buf
,
yyvsp
[
0
].
tv_opaque
.
len
,
0
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
20
4
:
#line 1
59
3 "asn1p_y.y"
case
20
9
:
#line 1
62
3 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_FALSE
;
;
break
;}
case
2
05
:
#line 1
59
8 "asn1p_y.y"
case
2
10
:
#line 1
62
8 "asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
1
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_TRUE
;
;
break
;}
case
2
06
:
#line 16
0
6 "asn1p_y.y"
case
2
11
:
#line 16
3
6 "asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_WCOMPS
,
yyvsp
[
-
1
].
a_constr
,
0
);
;
break
;}
case
2
07
:
#line 16
1
2 "asn1p_y.y"
case
2
12
:
#line 16
4
2 "asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
2
08
:
#line 16
1
5 "asn1p_y.y"
case
2
13
:
#line 16
4
5 "asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_WCOMPS
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
2
09
:
#line 16
2
1 "asn1p_y.y"
case
2
14
:
#line 16
5
1 "asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
yyval
.
a_constr
->
type
=
ACT_EL_EXT
;
;
break
;}
case
21
0
:
#line 16
2
6 "asn1p_y.y"
case
21
5
:
#line 16
5
6 "asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2902,46 +2940,46 @@ case 210:
yyval
.
a_constr
->
presence
=
yyvsp
[
0
].
a_pres
;
;
break
;}
case
21
1
:
#line 16
3
9 "asn1p_y.y"
case
21
6
:
#line 16
6
9 "asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_DEFAULT
;
;
break
;}
case
21
2
:
#line 16
4
0 "asn1p_y.y"
case
21
7
:
#line 16
7
0 "asn1p_y.y"
{
yyval
.
a_pres
=
yyvsp
[
0
].
a_pres
;
;
break
;}
case
21
3
:
#line 16
4
4 "asn1p_y.y"
case
21
8
:
#line 16
7
4 "asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_PRESENT
;
;
break
;}
case
21
4
:
#line 16
4
7 "asn1p_y.y"
case
21
9
:
#line 16
7
7 "asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_ABSENT
;
;
break
;}
case
2
15
:
#line 16
5
0 "asn1p_y.y"
case
2
20
:
#line 16
8
0 "asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_OPTIONAL
;
;
break
;}
case
2
16
:
#line 16
5
6 "asn1p_y.y"
case
2
21
:
#line 16
8
6 "asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
2
17
:
#line 16
5
9 "asn1p_y.y"
case
2
22
:
#line 16
8
9 "asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
2
18
:
#line 16
6
8 "asn1p_y.y"
case
2
23
:
#line 16
9
8 "asn1p_y.y"
{
asn1p_ref_t
*
ref
=
asn1p_ref_new
(
yylineno
);
asn1p_constraint_t
*
ct
;
...
...
@@ -2955,14 +2993,14 @@ case 218:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CRC
,
ct
,
0
);
;
break
;}
case
2
19
:
#line 1
68
3 "asn1p_y.y"
case
2
24
:
#line 1
71
3 "asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CRC
,
yyvsp
[
-
3
].
a_constr
,
yyvsp
[
-
1
].
a_constr
);
;
break
;}
case
22
0
:
#line 1
68
9 "asn1p_y.y"
case
22
5
:
#line 1
71
9 "asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -2970,8 +3008,8 @@ case 220:
yyval
.
a_constr
->
value
=
asn1p_value_fromref
(
yyvsp
[
0
].
a_ref
,
0
);
;
break
;}
case
22
1
:
#line 1
69
5 "asn1p_y.y"
case
22
6
:
#line 1
72
5 "asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2981,8 +3019,8 @@ case 221:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
yyvsp
[
-
2
].
a_constr
,
ct
);
;
break
;}
case
22
2
:
#line 17
0
9 "asn1p_y.y"
case
22
7
:
#line 17
3
9 "asn1p_y.y"
{
char
*
p
=
malloc
(
strlen
(
yyvsp
[
0
].
tv_str
)
+
2
);
int
ret
;
...
...
@@ -2995,8 +3033,8 @@ case 222:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
22
3
:
#line 17
2
0 "asn1p_y.y"
case
22
8
:
#line 17
5
0 "asn1p_y.y"
{
char
*
p
=
malloc
(
strlen
(
yyvsp
[
0
].
tv_str
)
+
3
);
int
ret
;
...
...
@@ -3010,14 +3048,14 @@ case 223:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
22
4
:
#line 17
3
6 "asn1p_y.y"
case
22
9
:
#line 17
6
6 "asn1p_y.y"
{
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
2
25
:
#line 17
3
9 "asn1p_y.y"
case
2
30
:
#line 17
6
9 "asn1p_y.y"
{
int
l1
=
strlen
(
yyvsp
[
-
2
].
tv_str
);
int
l3
=
strlen
(
yyvsp
[
0
].
tv_str
);
...
...
@@ -3028,76 +3066,61 @@ case 225:
yyval
.
tv_str
[
l1
+
1
+
l3
]
=
'\0'
;
;
break
;}
case
226
:
#line 1757 "asn1p_y.y"
{
yyval
.
a_marker
=
EM_NOMARK
;
;
break
;}
case
227
:
#line 1758 "asn1p_y.y"
{
yyval
.
a_marker
=
yyvsp
[
0
].
a_marker
;
;
break
;}
case
228
:
#line 1762 "asn1p_y.y"
{
yyval
.
a_marker
=
EM_OPTIONAL
;
;
break
;}
case
229
:
#line 1765 "asn1p_y.y"
{
yyval
.
a_marker
=
EM_DEFAULT
;
/* FIXME: store DefaultValue somewhere */
;
break
;}
case
230
:
#line 1772 "asn1p_y.y"
{
;
break
;}
case
231
:
#line 17
74
"asn1p_y.y"
#line 17
87
"asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_NOMARK
;
yyval
.
a_marker
.
default_value
=
0
;
;
break
;}
case
232
:
#line 17
76
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
()
;
;
#line 17
91
"asn1p_y.y"
{
yyval
.
a_marker
=
yyvsp
[
0
].
a_marker
;
;
break
;}
case
233
:
#line 17
76
"asn1p_y.y"
#line 17
95
"asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_OPTIONAL
;
yyval
.
a_marker
.
default_value
=
0
;
;
break
;}
case
234
:
#line 1797 "asn1p_y.y"
#line 1799 "asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_DEFAULT
;
yyval
.
a_marker
.
default_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
235
:
#line 1822 "asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
;
break
;}
case
23
5
:
#line 18
01
"asn1p_y.y"
case
23
6
:
#line 18
26
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
;
break
;}
case
23
6
:
#line 18
07
"asn1p_y.y"
case
23
7
:
#line 18
32
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
23
7
:
#line 18
12
"asn1p_y.y"
case
23
8
:
#line 18
37
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
23
8
:
#line 18
19
"asn1p_y.y"
case
23
9
:
#line 18
44
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3106,8 +3129,8 @@ case 238:
yyval
.
a_expr
->
Identifier
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
2
39
:
#line 18
26
"asn1p_y.y"
case
2
40
:
#line 18
51
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3117,8 +3140,8 @@ case 239:
yyval
.
a_expr
->
value
=
yyvsp
[
-
1
].
a_value
;
;
break
;}
case
24
0
:
#line 18
34
"asn1p_y.y"
case
24
1
:
#line 18
59
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3128,8 +3151,8 @@ case 240:
yyval
.
a_expr
->
value
=
yyvsp
[
-
1
].
a_value
;
;
break
;}
case
24
1
:
#line 18
42
"asn1p_y.y"
case
24
2
:
#line 18
67
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3138,8 +3161,8 @@ case 241:
yyval
.
a_expr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
24
2
:
#line 18
49
"asn1p_y.y"
case
24
3
:
#line 18
74
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3149,72 +3172,72 @@ case 242:
yyval
.
a_expr
->
meta_type
=
AMT_VALUE
;
;
break
;}
case
24
3
:
#line 18
60
"asn1p_y.y"
case
24
4
:
#line 18
85
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
24
4
:
#line 18
64
"asn1p_y.y"
case
24
5
:
#line 18
89
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
24
5
:
#line 1
895
"asn1p_y.y"
case
24
6
:
#line 1
920
"asn1p_y.y"
{
memset
(
&
yyval
.
a_tag
,
0
,
sizeof
(
yyval
.
a_tag
));
;
break
;}
case
24
6
:
#line 1
896
"asn1p_y.y"
case
24
7
:
#line 1
921
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
0
].
a_tag
;
;
break
;}
case
24
7
:
#line 19
00
"asn1p_y.y"
case
24
8
:
#line 19
25
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
0
].
a_tag
;
yyval
.
a_tag
.
tag_mode
=
TM_DEFAULT
;
;
break
;}
case
24
8
:
#line 19
04
"asn1p_y.y"
case
24
9
:
#line 19
29
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
-
1
].
a_tag
;
yyval
.
a_tag
.
tag_mode
=
TM_IMPLICIT
;
;
break
;}
case
2
49
:
#line 19
08
"asn1p_y.y"
case
2
50
:
#line 19
33
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
-
1
].
a_tag
;
yyval
.
a_tag
.
tag_mode
=
TM_EXPLICIT
;
;
break
;}
case
25
0
:
#line 19
15
"asn1p_y.y"
case
25
1
:
#line 19
40
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
25
1
:
#line 19
19
"asn1p_y.y"
case
25
2
:
#line 19
44
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
25
2
:
#line 19
27
"asn1p_y.y"
case
25
3
:
#line 19
52
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
25
3
:
#line 19
34
"asn1p_y.y"
case
25
4
:
#line 19
59
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
...
...
@@ -3442,7 +3465,7 @@ yyerrhandle:
}
return
1
;
}
#line 19
40
"asn1p_y.y"
#line 19
65
"asn1p_y.y"
...
...
libasn1parser/asn1p_y.h
View file @
9c974183
...
...
@@ -17,7 +17,7 @@ typedef union {
asn1p_value_t
*
a_value
;
/* Number, DefinedValue, etc */
struct
asn1p_param_s
a_parg
;
/* A parameter argument */
asn1p_paramlist_t
*
a_plist
;
/* A pargs list */
enum
asn1p_expr_marker_e
a_marker
;
/* OPTIONAL/DEFAULT */
struct
asn1p_expr_marker_s
a_marker
;
/* OPTIONAL/DEFAULT */
enum
asn1p_constr_pres_e
a_pres
;
/* PRESENT/ABSENT/OPTIONAL */
asn1_integer_t
a_int
;
char
*
tv_str
;
...
...
libasn1parser/asn1p_y.y
View file @
9c974183
...
...
@@ -74,7 +74,7 @@ static asn1p_value_t *
asn1p_value_t *a_value; /* Number, DefinedValue, etc */
struct asn1p_param_s a_parg; /* A parameter argument */
asn1p_paramlist_t *a_plist; /* A pargs list */
enum asn1p_expr_marker_e
a_marker; /* OPTIONAL/DEFAULT */
struct asn1p_expr_marker_s
a_marker; /* OPTIONAL/DEFAULT */
enum asn1p_constr_pres_e a_pres; /* PRESENT/ABSENT/OPTIONAL */
asn1_integer_t a_int;
char *tv_str;
...
...
@@ -236,7 +236,7 @@ static asn1p_value_t *
%type <a_expr> optValueSetBody
%type <a_expr> ValueSetBody
%type <a_expr> ValueSetElement
%type <a_value>
InlineOrDefined
Value
%type <a_value> Value
%type <a_value> DefinedValue
%type <a_value> SignedNumber
%type <a_expr> ComponentTypeLists
...
...
@@ -1178,6 +1178,16 @@ ComplexTypeReference:
checkmem(ret == 0);
free($1);
}
| ObjectClassReference '.' TypeRefName {
int ret;
$$ = asn1p_ref_new(yylineno);
checkmem($$);
ret = asn1p_ref_add_component($$, $1, RLT_UNKNOWN);
checkmem(ret == 0);
ret = asn1p_ref_add_component($$, $3, RLT_UNKNOWN);
checkmem(ret == 0);
free($1);
}
| TOK_typereference '.' Identifier {
int ret;
$$ = asn1p_ref_new(yylineno);
...
...
@@ -1258,7 +1268,7 @@ ClassFieldName:
* === EOF ===
*/
ValueDefinition:
Identifier DefinedTypeRef TOK_PPEQ
InlineOrDefined
Value {
Identifier DefinedTypeRef TOK_PPEQ Value {
$$ = $2;
assert($$->Identifier == NULL);
$$->Identifier = $1;
...
...
@@ -1267,13 +1277,34 @@ ValueDefinition:
}
;
InlineOrDefinedValue:
'{' { asn1p_lexer_hack_push_opaque_state(); }
Opaque /* '}' */ {
Value:
Identifier ':' Value {
$$ = asn1p_value_fromint(0);
checkmem($$);
$$->type = ATV_CHOICE_IDENTIFIER;
$$->value.choice_identifier.identifier = $1;
$$->value.choice_identifier.value = $3;
}
| '{' { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ {
$$ = asn1p_value_frombuf($3.buf, $3.len, 0);
checkmem($$);
$$->type = ATV_UNPARSED;
}
| TOK_NULL {
$$ = asn1p_value_fromint(0);
checkmem($$);
$$->type = ATV_NULL;
}
| TOK_FALSE {
$$ = asn1p_value_fromint(0);
checkmem($$);
$$->type = ATV_FALSE;
}
| TOK_TRUE {
$$ = asn1p_value_fromint(0);
checkmem($$);
$$->type = ATV_TRUE;
}
| TOK_bstring {
$$ = _convert_bitstring2binary($1, 'B');
checkmem($$);
...
...
@@ -1394,11 +1425,11 @@ BasicString:
TOK_BMPString { $$ = ASN_STRING_BMPString; }
| TOK_GeneralString {
$$ = ASN_STRING_GeneralString;
fprintf(stderr, "WARNING: GeneralString is not fully supported");
fprintf(stderr, "WARNING: GeneralString is not fully supported
\n
");
}
| TOK_GraphicString {
$$ = ASN_STRING_GraphicString;
fprintf(stderr, "WARNING: GraphicString is not fully supported");
fprintf(stderr, "WARNING: GraphicString is not fully supported
\n
");
}
| TOK_IA5String { $$ = ASN_STRING_IA5String; }
| TOK_ISO646String { $$ = ASN_STRING_ISO646String; }
...
...
@@ -1406,14 +1437,14 @@ BasicString:
| TOK_PrintableString { $$ = ASN_STRING_PrintableString; }
| TOK_T61String {
$$ = ASN_STRING_T61String;
fprintf(stderr, "WARNING: T61String is not fully supported");
fprintf(stderr, "WARNING: T61String is not fully supported
\n
");
}
| TOK_TeletexString { $$ = ASN_STRING_TeletexString; }
| TOK_UniversalString { $$ = ASN_STRING_UniversalString; }
| TOK_UTF8String { $$ = ASN_STRING_UTF8String; }
| TOK_VideotexString {
$$ = ASN_STRING_VideotexString;
fprintf(stderr, "WARNING: VideotexString is not fully supported");
fprintf(stderr, "WARNING: VideotexString is not fully supported
\n
");
}
| TOK_VisibleString { $$ = ASN_STRING_VisibleString; }
| TOK_ObjectDescriptor { $$ = ASN_STRING_ObjectDescriptor; }
...
...
@@ -1589,7 +1620,6 @@ ConstraintValue:
$$ = asn1p_value_frombuf($1.buf, $1.len, 0);
checkmem($$);
}
| TOK_FALSE {
$$ = asn1p_value_fromint(0);
checkmem($$);
...
...
@@ -1754,26 +1784,21 @@ ComponentIdList:
*/
optMarker:
{ $$ = EM_NOMARK; }
{
$$.flags = EM_NOMARK;
$$.default_value = 0;
}
| Marker { $$ = $1; }
;
Marker:
TOK_OPTIONAL {
$$ = EM_OPTIONAL;
}
| TOK_DEFAULT DefaultValue {
$$ = EM_DEFAULT;
/* FIXME: store DefaultValue somewhere */
}
;
DefaultValue:
ConstraintValue {
}
| BasicTypeId {
$$.flags = EM_OPTIONAL;
$$.default_value = 0;
}
| '{' { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ {
| TOK_DEFAULT Value {
$$.flags = EM_DEFAULT;
$$.default_value = $2;
}
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment