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
d370e9f5
Commit
d370e9f5
authored
Mar 16, 2006
by
Lev Walkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parsing WITH SYNTAX clauses
parent
57074f10
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1357 additions
and
1024 deletions
+1357
-1024
ChangeLog
ChangeLog
+1
-1
asn1c/asn1c.c
asn1c/asn1c.c
+4
-1
libasn1fix/asn1fix.c
libasn1fix/asn1fix.c
+9
-4
libasn1fix/asn1fix_cws.c
libasn1fix/asn1fix_cws.c
+215
-4
libasn1fix/asn1fix_cws.h
libasn1fix/asn1fix_cws.h
+2
-3
libasn1parser/asn1p_class.c
libasn1parser/asn1p_class.c
+57
-24
libasn1parser/asn1p_class.h
libasn1parser/asn1p_class.h
+19
-5
libasn1parser/asn1p_expr.h
libasn1parser/asn1p_expr.h
+7
-0
libasn1parser/asn1p_l.c
libasn1parser/asn1p_l.c
+172
-187
libasn1parser/asn1p_l.l
libasn1parser/asn1p_l.l
+14
-29
libasn1parser/asn1p_y.c
libasn1parser/asn1p_y.c
+737
-743
libasn1parser/asn1p_y.y
libasn1parser/asn1p_y.y
+6
-13
libasn1parser/asn1parser.c
libasn1parser/asn1parser.c
+19
-0
libasn1parser/asn1parser.h
libasn1parser/asn1parser.h
+2
-0
libasn1print/asn1print.c
libasn1print/asn1print.c
+38
-5
libasn1print/asn1print.h
libasn1print/asn1print.h
+4
-3
tests/34-class-OK.asn1
tests/34-class-OK.asn1
+3
-1
tests/34-class-OK.asn1.-EF
tests/34-class-OK.asn1.-EF
+5
-1
tests/34-class-OK.asn1.-EFprint-class-matrix
tests/34-class-OK.asn1.-EFprint-class-matrix
+43
-0
No files found.
ChangeLog
View file @
d370e9f5
...
...
@@ -2,9 +2,9 @@
0.9.21: 2006-Mar-14
* skeletons/standard-modules directory is now used for standard types.
* Refactored system for parsing Information Object Classes.
* Fixed class field access problem (Test case 98)
(Severity: medim; Security impact: none)
* Refactored system for parsing Information Object Classes.
0.9.20: 2006-Mar-06
...
...
asn1c/asn1c.c
View file @
d370e9f5
...
...
@@ -129,8 +129,10 @@ main(int ac, char **av) {
exit
(
EX_USAGE
);
}
asn1_compiler_flags
|=
A1C_PDU_AUTO
;
}
else
if
(
strcmp
(
optarg
,
"rint-class-matrix"
)
==
0
)
{
asn1_printer_flags
|=
APF_PRINT_CLASS_MATRIX
;
}
else
if
(
strcmp
(
optarg
,
"rint-constraints"
)
==
0
)
{
asn1_printer_flags
|=
APF_
DEBUG
_CONSTRAINTS
;
asn1_printer_flags
|=
APF_
PRINT
_CONSTRAINTS
;
}
else
if
(
strcmp
(
optarg
,
"rint-lines"
)
==
0
)
{
asn1_printer_flags
|=
APF_LINE_COMMENTS
;
}
else
{
...
...
@@ -459,6 +461,7 @@ usage(const char *av0) {
"
\n
"
" -print-constraints Explain subtype constraints (debug)
\n
"
" -print-class-matrix Print out the collected object class matrix (debug)
\n
"
" -print-lines Generate
\"
-- #line
\"
comments in -E output
\n
"
,
...
...
libasn1fix/asn1fix.c
View file @
d370e9f5
...
...
@@ -188,8 +188,9 @@ asn1f_fix_module__phase_1(arg_t *arg) {
/* Do not process the parametrized type just yet */
continue
;
DEBUG
(
"=== Now processing
\"
%s
\"
at line %d ==="
,
expr
->
Identifier
,
expr
->
_lineno
);
DEBUG
(
"=== Now processing
\"
%s
\"
(%d/0x%x) at line %d ==="
,
expr
->
Identifier
,
expr
->
meta_type
,
expr
->
expr_type
,
expr
->
_lineno
);
assert
(
expr
->
meta_type
!=
AMT_INVALID
);
/*
...
...
@@ -223,9 +224,10 @@ asn1f_fix_module__phase_1(arg_t *arg) {
RET2RVAL
(
ret
,
rvalue
);
/*
* Parse
WITH SYNTAX in CLASSes
.
* Parse
class objects and fill up the object class with data
.
*/
ret
=
asn1f_parse_class_with_syntax
(
arg
);
ret
=
asn1f_parse_class_object
(
arg
);
RET2RVAL
(
ret
,
rvalue
);
/*
* Resolve references in constraints.
...
...
@@ -293,6 +295,9 @@ asn1f_fix_module__phase_2(arg_t *arg) {
int
rvalue
=
0
;
int
ret
;
TQ_FOR
(
expr
,
&
(
arg
->
mod
->
members
),
next
)
{
}
TQ_FOR
(
expr
,
&
(
arg
->
mod
->
members
),
next
)
{
arg
->
expr
=
expr
;
...
...
libasn1fix/asn1fix_cws.c
View file @
d370e9f5
#include "asn1fix_internal.h"
#include "asn1fix_cws.h"
static
int
_asn1f_parse_class_object_data
(
arg_t
*
,
asn1p_expr_t
*
eclass
,
struct
asn1p_ioc_row_s
*
row
,
asn1p_wsyntx_t
*
syntax
,
uint8_t
*
buf
,
const
uint8_t
*
bend
,
int
optional_mode
,
uint8_t
**
newpos
);
static
int
_asn1f_assign_cell_value
(
arg_t
*
arg
,
struct
asn1p_ioc_row_s
*
row
,
struct
asn1p_ioc_cell_s
*
cell
,
uint8_t
*
buf
,
const
uint8_t
*
bend
);
int
asn1f_parse_class_
with_syntax
(
arg_t
*
arg
)
{
asn1f_parse_class_
object
(
arg_t
*
arg
)
{
asn1p_expr_t
*
expr
=
arg
->
expr
;
asn1p_expr_t
*
eclass
;
asn1p_ioc_row_t
*
row
;
void
*
new_rows_ptr
;
int
ret
;
if
(
expr
->
meta_type
!=
AMT_VALUE
||
expr
->
expr_type
!=
A1TC_REFERENCE
||
!
expr
->
value
||
expr
->
value
->
type
!=
ATV_UNPARSED
)
return
0
;
/*
* Find the governing class.
*/
eclass
=
asn1f_find_terminal_type
(
arg
,
expr
);
if
(
!
eclass
||
eclass
->
meta_type
!=
AMT_OBJECTCLASS
||
eclass
->
expr_type
!=
A1TC_CLASSDEF
)
{
return
0
;
}
DEBUG
(
"Value %s of CLASS %s found at line %d"
,
expr
->
Identifier
,
eclass
->
Identifier
,
expr
->
_lineno
);
if
(
expr
->
expr_type
!=
A1TC_CLASSDEF
||
expr
->
with_syntax
==
NULL
)
if
(
!
eclass
->
with_syntax
)
{
DEBUG
(
"Can't process classes without WITH SYNTAX just yet"
);
return
0
;
}
row
=
asn1p_ioc_row_new
(
eclass
);
assert
(
row
);
ret
=
_asn1f_parse_class_object_data
(
arg
,
eclass
,
row
,
eclass
->
with_syntax
,
expr
->
value
->
value
.
string
.
buf
+
1
,
expr
->
value
->
value
.
string
.
buf
+
expr
->
value
->
value
.
string
.
size
-
1
,
0
,
0
);
if
(
ret
)
{
LOG
((
ret
<
0
),
"Cannot parse %s of CLASS %s found at line %d"
,
expr
->
Identifier
,
eclass
->
Identifier
,
expr
->
_lineno
);
asn1p_ioc_row_delete
(
row
);
return
ret
;
}
new_rows_ptr
=
realloc
(
eclass
->
object_class_matrix
.
row
,
(
eclass
->
object_class_matrix
.
rows
+
1
)
*
sizeof
(
eclass
->
object_class_matrix
.
row
[
0
]));
assert
(
new_rows_ptr
);
eclass
->
object_class_matrix
.
row
=
new_rows_ptr
;
eclass
->
object_class_matrix
.
row
[
eclass
->
object_class_matrix
.
rows
]
=
row
;
eclass
->
object_class_matrix
.
rows
++
;
/* Propagate max identifier length */
if
(
eclass
->
object_class_matrix
.
max_identifier_length
<
row
->
max_identifier_length
)
eclass
->
object_class_matrix
.
max_identifier_length
=
row
->
max_identifier_length
;
return
0
;
}
#define SKIPSPACES for(; buf < bend && isspace(*buf); buf++)
static
int
_asn1f_parse_class_object_data
(
arg_t
*
arg
,
asn1p_expr_t
*
eclass
,
struct
asn1p_ioc_row_s
*
row
,
asn1p_wsyntx_t
*
syntax
,
uint8_t
*
buf
,
const
uint8_t
*
bend
,
int
optional_mode
,
uint8_t
**
newpos
)
{
struct
asn1p_wsyntx_chunk_s
*
chunk
;
int
ret
;
TQ_FOR
(
chunk
,
(
&
syntax
->
chunks
),
next
)
{
switch
(
chunk
->
type
)
{
case
WC_LITERAL
:
{
int
token_len
=
strlen
(
chunk
->
content
.
token
);
SKIPSPACES
;
if
(
bend
-
buf
<
token_len
||
memcmp
(
buf
,
chunk
->
content
.
token
,
token_len
))
{
if
(
!
optional_mode
)
{
FATAL
(
"While parsing object class value %s at line %d: Expected:
\"
%s
\"
, found:
\"
%s
\"
"
,
arg
->
expr
->
Identifier
,
arg
->
expr
->
_lineno
,
chunk
->
content
.
token
,
buf
);
}
if
(
newpos
)
*
newpos
=
buf
;
return
-
1
;
}
buf
+=
token_len
;
}
break
;
case
WC_WHITESPACE
:
break
;
/* Ignore whitespace */
case
WC_FIELD
:
{
struct
asn1p_ioc_cell_s
*
cell
;
uint8_t
*
p
;
SKIPSPACES
;
int
lbraces
=
0
;
p
=
buf
;
if
(
p
<
bend
&&
*
p
==
'{'
)
lbraces
=
1
,
p
++
;
for
(;
p
<
bend
;
p
++
)
{
if
(
lbraces
)
{
/* Search the terminating brace */
switch
(
*
p
)
{
case
'}'
:
lbraces
--
;
break
;
case
'{'
:
lbraces
++
;
break
;
}
}
else
if
(
isspace
(
*
p
))
{
break
;
}
}
if
(
lbraces
)
{
FATAL
(
"Field reference %s found in class value definition for %s at line %d can not be satisfied by broken value
\"
%s
\"
"
,
chunk
->
content
.
token
,
arg
->
expr
->
Identifier
,
arg
->
expr
->
_lineno
,
buf
);
if
(
newpos
)
*
newpos
=
buf
;
return
-
1
;
}
cell
=
asn1p_ioc_row_cell_fetch
(
row
,
chunk
->
content
.
token
);
if
(
cell
==
NULL
)
{
FATAL
(
"Field reference %s found in WITH SYNAX {} clause does not match actual field in Object Class %s"
,
chunk
->
content
.
token
,
eclass
->
Identifier
,
eclass
->
_lineno
);
if
(
newpos
)
*
newpos
=
buf
;
return
-
1
;
}
DEBUG
(
"Reference %s satisfied by %s (%d)"
,
chunk
->
content
.
token
,
buf
,
p
-
buf
);
ret
=
_asn1f_assign_cell_value
(
arg
,
row
,
cell
,
buf
,
p
);
if
(
ret
)
{
if
(
newpos
)
*
newpos
=
buf
;
return
ret
;
}
buf
=
p
;
}
break
;
case
WC_OPTIONALGROUP
:
{
uint8_t
*
np
=
0
;
SKIPSPACES
;
ret
=
_asn1f_parse_class_object_data
(
arg
,
eclass
,
row
,
chunk
->
content
.
syntax
,
buf
,
bend
,
1
,
&
np
);
if
(
newpos
)
*
newpos
=
np
;
if
(
ret
&&
np
!=
buf
)
return
ret
;
}
break
;
}
}
DEBUG
(
"Class %s: checking WITH SYNTAX"
,
expr
->
Identifier
);
if
(
newpos
)
*
newpos
=
buf
;
return
0
;
}
static
int
_asn1f_assign_cell_value
(
arg_t
*
arg
,
struct
asn1p_ioc_row_s
*
row
,
struct
asn1p_ioc_cell_s
*
cell
,
uint8_t
*
buf
,
const
uint8_t
*
bend
)
{
asn1p_expr_t
*
expr
;
asn1p_ref_t
*
ref
;
char
*
p
;
if
((
bend
-
buf
)
<=
0
)
{
FATAL
(
"Assignment warning: empty string is being assigned into %s for %s at line %d"
,
cell
->
field
->
Identifier
,
arg
->
expr
->
Identifier
,
arg
->
expr
->
_lineno
);
return
-
1
;
}
p
=
malloc
(
bend
-
buf
+
1
);
assert
(
p
);
memcpy
(
p
,
buf
,
bend
-
buf
);
p
[
bend
-
buf
]
=
'\0'
;
if
(
!
isalpha
(
*
p
))
{
if
(
isdigit
(
*
p
))
{
asn1c_integer_t
value
;
if
(
asn1p_atoi
(
p
,
&
value
))
{
FATAL
(
"Value %s at line %d is too large for this compiler! Please contact the asn1c author.
\n
"
,
p
,
arg
->
expr
->
_lineno
);
return
-
1
;
}
expr
=
asn1p_expr_new
(
arg
->
expr
->
_lineno
);
expr
->
Identifier
=
p
;
expr
->
meta_type
=
AMT_VALUE
;
expr
->
expr_type
=
ASN_BASIC_INTEGER
;
expr
->
value
=
asn1p_value_fromint
(
value
);
}
else
{
WARNING
(
"asn1c is not yet able to parse arbitrary direct values; please convert %s at line %d to a reference."
,
p
,
arg
->
expr
->
_lineno
);
free
(
p
);
return
1
;
}
}
else
{
ref
=
asn1p_ref_new
(
arg
->
expr
->
_lineno
);
asn1p_ref_add_component
(
ref
,
p
,
RLT_UNKNOWN
);
assert
(
ref
);
expr
=
asn1f_lookup_symbol
(
arg
,
arg
->
mod
,
ref
);
if
(
!
expr
)
{
FATAL
(
"Cannot find %s referenced by %s at line %d"
,
p
,
arg
->
expr
->
Identifier
,
arg
->
expr
->
_lineno
);
return
-
1
;
}
}
DEBUG
(
"Field %s assignment of %s got %s"
,
cell
->
field
->
Identifier
,
p
,
expr
->
Identifier
);
cell
->
value
=
expr
;
if
(
row
->
max_identifier_length
<
strlen
(
expr
->
Identifier
))
row
->
max_identifier_length
=
strlen
(
expr
->
Identifier
);
return
0
;
}
libasn1fix/asn1fix_cws.h
View file @
d370e9f5
...
...
@@ -2,9 +2,8 @@
#define _ASN1FIX_CLASS_WITH_SYNTAX_H_
/*
* CLASS may contain the "WITH SYNTAX" clause, in which case we are
* going to parse it.
* Parse class objects
*/
int
asn1f_parse_class_
with_syntax
(
arg_t
*
arg
);
int
asn1f_parse_class_
object
(
arg_t
*
arg
);
#endif
/* _ASN1FIX_CLASS_WITH_SYNTAX_H_ */
libasn1parser/asn1p_class.c
View file @
d370e9f5
...
...
@@ -6,6 +6,61 @@
#include "asn1parser.h"
asn1p_ioc_row_t
*
asn1p_ioc_row_new
(
asn1p_expr_t
*
oclass
)
{
asn1p_ioc_row_t
*
row
;
asn1p_expr_t
*
field
;
int
columns
=
0
;
assert
(
oclass
->
expr_type
==
A1TC_CLASSDEF
);
row
=
calloc
(
1
,
sizeof
*
row
);
if
(
!
row
)
return
NULL
;
TQ_FOR
(
field
,
&
oclass
->
members
,
next
)
columns
++
;
row
->
column
=
calloc
(
columns
,
sizeof
*
row
->
column
);
if
(
!
row
->
column
)
{
free
(
row
);
return
NULL
;
}
row
->
columns
=
columns
;
columns
=
0
;
TQ_FOR
(
field
,
&
oclass
->
members
,
next
)
{
int
fieldIdLen
=
strlen
(
field
->
Identifier
);
if
(
fieldIdLen
>
row
->
max_identifier_length
)
row
->
max_identifier_length
=
fieldIdLen
;
row
->
column
[
columns
].
field
=
field
;
row
->
column
[
columns
].
value
=
NULL
;
columns
++
;
}
return
row
;
}
void
asn1p_ioc_row_delete
(
asn1p_ioc_row_t
*
row
)
{
if
(
row
)
{
if
(
row
->
column
)
{
free
(
row
->
column
);
}
free
(
row
);
}
}
struct
asn1p_ioc_cell_s
*
asn1p_ioc_row_cell_fetch
(
asn1p_ioc_row_t
*
row
,
const
char
*
fieldname
)
{
int
i
;
for
(
i
=
0
;
i
<
row
->
columns
;
i
++
)
{
if
(
strcmp
(
row
->
column
[
i
].
field
->
Identifier
,
fieldname
)
==
0
)
return
&
row
->
column
[
i
];
}
errno
=
ESRCH
;
return
NULL
;
}
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_new
()
{
asn1p_wsyntx_chunk_t
*
wc
;
...
...
@@ -21,8 +76,8 @@ asn1p_wsyntx_chunk_free(asn1p_wsyntx_chunk_t *wc) {
switch
(
wc
->
type
)
{
case
WC_LITERAL
:
case
WC_WHITESPACE
:
case
WC_FIELD
:
free
(
wc
->
content
.
token
);
break
;
case
WC_REFERENCE
:
asn1p_ref_free
(
wc
->
content
.
ref
);
break
;
case
WC_OPTIONALGROUP
:
asn1p_wsyntx_free
(
wc
->
content
.
syntax
);
break
;
...
...
@@ -41,12 +96,10 @@ asn1p_wsyntx_chunk_clone(asn1p_wsyntx_chunk_t *wc) {
switch
(
wc
->
type
)
{
case
WC_LITERAL
:
case
WC_WHITESPACE
:
case
WC_FIELD
:
nc
->
content
.
token
=
malloc
(
strlen
(
wc
->
content
.
token
)
+
1
);
strcpy
(
nc
->
content
.
token
,
wc
->
content
.
token
);
break
;
case
WC_REFERENCE
:
nc
->
content
.
ref
=
asn1p_ref_clone
(
wc
->
content
.
ref
);
break
;
case
WC_OPTIONALGROUP
:
nc
->
content
.
syntax
=
asn1p_wsyntx_clone
(
wc
->
content
.
syntax
);
break
;
...
...
@@ -100,26 +153,6 @@ asn1p_wsyntx_clone(asn1p_wsyntx_t *wx) {
return
nw
;
}
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_fromref
(
asn1p_ref_t
*
ref
,
int
do_copy
)
{
asn1p_wsyntx_chunk_t
*
wc
;
if
(
do_copy
)
{
static
asn1p_wsyntx_chunk_t
tmp
;
tmp
.
type
=
WC_REFERENCE
;
tmp
.
content
.
ref
=
ref
;
wc
=
asn1p_wsyntx_chunk_clone
(
&
tmp
);
}
else
{
wc
=
asn1p_wsyntx_chunk_new
();
if
(
wc
)
{
wc
->
type
=
WC_REFERENCE
;
wc
->
content
.
ref
=
ref
;
}
}
return
wc
;
}
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_frombuf
(
char
*
buf
,
int
len
,
int
do_copy
)
{
asn1p_wsyntx_chunk_t
*
wc
;
...
...
libasn1parser/asn1p_class.h
View file @
d370e9f5
...
...
@@ -6,6 +6,22 @@
#include "asn1p_ref.h"
struct
asn1p_expr_s
;
/* Forward declaration */
typedef
struct
asn1p_ioc_row_s
{
struct
asn1p_ioc_cell_s
{
struct
asn1p_expr_s
*
field
;
/* may never be NULL */
struct
asn1p_expr_s
*
value
;
/* may be left uninitialized */
}
*
column
;
int
columns
;
int
max_identifier_length
;
}
asn1p_ioc_row_t
;
asn1p_ioc_row_t
*
asn1p_ioc_row_new
(
struct
asn1p_expr_s
*
oclass
);
void
asn1p_ioc_row_delete
(
asn1p_ioc_row_t
*
);
struct
asn1p_ioc_cell_s
*
asn1p_ioc_row_cell_fetch
(
asn1p_ioc_row_t
*
,
const
char
*
fieldname
);
/*
* WITH SYNTAX free-form chunks.
*/
...
...
@@ -13,18 +29,17 @@ typedef struct asn1p_wsyntx_chunk_s {
enum
{
WC_LITERAL
,
WC_WHITESPACE
,
WC_
REFERENCE
,
WC_
FIELD
,
WC_OPTIONALGROUP
}
type
;
/*
* WC_LITERAL -> {token}
* WC_WHITESPACE -> {token}
* WC_
REFERENCE -> {ref
}
* WC_
FIELD -> {token
}
* WC_OPTIONALGROUP -> {syntax}
*/
union
{
char
*
token
;
asn1p_ref_t
*
ref
;
struct
asn1p_wsyntx_s
*
syntax
;
}
content
;
...
...
@@ -54,7 +69,6 @@ asn1p_wsyntx_t *asn1p_wsyntx_clone(asn1p_wsyntx_t *);
* 0: Component has been added
* -1: Failure to add component (refer to errno)
*/
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_fromref
(
asn1p_ref_t
*
ref
,
int
do_copy
);
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_frombuf
(
char
*
buf
,
int
len
,
int
_copy
);
asn1p_wsyntx_chunk_t
*
asn1p_wsyntx_chunk_fromsyntax
(
asn1p_wsyntx_t
*
syntax
);
...
...
libasn1parser/asn1p_expr.h
View file @
d370e9f5
...
...
@@ -163,6 +163,13 @@ typedef struct asn1p_expr_s {
*/
asn1p_wsyntx_t
*
with_syntax
;
/* Information Object Class matrix, specific for this class */
struct
asn1p_ioc_matrix_s
{
asn1p_ioc_row_t
**
row
;
int
rows
;
int
max_identifier_length
;
}
object_class_matrix
;
/*
* A tag.
*/
...
...
libasn1parser/asn1p_l.c
View file @
d370e9f5
...
...
@@ -1763,21 +1763,21 @@ int yy_flex_debug = 1;
static
yyconst
short
int
yy_rule_linenum
[
137
]
=
{
0
,
9
4
,
95
,
97
,
100
,
102
,
105
,
107
,
108
,
109
,
112
,
11
4
,
115
,
116
,
128
,
135
,
142
,
148
,
157
,
165
,
173
,
17
4
,
176
,
195
,
201
,
202
,
203
,
204
,
205
,
208
,
214
,
22
1
,
228
,
235
,
242
,
243
,
244
,
252
,
253
,
254
,
255
,
25
6
,
261
,
262
,
263
,
264
,
265
,
266
,
267
,
268
,
269
,
27
0
,
271
,
280
,
281
,
282
,
283
,
284
,
285
,
286
,
287
,
28
8
,
289
,
290
,
291
,
292
,
293
,
294
,
295
,
296
,
297
,
29
8
,
299
,
300
,
301
,
302
,
303
,
304
,
305
,
306
,
307
,
30
8
,
309
,
310
,
311
,
312
,
313
,
314
,
315
,
316
,
317
,
31
8
,
319
,
320
,
321
,
322
,
323
,
324
,
325
,
326
,
327
,
32
8
,
329
,
330
,
331
,
332
,
333
,
334
,
335
,
336
,
337
,
34
2
,
343
,
348
,
349
,
350
,
353
,
358
,
364
,
372
,
382
,
38
7
,
389
,
390
,
394
,
399
,
404
,
410
,
411
,
413
,
419
,
43
2
,
435
,
460
,
504
,
506
,
517
9
5
,
96
,
98
,
101
,
103
,
106
,
108
,
109
,
110
,
113
,
11
5
,
116
,
117
,
129
,
136
,
143
,
149
,
158
,
166
,
174
,
17
5
,
177
,
196
,
202
,
203
,
204
,
205
,
206
,
209
,
215
,
22
2
,
229
,
236
,
243
,
244
,
245
,
253
,
254
,
255
,
256
,
25
7
,
262
,
263
,
264
,
265
,
266
,
267
,
268
,
269
,
270
,
27
1
,
272
,
281
,
282
,
283
,
284
,
285
,
286
,
287
,
288
,
28
9
,
290
,
291
,
292
,
293
,
294
,
295
,
296
,
297
,
298
,
29
9
,
300
,
301
,
302
,
303
,
304
,
305
,
306
,
307
,
308
,
30
9
,
310
,
311
,
312
,
313
,
314
,
315
,
316
,
317
,
318
,
31
9
,
320
,
321
,
322
,
323
,
324
,
325
,
326
,
327
,
328
,
32
9
,
330
,
331
,
332
,
333
,
334
,
335
,
336
,
337
,
338
,
34
3
,
344
,
349
,
350
,
351
,
354
,
359
,
365
,
373
,
383
,
38
8
,
390
,
391
,
395
,
400
,
405
,
411
,
412
,
414
,
420
,
43
3
,
436
,
461
,
505
,
507
,
518
}
;
static
yy_state_type
yy_state_buf
[
YY_BUF_SIZE
+
2
],
*
yy_state_ptr
;
...
...
@@ -1821,10 +1821,11 @@ void asn1p_lexer_hack_push_encoding_control(void); /* Used in .y */
int
asn1p_lexer_pedantic_1990
=
0
;
int
asn1p_lexer_types_year
=
0
;
int
asn1p_lexer_constructs_year
=
0
;
static
asn1c_integer_t
asn1p_atoi
(
char
*
ptr
);
/* errno is either 0 or ERANGE */
int
asn1p_as_pointer
;
static
asn1c_integer_t
_lex_atoi
(
const
char
*
ptr
);
/*
* Check that the type is defined in the year of the standard choosen.
*/
...
...
@@ -1883,7 +1884,7 @@ int asn1p_as_pointer;
/* Newline */
/* White-space */
#line 188
7
"asn1p_l.c"
#line 188
8
"asn1p_l.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
...
...
@@ -2034,10 +2035,10 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
#line 9
2
"asn1p_l.l"
#line 9
3
"asn1p_l.l"
#line 204
1
"asn1p_l.c"
#line 204
2
"asn1p_l.c"
if
(
yy_init
)
{
...
...
@@ -2148,7 +2149,7 @@ case 1:
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
#line 9
4
"asn1p_l.l"
#line 9
5
"asn1p_l.l"
/* Immediately terminated long comment */
YY_BREAK
case
2
:
...
...
@@ -2156,67 +2157,67 @@ case 2:
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
#line 9
5
"asn1p_l.l"
#line 9
6
"asn1p_l.l"
yy_push_state
(
idash_comment
);
/* Incorrect, but acceptable */
YY_BREAK
case
3
:
YY_RULE_SETUP
#line 9
7
"asn1p_l.l"
#line 9
8
"asn1p_l.l"
yy_pop_state
();
/* Acceptable end of comment */
YY_BREAK
case
4
:
YY_RULE_SETUP
#line 10
0
"asn1p_l.l"
#line 10
1
"asn1p_l.l"
asn1p_as_pointer
=
1
;
YY_BREAK
case
5
:
YY_RULE_SETUP
#line 10
2
"asn1p_l.l"
#line 10
3
"asn1p_l.l"
yy_push_state
(
dash_comment
);
YY_BREAK
case
6
:
YY_RULE_SETUP
#line 10
5
"asn1p_l.l"
#line 10
6
"asn1p_l.l"
yy_pop_state
();
YY_BREAK
case
7
:
YY_RULE_SETUP
#line 10
7
"asn1p_l.l"
#line 10
8
"asn1p_l.l"
yy_pop_state
();
/* End of comment */
YY_BREAK
case
8
:
YY_RULE_SETUP
#line 10
8
"asn1p_l.l"
#line 10
9
"asn1p_l.l"
/* Eat single dash */
YY_BREAK
case
9
:
YY_RULE_SETUP
#line 1
09
"asn1p_l.l"
#line 1
10
"asn1p_l.l"
/* Eat */
YY_BREAK
case
10
:
YY_RULE_SETUP
#line 11
2
"asn1p_l.l"
#line 11
3
"asn1p_l.l"
yy_push_state
(
cpp_comment
);
YY_BREAK
case
11
:
YY_RULE_SETUP
#line 11
4
"asn1p_l.l"
#line 11
5
"asn1p_l.l"
/* Eat */
YY_BREAK
case
12
:
YY_RULE_SETUP
#line 11
5
"asn1p_l.l"
#line 11
6
"asn1p_l.l"
yy_pop_state
();
YY_BREAK
case
13
:
YY_RULE_SETUP
#line 11
6
"asn1p_l.l"
#line 11
7
"asn1p_l.l"
/* Eat */
YY_BREAK
...
...
@@ -2229,7 +2230,7 @@ YY_RULE_SETUP
case
14
:
YY_RULE_SETUP
#line 12
8
"asn1p_l.l"
#line 12
9
"asn1p_l.l"
{
yy_push_state
(
opaque
);
asn1p_lval
.
tv_opaque
.
buf
=
strdup
(
yytext
);
...
...
@@ -2239,7 +2240,7 @@ YY_RULE_SETUP
YY_BREAK
case
15
:
YY_RULE_SETUP
#line 13
5
"asn1p_l.l"
#line 13
6
"asn1p_l.l"
{
yy_pop_state
();
asn1p_lval
.
tv_opaque
.
buf
=
strdup
(
yytext
);
...
...
@@ -2249,7 +2250,7 @@ YY_RULE_SETUP
YY_BREAK
case
16
:
YY_RULE_SETUP
#line 14
2
"asn1p_l.l"
#line 14
3
"asn1p_l.l"
{
asn1p_lval
.
tv_opaque
.
buf
=
strdup
(
yytext
);
asn1p_lval
.
tv_opaque
.
len
=
yyleng
;
...
...
@@ -2258,7 +2259,7 @@ YY_RULE_SETUP
YY_BREAK
case
17
:
YY_RULE_SETUP
#line 14
8
"asn1p_l.l"
#line 14
9
"asn1p_l.l"
{
fprintf
(
stderr
,
"ASN.1 Parser syncronization failure: "
...
...
@@ -2270,7 +2271,7 @@ YY_RULE_SETUP
YY_BREAK
case
18
:
YY_RULE_SETUP
#line 15
7
"asn1p_l.l"
#line 15
8
"asn1p_l.l"
{
asn1p_lval
.
tv_opaque
.
buf
=
strdup
(
yytext
);
asn1p_lval
.
tv_opaque
.
len
=
yyleng
;
...
...
@@ -2280,7 +2281,7 @@ YY_RULE_SETUP
case
19
:
YY_RULE_SETUP
#line 16
5
"asn1p_l.l"
#line 16
6
"asn1p_l.l"
{
asn1p_lval
.
tv_opaque
.
buf
=
0
;
asn1p_lval
.
tv_opaque
.
len
=
0
;
...
...
@@ -2291,17 +2292,17 @@ YY_RULE_SETUP
case
20
:
YY_RULE_SETUP
#line 17
3
"asn1p_l.l"
#line 17
4
"asn1p_l.l"
{
QAPPEND
(
yytext
,
yyleng
-
1
);
}
/* Add a single quote */
YY_BREAK
case
21
:
YY_RULE_SETUP
#line 17
4
"asn1p_l.l"
#line 17
5
"asn1p_l.l"
{
QAPPEND
(
yytext
,
yyleng
);
}
YY_BREAK
case
22
:
YY_RULE_SETUP
#line 17
6
"asn1p_l.l"
#line 17
7
"asn1p_l.l"
{
yy_pop_state
();
/* Do not append last quote:
...
...
@@ -2322,7 +2323,7 @@ YY_RULE_SETUP
case
23
:
YY_RULE_SETUP
#line 19
5
"asn1p_l.l"
#line 19
6
"asn1p_l.l"
{
const
char
*
s
=
"ENCODING-CONTROL"
;
const
char
*
p
=
s
+
sizeof
(
"ENCODING-CONTROL"
)
-
2
;
...
...
@@ -2332,33 +2333,33 @@ YY_RULE_SETUP
YY_BREAK
case
24
:
YY_RULE_SETUP
#line 20
1
"asn1p_l.l"
#line 20
2
"asn1p_l.l"
unput
(
'D'
);
unput
(
'N'
);
unput
(
'E'
);
yy_pop_state
();
YY_BREAK
case
25
:
YY_RULE_SETUP
#line 20
2
"asn1p_l.l"
#line 20
3
"asn1p_l.l"
YY_BREAK
case
26
:
YY_RULE_SETUP
#line 20
3
"asn1p_l.l"
#line 20
4
"asn1p_l.l"
YY_BREAK
case
27
:
YY_RULE_SETUP
#line 20
4
"asn1p_l.l"
#line 20
5
"asn1p_l.l"
/* Eat everything else */
YY_BREAK
case
28
:
YY_RULE_SETUP
#line 20
5
"asn1p_l.l"
#line 20
6
"asn1p_l.l"
YY_BREAK
case
29
:
YY_RULE_SETUP
#line 20
8
"asn1p_l.l"
#line 20
9
"asn1p_l.l"
{
/* " \t\r\n" weren't allowed in ASN.1:1990. */
asn1p_lval
.
tv_str
=
yytext
;
...
...
@@ -2367,7 +2368,7 @@ YY_RULE_SETUP
YY_BREAK
case
30
:
YY_RULE_SETUP
#line 21
4
"asn1p_l.l"
#line 21
5
"asn1p_l.l"
{
/* " \t\r\n" weren't allowed in ASN.1:1990. */
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
...
...
@@ -2376,9 +2377,9 @@ YY_RULE_SETUP
YY_BREAK
case
31
:
YY_RULE_SETUP
#line 22
1
"asn1p_l.l"
#line 22
2
"asn1p_l.l"
{
asn1p_lval
.
a_int
=
asn1p
_atoi
(
yytext
);
asn1p_lval
.
a_int
=
_lex
_atoi
(
yytext
);
if
(
errno
==
ERANGE
)
return
-
1
;
return
TOK_number_negative
;
...
...
@@ -2386,9 +2387,9 @@ YY_RULE_SETUP
YY_BREAK
case
32
:
YY_RULE_SETUP
#line 22
8
"asn1p_l.l"
#line 22
9
"asn1p_l.l"
{
asn1p_lval
.
a_int
=
asn1p
_atoi
(
yytext
);
asn1p_lval
.
a_int
=
_lex
_atoi
(
yytext
);
if
(
errno
==
ERANGE
)
return
-
1
;
return
TOK_number
;
...
...
@@ -2396,9 +2397,9 @@ YY_RULE_SETUP
YY_BREAK
case
33
:
YY_RULE_SETUP
#line 23
5
"asn1p_l.l"
#line 23
6
"asn1p_l.l"
{
asn1p_lval
.
a_int
=
asn1p
_atoi
(
yytext
);
asn1p_lval
.
a_int
=
_lex
_atoi
(
yytext
);
if
(
errno
==
ERANGE
)
return
-
1
;
return
TOK_number
;
...
...
@@ -2406,17 +2407,17 @@ YY_RULE_SETUP
YY_BREAK
case
34
:
YY_RULE_SETUP
#line 24
2
"asn1p_l.l"
#line 24
3
"asn1p_l.l"
return
TOK_ABSENT
;
YY_BREAK
case
35
:
YY_RULE_SETUP
#line 24
3
"asn1p_l.l"
#line 24
4
"asn1p_l.l"
return
TOK_ALL
;
YY_BREAK
case
36
:
YY_RULE_SETUP
#line 24
4
"asn1p_l.l"
#line 24
5
"asn1p_l.l"
{
/* Appeared in 1990, removed in 1997 */
if
(
TYPE_LIFETIME
(
1990
,
1997
))
...
...
@@ -2428,27 +2429,27 @@ YY_RULE_SETUP
YY_BREAK
case
37
:
YY_RULE_SETUP
#line 25
2
"asn1p_l.l"
#line 25
3
"asn1p_l.l"
return
TOK_APPLICATION
;
YY_BREAK
case
38
:
YY_RULE_SETUP
#line 25
3
"asn1p_l.l"
#line 25
4
"asn1p_l.l"
return
TOK_AUTOMATIC
;
YY_BREAK
case
39
:
YY_RULE_SETUP
#line 25
4
"asn1p_l.l"
#line 25
5
"asn1p_l.l"
return
TOK_BEGIN
;
YY_BREAK
case
40
:
YY_RULE_SETUP
#line 25
5
"asn1p_l.l"
#line 25
6
"asn1p_l.l"
return
TOK_BIT
;
YY_BREAK
case
41
:
YY_RULE_SETUP
#line 25
6
"asn1p_l.l"
#line 25
7
"asn1p_l.l"
{
if
(
TYPE_LIFETIME
(
1994
,
0
))
return
TOK_BMPString
;
...
...
@@ -2457,57 +2458,57 @@ YY_RULE_SETUP
YY_BREAK
case
42
:
YY_RULE_SETUP
#line 26
1
"asn1p_l.l"
#line 26
2
"asn1p_l.l"
return
TOK_BOOLEAN
;
YY_BREAK
case
43
:
YY_RULE_SETUP
#line 26
2
"asn1p_l.l"
#line 26
3
"asn1p_l.l"
return
TOK_BY
;
YY_BREAK
case
44
:
YY_RULE_SETUP
#line 26
3
"asn1p_l.l"
#line 26
4
"asn1p_l.l"
return
TOK_CHARACTER
;
YY_BREAK
case
45
:
YY_RULE_SETUP
#line 26
4
"asn1p_l.l"
#line 26
5
"asn1p_l.l"
return
TOK_CHOICE
;
YY_BREAK
case
46
:
YY_RULE_SETUP
#line 26
5
"asn1p_l.l"
#line 26
6
"asn1p_l.l"
return
TOK_CLASS
;
YY_BREAK
case
47
:
YY_RULE_SETUP
#line 26
6
"asn1p_l.l"
#line 26
7
"asn1p_l.l"
return
TOK_COMPONENT
;
YY_BREAK
case
48
:
YY_RULE_SETUP
#line 26
7
"asn1p_l.l"
#line 26
8
"asn1p_l.l"
return
TOK_COMPONENTS
;
YY_BREAK
case
49
:
YY_RULE_SETUP
#line 26
8
"asn1p_l.l"
#line 26
9
"asn1p_l.l"
return
TOK_CONSTRAINED
;
YY_BREAK
case
50
:
YY_RULE_SETUP
#line 2
69
"asn1p_l.l"
#line 2
70
"asn1p_l.l"
return
TOK_CONTAINING
;
YY_BREAK
case
51
:
YY_RULE_SETUP
#line 27
0
"asn1p_l.l"
#line 27
1
"asn1p_l.l"
return
TOK_DEFAULT
;
YY_BREAK
case
52
:
YY_RULE_SETUP
#line 27
1
"asn1p_l.l"
#line 27
2
"asn1p_l.l"
{
/* Appeared in 1990, removed in 1997 */
if
(
TYPE_LIFETIME
(
1990
,
1997
))
...
...
@@ -2520,292 +2521,292 @@ YY_RULE_SETUP
YY_BREAK
case
53
:
YY_RULE_SETUP
#line 28
0
"asn1p_l.l"
#line 28
1
"asn1p_l.l"
return
TOK_DEFINITIONS
;
YY_BREAK
case
54
:
YY_RULE_SETUP
#line 28
1
"asn1p_l.l"
#line 28
2
"asn1p_l.l"
return
TOK_EMBEDDED
;
YY_BREAK
case
55
:
YY_RULE_SETUP
#line 28
2
"asn1p_l.l"
#line 28
3
"asn1p_l.l"
return
TOK_ENCODED
;
YY_BREAK
case
56
:
YY_RULE_SETUP
#line 28
3
"asn1p_l.l"
#line 28
4
"asn1p_l.l"
return
TOK_ENCODING_CONTROL
;
YY_BREAK
case
57
:
YY_RULE_SETUP
#line 28
4
"asn1p_l.l"
#line 28
5
"asn1p_l.l"
return
TOK_END
;
YY_BREAK
case
58
:
YY_RULE_SETUP
#line 28
5
"asn1p_l.l"
#line 28
6
"asn1p_l.l"
return
TOK_ENUMERATED
;
YY_BREAK
case
59
:
YY_RULE_SETUP
#line 28
6
"asn1p_l.l"
#line 28
7
"asn1p_l.l"
return
TOK_EXCEPT
;
YY_BREAK
case
60
:
YY_RULE_SETUP
#line 28
7
"asn1p_l.l"
#line 28
8
"asn1p_l.l"
return
TOK_EXPLICIT
;
YY_BREAK
case
61
:
YY_RULE_SETUP
#line 28
8
"asn1p_l.l"
#line 28
9
"asn1p_l.l"
return
TOK_EXPORTS
;
YY_BREAK
case
62
:
YY_RULE_SETUP
#line 2
89
"asn1p_l.l"
#line 2
90
"asn1p_l.l"
return
TOK_EXTENSIBILITY
;
YY_BREAK
case
63
:
YY_RULE_SETUP
#line 29
0
"asn1p_l.l"
#line 29
1
"asn1p_l.l"
return
TOK_EXTERNAL
;
YY_BREAK
case
64
:
YY_RULE_SETUP
#line 29
1
"asn1p_l.l"
#line 29
2
"asn1p_l.l"
return
TOK_FALSE
;
YY_BREAK
case
65
:
YY_RULE_SETUP
#line 29
2
"asn1p_l.l"
#line 29
3
"asn1p_l.l"
return
TOK_FROM
;
YY_BREAK
case
66
:
YY_RULE_SETUP
#line 29
3
"asn1p_l.l"
#line 29
4
"asn1p_l.l"
return
TOK_GeneralizedTime
;
YY_BREAK
case
67
:
YY_RULE_SETUP
#line 29
4
"asn1p_l.l"
#line 29
5
"asn1p_l.l"
return
TOK_GeneralString
;
YY_BREAK
case
68
:
YY_RULE_SETUP
#line 29
5
"asn1p_l.l"
#line 29
6
"asn1p_l.l"
return
TOK_GraphicString
;
YY_BREAK
case
69
:
YY_RULE_SETUP
#line 29
6
"asn1p_l.l"
#line 29
7
"asn1p_l.l"
return
TOK_IA5String
;
YY_BREAK
case
70
:
YY_RULE_SETUP
#line 29
7
"asn1p_l.l"
#line 29
8
"asn1p_l.l"
return
TOK_IDENTIFIER
;
YY_BREAK
case
71
:
YY_RULE_SETUP
#line 29
8
"asn1p_l.l"
#line 29
9
"asn1p_l.l"
return
TOK_IMPLICIT
;
YY_BREAK
case
72
:
YY_RULE_SETUP
#line
299
"asn1p_l.l"
#line
300
"asn1p_l.l"
return
TOK_IMPLIED
;
YY_BREAK
case
73
:
YY_RULE_SETUP
#line 30
0
"asn1p_l.l"
#line 30
1
"asn1p_l.l"
return
TOK_IMPORTS
;
YY_BREAK
case
74
:
YY_RULE_SETUP
#line 30
1
"asn1p_l.l"
#line 30
2
"asn1p_l.l"
return
TOK_INCLUDES
;
YY_BREAK
case
75
:
YY_RULE_SETUP
#line 30
2
"asn1p_l.l"
#line 30
3
"asn1p_l.l"
return
TOK_INSTANCE
;
YY_BREAK
case
76
:
YY_RULE_SETUP
#line 30
3
"asn1p_l.l"
#line 30
4
"asn1p_l.l"
return
TOK_INSTRUCTIONS
;
YY_BREAK
case
77
:
YY_RULE_SETUP
#line 30
4
"asn1p_l.l"
#line 30
5
"asn1p_l.l"
return
TOK_INTEGER
;
YY_BREAK
case
78
:
YY_RULE_SETUP
#line 30
5
"asn1p_l.l"
#line 30
6
"asn1p_l.l"
return
TOK_INTERSECTION
;
YY_BREAK
case
79
:
YY_RULE_SETUP
#line 30
6
"asn1p_l.l"
#line 30
7
"asn1p_l.l"
return
TOK_ISO646String
;
YY_BREAK
case
80
:
YY_RULE_SETUP
#line 30
7
"asn1p_l.l"
#line 30
8
"asn1p_l.l"
return
TOK_MAX
;
YY_BREAK
case
81
:
YY_RULE_SETUP
#line 30
8
"asn1p_l.l"
#line 30
9
"asn1p_l.l"
return
TOK_MIN
;
YY_BREAK
case
82
:
YY_RULE_SETUP
#line 3
09
"asn1p_l.l"
#line 3
10
"asn1p_l.l"
return
TOK_MINUS_INFINITY
;
YY_BREAK
case
83
:
YY_RULE_SETUP
#line 31
0
"asn1p_l.l"
#line 31
1
"asn1p_l.l"
return
TOK_NULL
;
YY_BREAK
case
84
:
YY_RULE_SETUP
#line 31
1
"asn1p_l.l"
#line 31
2
"asn1p_l.l"
return
TOK_NumericString
;
YY_BREAK
case
85
:
YY_RULE_SETUP
#line 31
2
"asn1p_l.l"
#line 31
3
"asn1p_l.l"
return
TOK_OBJECT
;
YY_BREAK
case
86
:
YY_RULE_SETUP
#line 31
3
"asn1p_l.l"
#line 31
4
"asn1p_l.l"
return
TOK_ObjectDescriptor
;
YY_BREAK
case
87
:
YY_RULE_SETUP
#line 31
4
"asn1p_l.l"
#line 31
5
"asn1p_l.l"
return
TOK_OCTET
;
YY_BREAK
case
88
:
YY_RULE_SETUP
#line 31
5
"asn1p_l.l"
#line 31
6
"asn1p_l.l"
return
TOK_OF
;
YY_BREAK
case
89
:
YY_RULE_SETUP
#line 31
6
"asn1p_l.l"
#line 31
7
"asn1p_l.l"
return
TOK_OPTIONAL
;
YY_BREAK
case
90
:
YY_RULE_SETUP
#line 31
7
"asn1p_l.l"
#line 31
8
"asn1p_l.l"
return
TOK_PATTERN
;
YY_BREAK
case
91
:
YY_RULE_SETUP
#line 31
8
"asn1p_l.l"
#line 31
9
"asn1p_l.l"
return
TOK_PDV
;
YY_BREAK
case
92
:
YY_RULE_SETUP
#line 3
19
"asn1p_l.l"
#line 3
20
"asn1p_l.l"
return
TOK_PLUS_INFINITY
;
YY_BREAK
case
93
:
YY_RULE_SETUP
#line 32
0
"asn1p_l.l"
#line 32
1
"asn1p_l.l"
return
TOK_PRESENT
;
YY_BREAK
case
94
:
YY_RULE_SETUP
#line 32
1
"asn1p_l.l"
#line 32
2
"asn1p_l.l"
return
TOK_PrintableString
;
YY_BREAK
case
95
:
YY_RULE_SETUP
#line 32
2
"asn1p_l.l"
#line 32
3
"asn1p_l.l"
return
TOK_PRIVATE
;
YY_BREAK
case
96
:
YY_RULE_SETUP
#line 32
3
"asn1p_l.l"
#line 32
4
"asn1p_l.l"
return
TOK_REAL
;
YY_BREAK
case
97
:
YY_RULE_SETUP
#line 32
4
"asn1p_l.l"
#line 32
5
"asn1p_l.l"
return
TOK_RELATIVE_OID
;
YY_BREAK
case
98
:
YY_RULE_SETUP
#line 32
5
"asn1p_l.l"
#line 32
6
"asn1p_l.l"
return
TOK_SEQUENCE
;
YY_BREAK
case
99
:
YY_RULE_SETUP
#line 32
6
"asn1p_l.l"
#line 32
7
"asn1p_l.l"
return
TOK_SET
;
YY_BREAK
case
100
:
YY_RULE_SETUP
#line 32
7
"asn1p_l.l"
#line 32
8
"asn1p_l.l"
return
TOK_SIZE
;
YY_BREAK
case
101
:
YY_RULE_SETUP
#line 32
8
"asn1p_l.l"
#line 32
9
"asn1p_l.l"
return
TOK_STRING
;
YY_BREAK
case
102
:
YY_RULE_SETUP
#line 3
29
"asn1p_l.l"
#line 3
30
"asn1p_l.l"
return
TOK_SYNTAX
;
YY_BREAK
case
103
:
YY_RULE_SETUP
#line 33
0
"asn1p_l.l"
#line 33
1
"asn1p_l.l"
return
TOK_T61String
;
YY_BREAK
case
104
:
YY_RULE_SETUP
#line 33
1
"asn1p_l.l"
#line 33
2
"asn1p_l.l"
return
TOK_TAGS
;
YY_BREAK
case
105
:
YY_RULE_SETUP
#line 33
2
"asn1p_l.l"
#line 33
3
"asn1p_l.l"
return
TOK_TeletexString
;
YY_BREAK
case
106
:
YY_RULE_SETUP
#line 33
3
"asn1p_l.l"
#line 33
4
"asn1p_l.l"
return
TOK_TRUE
;
YY_BREAK
case
107
:
YY_RULE_SETUP
#line 33
4
"asn1p_l.l"
#line 33
5
"asn1p_l.l"
return
TOK_UNION
;
YY_BREAK
case
108
:
YY_RULE_SETUP
#line 33
5
"asn1p_l.l"
#line 33
6
"asn1p_l.l"
return
TOK_UNIQUE
;
YY_BREAK
case
109
:
YY_RULE_SETUP
#line 33
6
"asn1p_l.l"
#line 33
7
"asn1p_l.l"
return
TOK_UNIVERSAL
;
YY_BREAK
case
110
:
YY_RULE_SETUP
#line 33
7
"asn1p_l.l"
#line 33
8
"asn1p_l.l"
{
if
(
TYPE_LIFETIME
(
1994
,
0
))
return
TOK_UniversalString
;
...
...
@@ -2814,12 +2815,12 @@ YY_RULE_SETUP
YY_BREAK
case
111
:
YY_RULE_SETUP
#line 34
2
"asn1p_l.l"
#line 34
3
"asn1p_l.l"
return
TOK_UTCTime
;
YY_BREAK
case
112
:
YY_RULE_SETUP
#line 34
3
"asn1p_l.l"
#line 34
4
"asn1p_l.l"
{
if
(
TYPE_LIFETIME
(
1994
,
0
))
return
TOK_UTF8String
;
...
...
@@ -2828,22 +2829,22 @@ YY_RULE_SETUP
YY_BREAK
case
113
:
YY_RULE_SETUP
#line 34
8
"asn1p_l.l"
#line 34
9
"asn1p_l.l"
return
TOK_VideotexString
;
YY_BREAK
case
114
:
YY_RULE_SETUP
#line 3
49
"asn1p_l.l"
#line 3
50
"asn1p_l.l"
return
TOK_VisibleString
;
YY_BREAK
case
115
:
YY_RULE_SETUP
#line 35
0
"asn1p_l.l"
#line 35
1
"asn1p_l.l"
return
TOK_WITH
;
YY_BREAK
case
116
:
YY_RULE_SETUP
#line 35
3
"asn1p_l.l"
#line 35
4
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_typefieldreference
;
...
...
@@ -2851,7 +2852,7 @@ YY_RULE_SETUP
YY_BREAK
case
117
:
YY_RULE_SETUP
#line 35
8
"asn1p_l.l"
#line 35
9
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_valuefieldreference
;
...
...
@@ -2859,7 +2860,7 @@ YY_RULE_SETUP
YY_BREAK
case
118
:
YY_RULE_SETUP
#line 36
4
"asn1p_l.l"
#line 36
5
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_identifier
;
...
...
@@ -2870,7 +2871,7 @@ YY_RULE_SETUP
*/
case
119
:
YY_RULE_SETUP
#line 37
2
"asn1p_l.l"
#line 37
3
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_capitalreference
;
...
...
@@ -2883,7 +2884,7 @@ YY_RULE_SETUP
*/
case
120
:
YY_RULE_SETUP
#line 38
2
"asn1p_l.l"
#line 38
3
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_typereference
;
...
...
@@ -2891,23 +2892,23 @@ YY_RULE_SETUP
YY_BREAK
case
121
:
YY_RULE_SETUP
#line 38
7
"asn1p_l.l"
#line 38
8
"asn1p_l.l"
return
TOK_PPEQ
;
YY_BREAK
case
122
:
YY_RULE_SETUP
#line 3
89
"asn1p_l.l"
#line 3
90
"asn1p_l.l"
return
TOK_ThreeDots
;
YY_BREAK
case
123
:
YY_RULE_SETUP
#line 39
0
"asn1p_l.l"
#line 39
1
"asn1p_l.l"
return
TOK_TwoDots
;
YY_BREAK
case
124
:
YY_RULE_SETUP
#line 39
4
"asn1p_l.l"
#line 39
5
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_Literal
;
...
...
@@ -2915,7 +2916,7 @@ YY_RULE_SETUP
YY_BREAK
case
125
:
YY_RULE_SETUP
#line
399
"asn1p_l.l"
#line
400
"asn1p_l.l"
{
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
return
TOK_Literal
;
...
...
@@ -2923,7 +2924,7 @@ YY_RULE_SETUP
YY_BREAK
case
126
:
YY_RULE_SETUP
#line 40
4
"asn1p_l.l"
#line 40
5
"asn1p_l.l"
{
yy_push_state
(
with_syntax
);
asn1p_lval
.
tv_str
=
strdup
(
yytext
);
...
...
@@ -2932,17 +2933,17 @@ YY_RULE_SETUP
YY_BREAK
case
127
:
YY_RULE_SETUP
#line 41
0
"asn1p_l.l"
#line 41
1
"asn1p_l.l"
return
'['
;
YY_BREAK
case
128
:
YY_RULE_SETUP
#line 41
1
"asn1p_l.l"
#line 41
2
"asn1p_l.l"
return
']'
;
YY_BREAK
case
129
:
YY_RULE_SETUP
#line 41
3
"asn1p_l.l"
#line 41
4
"asn1p_l.l"
{
asn1p_lval
.
tv_opaque
.
buf
=
strdup
(
yytext
);
asn1p_lval
.
tv_opaque
.
len
=
yyleng
;
...
...
@@ -2951,7 +2952,7 @@ YY_RULE_SETUP
YY_BREAK
case
130
:
YY_RULE_SETUP
#line 4
19
"asn1p_l.l"
#line 4
20
"asn1p_l.l"
{
yy_pop_state
();
if
(
YYSTATE
==
with_syntax
)
{
...
...
@@ -2965,21 +2966,21 @@ YY_RULE_SETUP
case
131
:
YY_RULE_SETUP
#line 43
2
"asn1p_l.l"
#line 43
3
"asn1p_l.l"
/* Ignore whitespace */
YY_BREAK
case
132
:
YY_RULE_SETUP
#line 43
5
"asn1p_l.l"
#line 43
6
"asn1p_l.l"
{
asn1c_integer_t
v1
=
-
1
,
v2
=
-
1
;
char
*
p
;
for
(
p
=
yytext
;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v1
=
asn1p
_atoi
(
p
);
break
;
}
{
v1
=
_lex
_atoi
(
p
);
break
;
}
while
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
p
++
;
/* Skip digits */
for
(;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v2
=
asn1p
_atoi
(
p
);
break
;
}
{
v2
=
_lex
_atoi
(
p
);
break
;
}
if
(
v1
<
0
||
v1
>
7
)
{
fprintf
(
stderr
,
"%s at line %d: X.680:2003, #37.14 "
"mandates 0..7 range for Tuple's TableColumn
\n
"
,
...
...
@@ -2998,22 +2999,22 @@ YY_RULE_SETUP
YY_BREAK
case
133
:
YY_RULE_SETUP
#line 46
0
"asn1p_l.l"
#line 46
1
"asn1p_l.l"
{
asn1c_integer_t
v1
=
-
1
,
v2
=
-
1
,
v3
=
-
1
,
v4
=
-
1
;
char
*
p
;
for
(
p
=
yytext
;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v1
=
asn1p
_atoi
(
p
);
break
;
}
{
v1
=
_lex
_atoi
(
p
);
break
;
}
while
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
p
++
;
/* Skip digits */
for
(;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v2
=
asn1p
_atoi
(
p
);
break
;
}
{
v2
=
_lex
_atoi
(
p
);
break
;
}
while
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
p
++
;
for
(;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v3
=
asn1p
_atoi
(
p
);
break
;
}
{
v3
=
_lex
_atoi
(
p
);
break
;
}
while
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
p
++
;
for
(;
*
p
;
p
++
)
if
(
*
p
>=
'0'
&&
*
p
<=
'9'
)
{
v4
=
asn1p
_atoi
(
p
);
break
;
}
{
v4
=
_lex
_atoi
(
p
);
break
;
}
if
(
v1
<
0
||
v1
>
127
)
{
fprintf
(
stderr
,
"%s at line %d: X.680:2003, #37.12 "
"mandates 0..127 range for Quadruple's Group
\n
"
,
...
...
@@ -3044,12 +3045,12 @@ YY_RULE_SETUP
YY_BREAK
case
134
:
YY_RULE_SETUP
#line 50
4
"asn1p_l.l"
#line 50
5
"asn1p_l.l"
return
yytext
[
0
];
YY_BREAK
case
135
:
YY_RULE_SETUP
#line 50
6
"asn1p_l.l"
#line 50
7
"asn1p_l.l"
{
if
(
TYPE_LIFETIME
(
1994
,
0
))
fprintf
(
stderr
,
"ERROR: "
);
...
...
@@ -3063,7 +3064,7 @@ YY_RULE_SETUP
YY_BREAK
case
136
:
YY_RULE_SETUP
#line 51
7
"asn1p_l.l"
#line 51
8
"asn1p_l.l"
{
fprintf
(
stderr
,
"Unexpected token at line %d:
\"
%s
\"\n
"
,
...
...
@@ -3085,7 +3086,7 @@ case YY_STATE_EOF(quoted):
case
YY_STATE_EOF
(
opaque
):
case
YY_STATE_EOF
(
encoding_control
):
case
YY_STATE_EOF
(
with_syntax
):
#line 53
0
"asn1p_l.l"
#line 53
1
"asn1p_l.l"
{
while
(
YYSTATE
!=
INITIAL
)
yy_pop_state
();
...
...
@@ -3094,10 +3095,10 @@ case YY_STATE_EOF(with_syntax):
YY_BREAK
case
137
:
YY_RULE_SETUP
#line 53
7
"asn1p_l.l"
#line 53
8
"asn1p_l.l"
YY_FATAL_ERROR
(
"flex scanner jammed"
);
YY_BREAK
#line 310
1
"asn1p_l.c"
#line 310
2
"asn1p_l.c"
case
YY_END_OF_BUFFER
:
{
...
...
@@ -3979,7 +3980,7 @@ int main()
return
0
;
}
#endif
#line 53
7
"asn1p_l.l"
#line 53
8
"asn1p_l.l"
/*
...
...
@@ -3998,30 +3999,14 @@ void asn1p_lexer_hack_push_encoding_control() {
}
static
asn1c_integer_t
asn1p_atoi
(
char
*
ptr
)
{
_lex_atoi
(
const
char
*
ptr
)
{
asn1c_integer_t
value
;
errno
=
0
;
/* Clear the error code */
if
(
sizeof
(
value
)
<=
sizeof
(
int
))
{
value
=
strtol
(
ptr
,
0
,
10
);
}
else
{
#ifdef HAVE_STRTOIMAX
value
=
strtoimax
(
ptr
,
0
,
10
);
#elif HAVE_STRTOLL
value
=
strtoll
(
ptr
,
0
,
10
);
#else
value
=
strtol
(
ptr
,
0
,
10
);
#endif
}
if
(
errno
==
ERANGE
)
{
if
(
asn1p_atoi
(
ptr
,
&
value
))
{
fprintf
(
stderr
,
"Value
\"
%s
\"
at line %d is too large "
"for this compiler! Please contact the asn1c author.
\n
"
,
ptr
,
yylineno
);
errno
=
ERANGE
;
/* Restore potentially clobbered errno */
errno
=
ERANGE
;
}
return
value
;
}
libasn1parser/asn1p_l.l
View file @
d370e9f5
...
...
@@ -23,10 +23,11 @@ void asn1p_lexer_hack_push_encoding_control(void); /* Used in .y */
int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;
static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
int asn1p_as_pointer;
static asn1c_integer_t _lex_atoi(const char *ptr);
/*
* Check that the type is defined in the year of the standard choosen.
*/
...
...
@@ -219,21 +220,21 @@ WSP [\t\r\v\f\n ]
-[1-9][0-9]* {
asn1p_lval.a_int =
asn1p
_atoi(yytext);
asn1p_lval.a_int =
_lex
_atoi(yytext);
if(errno == ERANGE)
return -1;
return TOK_number_negative;
}
[1-9][0-9]* {
asn1p_lval.a_int =
asn1p
_atoi(yytext);
asn1p_lval.a_int =
_lex
_atoi(yytext);
if(errno == ERANGE)
return -1;
return TOK_number;
}
"0" {
asn1p_lval.a_int =
asn1p
_atoi(yytext);
asn1p_lval.a_int =
_lex
_atoi(yytext);
if(errno == ERANGE)
return -1;
return TOK_number;
...
...
@@ -437,10 +438,10 @@ WITH return TOK_WITH;
char *p;
for(p = yytext; *p; p++)
if(*p >= '0' && *p <= '9')
{ v1 =
asn1p
_atoi(p); break; }
{ v1 =
_lex
_atoi(p); break; }
while(*p >= '0' && *p <= '9') p++; /* Skip digits */
for(; *p; p++) if(*p >= '0' && *p <= '9')
{ v2 =
asn1p
_atoi(p); break; }
{ v2 =
_lex
_atoi(p); break; }
if(v1 < 0 || v1 > 7) {
fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
"mandates 0..7 range for Tuple's TableColumn\n",
...
...
@@ -462,16 +463,16 @@ WITH return TOK_WITH;
char *p;
for(p = yytext; *p; p++)
if(*p >= '0' && *p <= '9')
{ v1 =
asn1p
_atoi(p); break; }
{ v1 =
_lex
_atoi(p); break; }
while(*p >= '0' && *p <= '9') p++; /* Skip digits */
for(; *p; p++) if(*p >= '0' && *p <= '9')
{ v2 =
asn1p
_atoi(p); break; }
{ v2 =
_lex
_atoi(p); break; }
while(*p >= '0' && *p <= '9') p++;
for(; *p; p++) if(*p >= '0' && *p <= '9')
{ v3 =
asn1p
_atoi(p); break; }
{ v3 =
_lex
_atoi(p); break; }
while(*p >= '0' && *p <= '9') p++;
for(; *p; p++) if(*p >= '0' && *p <= '9')
{ v4 =
asn1p
_atoi(p); break; }
{ v4 =
_lex
_atoi(p); break; }
if(v1 < 0 || v1 > 127) {
fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
"mandates 0..127 range for Quadruple's Group\n",
...
...
@@ -552,30 +553,14 @@ void asn1p_lexer_hack_push_encoding_control() {
}
static asn1c_integer_t
asn1p_atoi(
char *ptr) {
_lex_atoi(const
char *ptr) {
asn1c_integer_t value;
errno = 0; /* Clear the error code */
if(sizeof(value) <= sizeof(int)) {
value = strtol(ptr, 0, 10);
} else {
#ifdef HAVE_STRTOIMAX
value = strtoimax(ptr, 0, 10);
#elif HAVE_STRTOLL
value = strtoll(ptr, 0, 10);
#else
value = strtol(ptr, 0, 10);
#endif
}
if(errno == ERANGE) {
if(asn1p_atoi(ptr, &value)) {
fprintf(stderr,
"Value \"%s\" at line %d is too large "
"for this compiler! Please contact the asn1c author.\n",
ptr, yylineno);
errno = ERANGE;
/* Restore potentially clobbered errno */
errno = ERANGE;
}
return value;
}
libasn1parser/asn1p_y.c
View file @
d370e9f5
...
...
@@ -223,11 +223,11 @@ typedef union {
#define YYFINAL 44
6
#define YYFINAL 44
5
#define YYFLAG -32768
#define YYNTBASE 120
#define YYTRANSLATE(x) ((unsigned)(x) <= 358 ? yytranslate[x] : 22
7
)
#define YYTRANSLATE(x) ((unsigned)(x) <= 358 ? yytranslate[x] : 22
6
)
static
const
char
yytranslate
[]
=
{
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
...
...
@@ -283,141 +283,140 @@ static const short yyprhs[] = { 0,
293
,
295
,
298
,
300
,
302
,
304
,
308
,
310
,
314
,
318
,
322
,
323
,
326
,
328
,
333
,
338
,
343
,
350
,
357
,
359
,
364
,
369
,
371
,
375
,
377
,
381
,
385
,
389
,
391
,
395
,
397
,
401
,
403
,
405
,
407
,
409
,
41
1
,
415
,
419
,
421
,
42
6
,
430
,
431
,
435
,
437
,
439
,
441
,
443
,
445
,
447
,
449
,
451
,
45
3
,
457
,
459
,
461
,
463
,
465
,
468
,
470
,
472
,
474
,
47
6
,
479
,
482
,
484
,
486
,
489
,
492
,
494
,
496
,
498
,
500
,
50
2
,
505
,
507
,
510
,
512
,
514
,
516
,
397
,
401
,
403
,
405
,
407
,
409
,
41
3
,
417
,
419
,
424
,
42
8
,
429
,
433
,
435
,
437
,
439
,
441
,
443
,
445
,
447
,
449
,
451
,
45
5
,
457
,
459
,
461
,
463
,
466
,
468
,
470
,
472
,
474
,
47
7
,
480
,
482
,
484
,
487
,
490
,
492
,
494
,
496
,
498
,
500
,
50
3
,
505
,
508
,
510
,
512
,
514
,
516
,
518
,
520
,
522
,
524
,
526
,
528
,
530
,
532
,
534
,
536
,
538
,
540
,
542
,
544
,
546
,
54
8
,
549
,
551
,
553
,
558
,
56
2
,
567
,
569
,
573
,
579
,
581
,
585
,
589
,
593
,
597
,
60
2
,
606
,
608
,
610
,
614
,
618
,
622
,
626
,
628
,
630
,
63
1
,
637
,
639
,
642
,
645
,
649
,
651
,
653
,
655
,
657
,
659
,
661
,
663
,
66
5
,
669
,
675
,
677
,
681
,
683
,
687
,
688
,
690
,
692
,
694
,
696
,
698
,
70
0
,
704
,
709
,
711
,
71
5
,
718
,
722
,
724
,
728
,
729
,
731
,
733
,
736
,
739
,
743
,
74
5
,
749
,
751
,
756
,
761
,
763
,
765
,
767
,
769
,
770
,
77
2
,
775
,
780
,
781
,
783
,
785
,
787
,
788
,
790
,
792
,
794
,
796
,
79
8
,
799
,
801
538
,
540
,
542
,
544
,
546
,
54
7
,
549
,
551
,
556
,
560
,
56
5
,
567
,
571
,
577
,
579
,
583
,
587
,
591
,
595
,
600
,
60
4
,
606
,
608
,
612
,
616
,
620
,
624
,
626
,
628
,
629
,
63
5
,
637
,
640
,
643
,
647
,
649
,
651
,
653
,
655
,
657
,
659
,
661
,
663
,
66
7
,
673
,
675
,
679
,
681
,
685
,
686
,
688
,
690
,
692
,
694
,
696
,
698
,
70
2
,
707
,
709
,
713
,
71
6
,
720
,
722
,
726
,
727
,
729
,
731
,
734
,
737
,
741
,
743
,
74
7
,
749
,
754
,
759
,
761
,
763
,
765
,
767
,
768
,
770
,
77
3
,
778
,
779
,
781
,
783
,
785
,
786
,
788
,
790
,
792
,
794
,
796
,
79
7
,
799
};
static
const
short
yyrhs
[]
=
{
121
,
0
,
122
,
0
,
121
,
122
,
0
,
22
3
,
123
,
38
,
127
,
0
,
122
,
0
,
121
,
122
,
0
,
22
2
,
123
,
38
,
127
,
3
,
25
,
130
,
43
,
0
,
0
,
124
,
0
,
107
,
125
,
108
,
0
,
107
,
108
,
0
,
126
,
0
,
125
,
126
,
0
,
22
6
,
0
,
226
,
109
,
10
,
110
,
0
,
10
,
0
,
0
,
22
5
,
0
,
225
,
109
,
10
,
110
,
0
,
10
,
0
,
0
,
128
,
0
,
129
,
0
,
128
,
129
,
0
,
45
,
88
,
0
,
56
,
88
,
0
,
24
,
88
,
0
,
47
,
57
,
0
,
15
,
61
,
0
,
0
,
131
,
0
,
132
,
0
,
131
,
132
,
0
,
134
,
0
,
140
,
0
,
146
,
0
,
17
7
,
0
,
143
,
0
,
0
,
42
,
15
,
133
,
0
,
18
6
,
0
,
58
,
135
,
111
,
134
,
0
,
140
,
0
,
146
,
0
,
17
6
,
0
,
143
,
0
,
0
,
42
,
15
,
133
,
0
,
18
5
,
0
,
58
,
135
,
111
,
0
,
58
,
50
,
0
,
137
,
0
,
135
,
137
,
0
,
0
,
124
,
0
,
138
,
50
,
22
3
,
136
,
0
,
139
,
0
,
138
,
112
,
139
,
0
,
22
3
,
0
,
223
,
107
,
108
,
0
,
226
,
124
,
0
,
138
,
50
,
22
2
,
136
,
0
,
139
,
0
,
138
,
112
,
139
,
0
,
22
2
,
0
,
222
,
107
,
108
,
0
,
225
,
0
,
46
,
141
,
111
,
0
,
46
,
21
,
111
,
0
,
46
,
111
,
0
,
142
,
0
,
141
,
112
,
142
,
0
,
22
3
,
0
,
22
3
,
107
,
108
,
0
,
226
,
0
,
0
,
223
,
145
,
3
,
107
,
144
,
18
2
,
0
,
170
,
0
,
183
,
0
,
223
,
3
,
166
,
0
,
22
3
,
3
,
156
,
0
,
223
,
107
,
147
,
108
,
3
,
166
,
0
,
148
,
0
,
147
,
112
,
148
,
0
,
22
3
,
0
,
22
3
,
113
,
226
,
0
,
223
,
113
,
223
,
0
,
183
,
113
,
22
6
,
0
,
150
,
0
,
149
,
112
,
150
,
0
,
166
,
0
,
22
6
,
0
,
0
,
152
,
0
,
153
,
0
,
152
,
112
,
153
,
0
,
22
6
,
166
,
212
,
0
,
166
,
212
,
0
,
34
,
111
,
0
,
142
,
0
,
141
,
112
,
142
,
0
,
22
2
,
0
,
22
2
,
107
,
108
,
0
,
225
,
0
,
0
,
222
,
145
,
3
,
107
,
144
,
18
1
,
0
,
170
,
0
,
182
,
0
,
222
,
3
,
166
,
0
,
22
2
,
3
,
156
,
0
,
222
,
107
,
147
,
108
,
3
,
166
,
0
,
148
,
0
,
147
,
112
,
148
,
0
,
22
2
,
0
,
22
2
,
113
,
225
,
0
,
222
,
113
,
222
,
0
,
182
,
113
,
22
5
,
0
,
150
,
0
,
149
,
112
,
150
,
0
,
166
,
0
,
22
5
,
0
,
0
,
152
,
0
,
153
,
0
,
152
,
112
,
153
,
0
,
22
5
,
166
,
211
,
0
,
166
,
211
,
0
,
34
,
72
,
166
,
0
,
165
,
0
,
155
,
0
,
154
,
112
,
155
,
0
,
22
6
,
166
,
0
,
165
,
0
,
166
,
0
,
32
,
107
,
0
,
22
5
,
166
,
0
,
165
,
0
,
166
,
0
,
32
,
107
,
158
,
108
,
160
,
0
,
0
,
92
,
0
,
159
,
0
,
158
,
112
,
159
,
0
,
16
,
21
2
,
0
,
17
,
166
,
157
,
212
,
0
,
17
,
17
5
,
212
,
0
,
17
,
176
,
212
,
0
,
16
,
17
5
,
212
,
0
,
16
,
166
,
212
,
0
,
16
,
176
,
212
,
112
,
159
,
0
,
16
,
21
1
,
0
,
17
,
166
,
157
,
211
,
0
,
17
,
17
4
,
211
,
0
,
17
,
175
,
211
,
0
,
16
,
17
4
,
211
,
0
,
16
,
166
,
211
,
0
,
16
,
175
,
211
,
0
,
0
,
161
,
0
,
0
,
99
,
86
,
107
,
162
,
163
,
108
,
0
,
164
,
0
,
163
,
164
,
0
,
4
,
0
,
18
,
0
,
173
,
0
,
114
,
163
,
115
,
0
,
106
,
0
,
106
,
116
,
1
80
,
0
,
106
,
116
,
217
,
0
,
218
,
168
,
190
,
0
,
0
,
167
,
169
,
0
,
18
5
,
0
,
31
,
107
,
154
,
116
,
1
79
,
0
,
106
,
116
,
216
,
0
,
217
,
168
,
189
,
0
,
0
,
167
,
169
,
0
,
18
4
,
0
,
31
,
107
,
154
,
108
,
0
,
82
,
107
,
151
,
108
,
0
,
83
,
107
,
151
,
108
,
0
,
82
,
190
,
72
,
225
,
218
,
168
,
0
,
83
,
190
,
72
,
225
,
218
,
168
,
0
,
22
,
0
,
22
,
39
,
29
,
226
,
0
,
223
,
107
,
149
,
108
,
0
,
170
,
0
,
60
,
72
,
170
,
0
,
14
,
0
,
14
,
117
,
223
,
0
,
224
,
117
,
223
,
0
,
14
,
117
,
226
,
0
,
224
,
0
,
224
,
117
,
171
,
0
,
172
,
0
,
171
,
117
,
172
,
0
,
174
,
0
,
174
,
0
,
16
,
0
,
17
,
0
,
16
,
0
,
175
,
117
,
16
,
0
,
175
,
117
,
17
,
0
,
15
,
0
,
226
,
145
,
3
,
178
,
0
,
226
,
113
,
178
,
0
,
0
,
107
,
179
,
182
,
0
,
67
,
0
,
49
,
0
,
90
,
0
,
6
,
0
,
8
,
0
,
181
,
0
,
217
,
0
,
180
,
0
,
226
,
0
,
223
,
117
,
226
,
0
,
7
,
0
,
11
,
0
,
12
,
0
,
5
,
0
,
182
,
5
,
0
,
28
,
0
,
67
,
0
,
80
,
0
,
184
,
0
,
71
,
85
,
0
,
69
,
55
,
0
,
81
,
0
,
48
,
0
,
40
,
75
,
0
,
30
,
85
,
0
,
95
,
0
,
51
,
0
,
186
,
0
,
62
,
0
,
44
,
0
,
26
,
85
,
0
,
183
,
0
,
184
,
214
,
0
,
27
,
0
,
52
,
0
,
53
,
0
,
54
,
0
,
63
,
0
,
68
,
0
,
78
,
0
,
87
,
0
,
89
,
0
,
94
,
0
,
96
,
0
,
97
,
0
,
98
,
0
,
70
,
0
,
103
,
0
,
104
,
0
,
101
,
0
,
102
,
0
,
100
,
0
,
0
,
191
,
0
,
192
,
0
,
84
,
109
,
193
,
110
,
0
,
109
,
193
,
110
,
0
,
192
,
109
,
193
,
110
,
0
,
194
,
0
,
194
,
112
,
106
,
0
,
194
,
112
,
106
,
112
,
194
,
0
,
195
,
0
,
21
,
100
,
195
,
0
,
194
,
187
,
195
,
0
,
194
,
188
,
195
,
0
,
195
,
189
,
195
,
0
,
198
,
109
,
193
,
110
,
0
,
109
,
193
,
110
,
0
,
199
,
0
,
200
,
0
,
199
,
197
,
199
,
0
,
65
,
197
,
199
,
0
,
199
,
197
,
64
,
0
,
65
,
197
,
64
,
0
,
206
,
0
,
201
,
0
,
0
,
35
,
29
,
107
,
196
,
182
,
0
,
105
,
0
,
105
,
118
,
0
,
118
,
105
,
0
,
118
,
105
,
118
,
0
,
84
,
0
,
50
,
0
,
49
,
0
,
90
,
0
,
217
,
0
,
181
,
0
,
226
,
0
,
223
,
0
,
99
,
33
,
192
,
0
,
99
,
34
,
107
,
202
,
108
,
0
,
203
,
0
,
202
,
112
,
203
,
0
,
106
,
0
,
226
,
190
,
204
,
0
,
0
,
205
,
0
,
77
,
0
,
19
,
0
,
73
,
0
,
207
,
0
,
208
,
0
,
107
,
223
,
108
,
0
,
207
,
107
,
209
,
108
,
0
,
210
,
0
,
209
,
112
,
210
,
0
,
119
,
211
,
0
,
119
,
117
,
211
,
0
,
226
,
0
,
211
,
117
,
226
,
0
,
0
,
213
,
0
,
73
,
0
,
37
,
178
,
0
,
107
,
108
,
0
,
107
,
215
,
108
,
0
,
216
,
0
,
215
,
112
,
216
,
0
,
226
,
0
,
226
,
109
,
217
,
110
,
0
,
226
,
109
,
180
,
110
,
0
,
217
,
0
,
106
,
0
,
10
,
0
,
13
,
0
,
0
,
219
,
0
,
220
,
222
,
0
,
114
,
221
,
10
,
115
,
0
,
0
,
93
,
0
,
23
,
0
,
79
,
0
,
0
,
56
,
0
,
45
,
0
,
14
,
0
,
15
,
0
,
15
,
0
,
0
,
226
,
0
,
9
,
0
108
,
0
,
82
,
189
,
72
,
224
,
217
,
168
,
0
,
83
,
189
,
72
,
224
,
217
,
168
,
0
,
22
,
0
,
22
,
39
,
29
,
225
,
0
,
222
,
107
,
149
,
108
,
0
,
170
,
0
,
60
,
72
,
170
,
0
,
14
,
0
,
14
,
117
,
222
,
0
,
223
,
117
,
222
,
0
,
14
,
117
,
225
,
0
,
223
,
0
,
223
,
117
,
171
,
0
,
172
,
0
,
171
,
117
,
172
,
0
,
173
,
0
,
16
,
0
,
17
,
0
,
16
,
0
,
174
,
117
,
16
,
0
,
174
,
117
,
17
,
0
,
15
,
0
,
225
,
145
,
3
,
177
,
0
,
225
,
113
,
177
,
0
,
0
,
107
,
178
,
181
,
0
,
67
,
0
,
49
,
0
,
90
,
0
,
6
,
0
,
8
,
0
,
180
,
0
,
216
,
0
,
179
,
0
,
225
,
0
,
222
,
117
,
225
,
0
,
7
,
0
,
11
,
0
,
12
,
0
,
5
,
0
,
181
,
5
,
0
,
28
,
0
,
67
,
0
,
80
,
0
,
183
,
0
,
71
,
85
,
0
,
69
,
55
,
0
,
81
,
0
,
48
,
0
,
40
,
75
,
0
,
30
,
85
,
0
,
95
,
0
,
51
,
0
,
185
,
0
,
62
,
0
,
44
,
0
,
26
,
85
,
0
,
182
,
0
,
183
,
213
,
0
,
27
,
0
,
52
,
0
,
53
,
0
,
54
,
0
,
63
,
0
,
68
,
0
,
78
,
0
,
87
,
0
,
89
,
0
,
94
,
0
,
96
,
0
,
97
,
0
,
98
,
0
,
70
,
0
,
103
,
0
,
104
,
0
,
101
,
0
,
102
,
0
,
100
,
0
,
0
,
190
,
0
,
191
,
0
,
84
,
109
,
192
,
110
,
0
,
109
,
192
,
110
,
0
,
191
,
109
,
192
,
110
,
0
,
193
,
0
,
193
,
112
,
106
,
0
,
193
,
112
,
106
,
112
,
193
,
0
,
194
,
0
,
21
,
100
,
194
,
0
,
193
,
186
,
194
,
0
,
193
,
187
,
194
,
0
,
194
,
188
,
194
,
0
,
197
,
109
,
192
,
110
,
0
,
109
,
192
,
110
,
0
,
198
,
0
,
199
,
0
,
198
,
196
,
198
,
0
,
65
,
196
,
198
,
0
,
198
,
196
,
64
,
0
,
65
,
196
,
64
,
0
,
205
,
0
,
200
,
0
,
0
,
35
,
29
,
107
,
195
,
181
,
0
,
105
,
0
,
105
,
118
,
0
,
118
,
105
,
0
,
118
,
105
,
118
,
0
,
84
,
0
,
50
,
0
,
49
,
0
,
90
,
0
,
216
,
0
,
180
,
0
,
225
,
0
,
222
,
0
,
99
,
33
,
191
,
0
,
99
,
34
,
107
,
201
,
108
,
0
,
202
,
0
,
201
,
112
,
202
,
0
,
106
,
0
,
225
,
189
,
203
,
0
,
0
,
204
,
0
,
77
,
0
,
19
,
0
,
73
,
0
,
206
,
0
,
207
,
0
,
107
,
222
,
108
,
0
,
206
,
107
,
208
,
108
,
0
,
209
,
0
,
208
,
112
,
209
,
0
,
119
,
210
,
0
,
119
,
117
,
210
,
0
,
225
,
0
,
210
,
117
,
225
,
0
,
0
,
212
,
0
,
73
,
0
,
37
,
177
,
0
,
107
,
108
,
0
,
107
,
214
,
108
,
0
,
215
,
0
,
214
,
112
,
215
,
0
,
225
,
0
,
225
,
109
,
216
,
110
,
0
,
225
,
109
,
179
,
110
,
0
,
216
,
0
,
106
,
0
,
10
,
0
,
13
,
0
,
0
,
218
,
0
,
219
,
221
,
0
,
114
,
220
,
10
,
115
,
0
,
0
,
93
,
0
,
23
,
0
,
79
,
0
,
0
,
56
,
0
,
45
,
0
,
14
,
0
,
15
,
0
,
15
,
0
,
0
,
225
,
0
,
9
,
0
};
#endif
#if YYDEBUG != 0
static
const
short
yyrline
[]
=
{
0
,
32
4
,
330
,
336
,
352
,
377
,
379
,
382
,
386
,
391
,
398
,
40
6
,
411
,
415
,
424
,
426
,
434
,
438
,
446
,
450
,
453
,
45
6
,
460
,
480
,
482
,
490
,
494
,
526
,
530
,
539
,
546
,
55
9
,
566
,
568
,
580
,
592
,
603
,
608
,
614
,
620
,
622
,
62
5
,
636
,
642
,
648
,
655
,
661
,
669
,
673
,
676
,
683
,
68
9
,
695
,
702
,
708
,
717
,
719
,
728
,
736
,
750
,
760
,
77
6
,
785
,
795
,
805
,
810
,
817
,
824
,
834
,
840
,
846
,
8
50
,
873
,
875
,
877
,
883
,
889
,
897
,
903
,
910
,
915
,
92
1
,
927
,
933
,
936
,
942
,
952
,
954
,
957
,
965
,
972
,
98
5
,
996
,
1006
,
1017
,
1027
,
1038
,
1049
,
1051
,
1056
,
1060
,
106
5
,
1070
,
1076
,
1081
,
1084
,
1093
,
1098
,
1107
,
1116
,
1127
,
114
9
,
1156
,
1175
,
1179
,
1185
,
1191
,
1197
,
1207
,
1217
,
1223
,
123
7
,
1261
,
1268
,
1282
,
1291
,
1301
,
1311
,
1321
,
1329
,
1350
,
135
9
,
1368
,
1369
,
1371
,
1378
,
1385
,
1391
,
1395
,
1401
,
1421
,
143
1
,
1439
,
1439
,
1444
,
1449
,
1454
,
1459
,
1463
,
1467
,
1470
,
147
3
,
1478
,
1490
,
1507
,
1512
,
1517
,
1550
,
1560
,
1574
,
1576
,
157
7
,
1578
,
1579
,
1580
,
1581
,
1582
,
1583
,
1584
,
1585
,
1586
,
158
7
,
1593
,
1595
,
1596
,
1599
,
1606
,
1618
,
1620
,
1624
,
1628
,
162
9
,
1630
,
1631
,
1632
,
1636
,
1637
,
1638
,
1639
,
1643
,
1644
,
16
51
,
1651
,
1652
,
1652
,
1653
,
1655
,
1657
,
1662
,
1666
,
1675
,
167
9
,
1684
,
1688
,
1694
,
1704
,
1708
,
1711
,
1714
,
1717
,
1722
,
173
1
,
1739
,
1745
,
1751
,
1758
,
1766
,
1774
,
1783
,
1786
,
1789
,
179
0
,
1800
,
1802
,
1803
,
1804
,
1807
,
1811
,
1816
,
1822
,
1827
,
18
30
,
1833
,
1846
,
1860
,
1864
,
1869
,
1873
,
1878
,
1885
,
1898
,
1
900
,
1903
,
1907
,
1910
,
1915
,
1919
,
1927
,
1942
,
1948
,
1955
,
19
68
,
1980
,
1995
,
1999
,
2016
,
2021
,
2024
,
2029
,
2051
,
2056
,
206
1
,
2067
,
2073
,
2081
,
2089
,
2097
,
2104
,
2114
,
2119
,
2149
,
21
51
,
2154
,
2161
,
2167
,
2169
,
2170
,
2171
,
2174
,
2176
,
2177
,
21
80
,
2185
,
2192
,
2199
,
2201
,
2206
32
3
,
329
,
335
,
351
,
376
,
378
,
381
,
385
,
390
,
397
,
40
5
,
410
,
414
,
423
,
425
,
433
,
437
,
445
,
449
,
452
,
45
5
,
459
,
479
,
481
,
489
,
493
,
525
,
529
,
538
,
545
,
55
8
,
565
,
567
,
579
,
591
,
602
,
607
,
613
,
619
,
621
,
62
4
,
635
,
641
,
647
,
654
,
660
,
668
,
672
,
675
,
682
,
68
8
,
694
,
701
,
707
,
716
,
718
,
727
,
735
,
749
,
759
,
77
5
,
784
,
794
,
804
,
809
,
816
,
823
,
833
,
839
,
845
,
8
49
,
872
,
874
,
876
,
882
,
888
,
896
,
902
,
909
,
914
,
92
0
,
926
,
932
,
935
,
941
,
951
,
953
,
956
,
964
,
971
,
98
4
,
995
,
1005
,
1016
,
1026
,
1037
,
1048
,
1050
,
1055
,
1059
,
106
4
,
1069
,
1075
,
1080
,
1083
,
1087
,
1092
,
1101
,
1110
,
1121
,
114
3
,
1150
,
1169
,
1173
,
1179
,
1185
,
1191
,
1201
,
1211
,
1217
,
123
1
,
1255
,
1262
,
1276
,
1285
,
1295
,
1305
,
1315
,
1323
,
1344
,
135
3
,
1362
,
1364
,
1371
,
1378
,
1384
,
1388
,
1394
,
1414
,
1424
,
143
2
,
1432
,
1437
,
1442
,
1447
,
1452
,
1456
,
1460
,
1463
,
1466
,
147
1
,
1483
,
1500
,
1505
,
1510
,
1543
,
1553
,
1567
,
1569
,
1570
,
157
1
,
1572
,
1573
,
1574
,
1575
,
1576
,
1577
,
1578
,
1579
,
1580
,
158
6
,
1588
,
1589
,
1592
,
1599
,
1611
,
1613
,
1617
,
1621
,
1622
,
162
3
,
1624
,
1625
,
1629
,
1630
,
1631
,
1632
,
1636
,
1637
,
1644
,
16
44
,
1645
,
1645
,
1646
,
1648
,
1650
,
1655
,
1659
,
1668
,
1672
,
167
7
,
1681
,
1687
,
1697
,
1701
,
1704
,
1707
,
1710
,
1715
,
1724
,
173
2
,
1738
,
1744
,
1751
,
1759
,
1767
,
1776
,
1779
,
1782
,
1783
,
179
3
,
1795
,
1796
,
1797
,
1800
,
1804
,
1809
,
1815
,
1820
,
1823
,
18
26
,
1839
,
1853
,
1857
,
1862
,
1866
,
1871
,
1878
,
1891
,
1893
,
1
896
,
1900
,
1903
,
1908
,
1912
,
1920
,
1935
,
1941
,
1948
,
1961
,
19
73
,
1988
,
1992
,
2009
,
2014
,
2017
,
2022
,
2044
,
2049
,
2054
,
206
0
,
2066
,
2074
,
2082
,
2090
,
2097
,
2107
,
2112
,
2142
,
2144
,
21
47
,
2154
,
2160
,
2162
,
2163
,
2164
,
2167
,
2169
,
2170
,
2173
,
21
78
,
2185
,
2192
,
2194
,
2199
};
#endif
...
...
@@ -457,7 +456,7 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"FieldSpec"
,
"ClassField"
,
"optWithSyntax"
,
"WithSyntax"
,
"@3"
,
"WithSyntaxList"
,
"WithSyntaxToken"
,
"ExtensionAndException"
,
"Type"
,
"NSTD_IndirectMarker"
,
"TypeDeclaration"
,
"TypeDeclarationSet"
,
"ComplexTypeReference"
,
"ComplexTypeReferenceAmpList"
,
"ComplexTypeReferenceElement"
,
"
ClassFieldIdentifier"
,
"ClassFieldNam
e"
,
"FieldName"
,
"DefinedObjectClass"
,
"ValueDefinition"
,
"
PrimitiveFieldReferenc
e"
,
"FieldName"
,
"DefinedObjectClass"
,
"ValueDefinition"
,
"Value"
,
"@4"
,
"DefinedValue"
,
"RestrictedCharacterStringValue"
,
"Opaque"
,
"BasicTypeId"
,
"BasicTypeId_UniverationCompatible"
,
"BasicType"
,
"BasicString"
,
"Union"
,
"Intersection"
,
"Except"
,
"optConstraints"
,
"Constraints"
,
"SetOfConstraints"
,
"ElementSetSpecs"
,
...
...
@@ -485,22 +484,22 @@ static const short yyr1[] = { 0,
163
,
163
,
164
,
164
,
164
,
164
,
165
,
165
,
165
,
166
,
167
,
168
,
169
,
169
,
169
,
169
,
169
,
169
,
169
,
169
,
169
,
169
,
169
,
170
,
170
,
170
,
170
,
170
,
170
,
171
,
171
,
172
,
173
,
17
4
,
174
,
175
,
175
,
175
,
176
,
177
,
178
,
17
9
,
178
,
178
,
178
,
178
,
178
,
178
,
178
,
178
,
17
8
,
180
,
180
,
181
,
181
,
181
,
182
,
182
,
183
,
183
,
18
3
,
183
,
183
,
183
,
183
,
183
,
183
,
183
,
183
,
183
,
183
,
18
4
,
184
,
184
,
185
,
185
,
186
,
186
,
186
,
186
,
18
6
,
186
,
186
,
186
,
186
,
186
,
186
,
186
,
186
,
186
,
18
7
,
187
,
188
,
188
,
189
,
190
,
190
,
191
,
191
,
192
,
192
,
19
3
,
193
,
193
,
194
,
194
,
194
,
194
,
194
,
195
,
19
5
,
195
,
195
,
195
,
195
,
195
,
195
,
195
,
195
,
196
,
19
5
,
197
,
197
,
197
,
197
,
198
,
198
,
199
,
199
,
199
,
19
9
,
199
,
200
,
201
,
201
,
202
,
202
,
203
,
203
,
204
,
204
,
20
5
,
205
,
205
,
206
,
206
,
207
,
208
,
209
,
209
,
2
10
,
210
,
211
,
211
,
212
,
212
,
213
,
213
,
214
,
214
,
21
5
,
215
,
216
,
216
,
216
,
216
,
216
,
217
,
217
,
218
,
218
,
219
,
220
,
22
1
,
221
,
221
,
221
,
222
,
222
,
222
,
22
3
,
223
,
224
,
225
,
225
,
226
171
,
172
,
173
,
17
3
,
174
,
174
,
174
,
175
,
176
,
177
,
178
,
17
7
,
177
,
177
,
177
,
177
,
177
,
177
,
177
,
177
,
17
9
,
179
,
180
,
180
,
180
,
181
,
181
,
182
,
182
,
182
,
18
2
,
182
,
182
,
182
,
182
,
182
,
182
,
182
,
182
,
182
,
183
,
18
3
,
183
,
184
,
184
,
185
,
185
,
185
,
185
,
185
,
18
5
,
185
,
185
,
185
,
185
,
185
,
185
,
185
,
185
,
186
,
18
6
,
187
,
187
,
188
,
189
,
189
,
190
,
190
,
191
,
191
,
192
,
19
2
,
192
,
193
,
193
,
193
,
193
,
193
,
194
,
194
,
19
4
,
194
,
194
,
194
,
194
,
194
,
194
,
194
,
195
,
194
,
19
6
,
196
,
196
,
196
,
197
,
197
,
198
,
198
,
198
,
198
,
19
8
,
199
,
200
,
200
,
201
,
201
,
202
,
202
,
203
,
203
,
204
,
20
4
,
204
,
205
,
205
,
206
,
207
,
208
,
208
,
209
,
2
09
,
210
,
210
,
211
,
211
,
212
,
212
,
213
,
213
,
214
,
21
4
,
215
,
215
,
215
,
215
,
215
,
216
,
216
,
217
,
217
,
218
,
219
,
220
,
22
0
,
220
,
220
,
221
,
221
,
221
,
222
,
22
2
,
223
,
224
,
224
,
225
};
static
const
short
yyr2
[]
=
{
0
,
...
...
@@ -517,146 +516,146 @@ static const short yyr2[] = { 0,
1
,
2
,
1
,
1
,
1
,
3
,
1
,
3
,
3
,
3
,
0
,
2
,
1
,
4
,
4
,
4
,
6
,
6
,
1
,
4
,
4
,
1
,
3
,
1
,
3
,
3
,
3
,
1
,
3
,
1
,
3
,
1
,
1
,
1
,
1
,
1
,
3
,
3
,
1
,
4
,
3
,
0
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
1
,
1
,
1
,
1
,
2
,
1
,
1
,
1
,
1
,
2
,
2
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
3
,
1
,
1
,
1
,
1
,
3
,
3
,
1
,
4
,
3
,
0
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
1
,
1
,
1
,
1
,
2
,
1
,
1
,
1
,
1
,
2
,
2
,
1
,
1
,
2
,
2
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
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
,
3
,
4
,
3
,
1
,
1
,
3
,
3
,
3
,
3
,
1
,
1
,
0
,
5
,
1
,
2
,
2
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
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
,
2
,
4
,
0
,
1
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
1
,
1
,
1
,
1
,
0
,
1
,
1
,
4
,
3
,
4
,
1
,
3
,
5
,
1
,
3
,
3
,
3
,
3
,
4
,
3
,
1
,
1
,
3
,
3
,
3
,
3
,
1
,
1
,
0
,
5
,
1
,
2
,
2
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
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
,
2
,
4
,
0
,
1
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
};
static
const
short
yydefact
[]
=
{
0
,
28
1
,
282
,
1
,
2
,
5
,
3
,
0
,
0
,
6
,
286
,
28
0
,
281
,
1
,
2
,
5
,
3
,
0
,
0
,
6
,
285
,
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
,
17
7
,
0
,
0
,
17
8
,
179
,
180
,
0
,
181
,
182
,
190
,
183
,
184
,
185
,
18
6
,
187
,
188
,
189
,
0
,
24
,
25
,
27
,
28
,
31
,
18
,
21
,
19
,
0
,
17
,
12
,
23
,
17
6
,
0
,
0
,
17
7
,
178
,
179
,
0
,
180
,
181
,
189
,
182
,
183
,
184
,
18
5
,
186
,
187
,
188
,
0
,
24
,
25
,
27
,
28
,
31
,
29
,
30
,
34
,
0
,
0
,
32
,
0
,
49
,
0
,
50
,
52
,
54
,
36
,
0
,
37
,
0
,
42
,
44
,
46
,
4
,
26
,
2
70
,
124
,
283
,
0
,
159
,
0
,
0
,
173
,
166
,
1
70
,
172
,
160
,
0
,
0
,
161
,
165
,
169
,
0
,
0
,
57
,
58
,
16
2
,
171
,
128
,
0
,
33
,
48
,
47
,
0
,
0
,
35
,
38
,
0
,
0
,
0
,
0
,
27
4
,
60
,
59
,
111
,
27
1
,
278
,
0
,
174
,
168
,
167
,
164
,
163
,
0
,
26
,
2
69
,
124
,
282
,
0
,
158
,
0
,
0
,
172
,
165
,
1
69
,
171
,
159
,
0
,
0
,
160
,
164
,
168
,
0
,
0
,
57
,
58
,
16
1
,
170
,
128
,
0
,
33
,
48
,
47
,
0
,
0
,
35
,
38
,
0
,
0
,
0
,
0
,
27
3
,
60
,
59
,
111
,
27
0
,
277
,
0
,
173
,
167
,
166
,
163
,
162
,
0
,
62
,
0
,
64
,
0
,
0
,
0
,
51
,
53
,
39
,
43
,
45
,
0
,
27
6
,
277
,
275
,
0
,
0
,
196
,
280
,
279
,
27
2
,
125
,
127
,
0
,
0
,
0
,
0
,
55
,
134
,
135
,
129
,
130
,
132
,
126
,
14
7
,
154
,
148
,
268
,
155
,
156
,
26
9
,
145
,
144
,
146
,
142
,
140
,
151
,
149
,
150
,
0
,
15
2
,
40
,
41
,
270
,
270
,
0
,
88
,
0
,
124
,
283
,
119
,
0
,
0
,
19
6
,
196
,
112
,
122
,
175
,
162
,
113
,
0
,
0
,
0
,
110
,
19
7
,
198
,
270
,
63
,
67
,
66
,
65
,
0
,
0
,
0
,
0
,
0
,
13
9
,
136
,
0
,
257
,
25
5
,
255
,
255
,
90
,
256
,
86
,
255
,
255
,
97
,
0
,
27
3
,
0
,
270
,
0
,
270
,
0
,
270
,
0
,
0
,
176
,
2
70
,
0
,
0
,
0
,
228
,
227
,
0
,
226
,
229
,
0
,
0
,
0
,
23
1
,
0
,
202
,
205
,
0
,
212
,
213
,
219
,
21
8
,
245
,
246
,
230
,
233
,
232
,
0
,
61
,
157
,
56
,
131
,
14
3
,
153
,
141
,
258
,
95
,
0
,
94
,
96
,
87
,
25
5
,
92
,
93
,
0
,
85
,
98
,
89
,
0
,
107
,
0
,
80
,
83
,
84
,
2
70
,
123
,
0
,
0
,
73
,
74
,
79
,
25
5
,
270
,
284
,
0
,
284
,
267
,
259
,
0
,
261
,
266
,
26
3
,
0
,
68
,
70
,
71
,
0
,
0
,
0
,
222
,
0
,
0
,
0
,
0
,
0
,
0
,
200
,
193
,
194
,
191
,
192
,
0
,
0
,
0
,
19
5
,
0
,
0
,
0
,
0
,
0
,
158
,
13
7
,
138
,
91
,
0
,
120
,
0
,
114
,
270
,
82
,
270
,
115
,
2
70
,
77
,
255
,
270
,
285
,
116
,
270
,
260
,
0
,
0
,
121
,
2
70
,
199
,
206
,
220
,
223
,
224
,
217
,
215
,
23
4
,
0
,
247
,
211
,
203
,
207
,
208
,
209
,
0
,
216
,
21
4
,
0
,
0
,
249
,
201
,
99
,
108
,
109
,
152
,
81
,
78
,
75
,
76
,
111
,
111
,
26
2
,
0
,
0
,
69
,
0
,
22
5
,
238
,
0
,
236
,
196
,
0
,
210
,
0
,
251
,
253
,
24
8
,
0
,
0
,
117
,
118
,
265
,
264
,
221
,
235
,
0
,
2
40
,
204
,
252
,
0
,
250
,
103
,
104
,
0
,
0
,
101
,
105
,
133
,
237
,
243
,
244
,
242
,
239
,
241
,
254
,
0
,
10
0
,
10
2
,
106
,
0
,
0
,
0
45
,
0
,
27
5
,
276
,
274
,
0
,
0
,
195
,
279
,
278
,
27
1
,
125
,
127
,
0
,
0
,
0
,
0
,
55
,
133
,
134
,
129
,
130
,
132
,
126
,
14
6
,
153
,
147
,
267
,
154
,
155
,
26
8
,
144
,
143
,
145
,
141
,
139
,
150
,
148
,
149
,
0
,
15
1
,
40
,
41
,
269
,
269
,
0
,
88
,
0
,
124
,
282
,
119
,
0
,
0
,
19
5
,
195
,
112
,
122
,
174
,
161
,
113
,
0
,
0
,
0
,
110
,
19
6
,
197
,
269
,
63
,
67
,
66
,
65
,
0
,
0
,
0
,
0
,
0
,
13
8
,
135
,
0
,
256
,
25
4
,
254
,
254
,
90
,
255
,
86
,
254
,
254
,
97
,
0
,
27
2
,
0
,
269
,
0
,
269
,
0
,
269
,
0
,
0
,
175
,
2
69
,
0
,
0
,
0
,
227
,
226
,
0
,
225
,
228
,
0
,
0
,
0
,
23
0
,
0
,
201
,
204
,
0
,
211
,
212
,
218
,
21
7
,
244
,
245
,
229
,
232
,
231
,
0
,
61
,
156
,
56
,
131
,
14
2
,
152
,
140
,
257
,
95
,
0
,
94
,
96
,
87
,
25
4
,
92
,
93
,
0
,
85
,
98
,
89
,
0
,
107
,
0
,
80
,
83
,
84
,
2
69
,
123
,
0
,
0
,
73
,
74
,
79
,
25
4
,
269
,
283
,
0
,
283
,
266
,
258
,
0
,
260
,
265
,
26
2
,
0
,
68
,
70
,
71
,
0
,
0
,
0
,
221
,
0
,
0
,
0
,
0
,
0
,
0
,
199
,
192
,
193
,
190
,
191
,
0
,
0
,
0
,
19
4
,
0
,
0
,
0
,
0
,
0
,
157
,
13
6
,
137
,
91
,
0
,
120
,
0
,
114
,
269
,
82
,
269
,
115
,
2
69
,
77
,
254
,
269
,
284
,
116
,
269
,
259
,
0
,
0
,
121
,
2
69
,
198
,
205
,
219
,
222
,
223
,
216
,
214
,
23
3
,
0
,
246
,
210
,
202
,
206
,
207
,
208
,
0
,
215
,
21
3
,
0
,
0
,
248
,
200
,
99
,
108
,
109
,
151
,
81
,
78
,
75
,
76
,
111
,
111
,
26
1
,
0
,
0
,
69
,
0
,
22
4
,
237
,
0
,
235
,
195
,
0
,
209
,
0
,
250
,
252
,
24
7
,
0
,
0
,
117
,
118
,
264
,
263
,
220
,
234
,
0
,
2
39
,
203
,
251
,
0
,
249
,
103
,
104
,
0
,
0
,
101
,
105
,
236
,
242
,
243
,
241
,
238
,
240
,
253
,
0
,
10
0
,
102
,
106
,
0
,
0
,
0
};
static
const
short
yydefgoto
[]
=
{
44
4
,
static
const
short
yydefgoto
[]
=
{
44
3
,
3
,
4
,
8
,
9
,
13
,
14
,
25
,
26
,
27
,
55
,
56
,
57
,
107
,
58
,
74
,
183
,
75
,
76
,
77
,
59
,
69
,
70
,
60
,
212
,
100
,
61
,
130
,
131
,
312
,
313
,
297
,
298
,
299
,
290
,
291
,
119
,
281
,
186
,
187
,
285
,
286
,
413
,
429
,
430
,
300
,
301
,
147
,
148
,
196
,
101
,
161
,
162
,
431
,
432
,
222
,
223
,
62
,
176
,
214
,
177
,
2
53
,
270
,
102
,
103
,
200
,
104
,
332
,
333
,
335
,
204
,
20
5
,
206
,
254
,
255
,
256
,
400
,
321
,
257
,
258
,
259
,
260
,
403
,
404
,
437
,
438
,
261
,
262
,
263
,
383
,
384
,
409
,
224
,
225
,
240
,
308
,
309
,
264
,
121
,
122
,
123
,
1
46
,
1
51
,
265
,
105
,
355
,
266
161
,
162
,
431
,
222
,
223
,
62
,
176
,
214
,
177
,
253
,
2
70
,
102
,
103
,
200
,
104
,
332
,
333
,
335
,
204
,
205
,
20
6
,
254
,
255
,
256
,
400
,
321
,
257
,
258
,
259
,
260
,
403
,
404
,
436
,
437
,
261
,
262
,
263
,
383
,
384
,
409
,
224
,
225
,
240
,
308
,
309
,
264
,
121
,
122
,
123
,
146
,
151
,
265
,
105
,
355
,
266
};
static
const
short
yypact
[]
=
{
223
,
-
32768
,
-
32768
,
223
,
-
32768
,
-
76
,
-
32768
,
30
,
24
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
34
,
-
32768
,
-
61
,
247
,
-
32768
,
-
32768
,
61
,
27
,
52
,
71
,
55
,
77
,
99
,
247
,
-
32768
,
76
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
81
,
-
32768
,
-
32768
,
428
,
-
32768
,
187
,
49
,
71
,
84
,
145
,
118
,
210
,
247
,
-
32768
,
109
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
99
,
-
32768
,
-
32768
,
428
,
-
32768
,
212
,
49
,
-
32768
,
-
32768
,
-
32768
,
154
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
7
6
,
428
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
352
,
581
,
-
32768
,
1
02
,
-
32768
,
199
,
-
32768
,
1
17
,
-
32768
,
-
32768
,
59
,
-
32768
,
-
26
,
-
32768
,
120
,
-
32768
,
-
32768
,
-
32768
,
-
15
,
1
12
,
-
32768
,
179
,
-
32768
,
193
,
165
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
2
11
,
208
,
-
32768
,
-
32768
,
-
32768
,
657
,
266
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
169
,
299
,
-
32768
,
-
32768
,
-
32768
,
286
,
2
00
,
-
32768
,
-
32768
,
223
,
286
,
206
,
210
,
3
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
8
6
,
428
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
352
,
581
,
-
32768
,
1
29
,
-
32768
,
174
,
-
32768
,
1
57
,
-
32768
,
-
32768
,
59
,
-
32768
,
-
26
,
-
32768
,
159
,
-
32768
,
-
32768
,
-
32768
,
-
15
,
1
52
,
-
32768
,
193
,
-
32768
,
204
,
218
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
2
62
,
217
,
-
32768
,
-
32768
,
-
32768
,
657
,
337
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
220
,
343
,
-
32768
,
-
32768
,
-
32768
,
286
,
2
44
,
-
32768
,
-
32768
,
223
,
286
,
249
,
256
,
3
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
45
,
286
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
23
,
-
32768
,
2
24
,
227
,
239
,
319
,
184
,
-
32768
,
-
32768
,
-
76
,
-
32768
,
-
32768
,
312
,
-
32768
,
-
32768
,
-
32768
,
340
,
505
,
57
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
54
,
657
,
355
,
286
,
-
32768
,
-
32768
,
-
32768
,
2
46
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
2
59
,
26
4
,
-
32768
,
-
32768
,
168
,
37
,
35
,
-
32768
,
268
,
65
,
274
,
-
32768
,
2
51
,
255
,
263
,
294
,
184
,
-
32768
,
-
32768
,
-
76
,
-
32768
,
-
32768
,
297
,
-
32768
,
-
32768
,
-
32768
,
359
,
505
,
57
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
68
,
657
,
363
,
286
,
-
32768
,
-
32768
,
-
32768
,
2
59
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
2
60
,
26
8
,
-
32768
,
-
32768
,
168
,
37
,
32
,
-
32768
,
258
,
48
,
276
,
345
,
278
,
314
,
116
,
170
,
-
32768
,
-
32768
,
-
32768
,
280
,
-
32768
,
281
,
282
,
166
,
-
32768
,
-
32768
,
285
,
275
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
385
,
3
26
,
385
,
355
,
184
,
-
32768
,
-
32768
,
184
,
-
32768
,
98
,
94
,
98
,
-
32768
,
-
32768
,
303
,
94
,
98
,
298
,
312
,
-
32768
,
369
,
7
,
3
34
,
16
,
330
,
16
,
335
,
56
,
-
32768
,
14
,
166
,
310
,
380
,
-
32768
,
-
32768
,
-
25
,
-
32768
,
-
32768
,
31
8
,
-
32768
,
385
,
3
12
,
385
,
363
,
184
,
-
32768
,
-
32768
,
184
,
-
32768
,
98
,
94
,
98
,
-
32768
,
-
32768
,
303
,
94
,
98
,
298
,
297
,
-
32768
,
369
,
7
,
3
28
,
16
,
330
,
16
,
335
,
56
,
-
32768
,
14
,
166
,
310
,
380
,
-
32768
,
-
32768
,
-
25
,
-
32768
,
-
32768
,
31
5
,
223
,
166
,
-
32768
,
301
,
203
,
324
,
316
,
-
25
,
-
32768
,
-
32768
,
-
32768
,
305
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
166
,
-
32768
,
-
32768
,
421
,
-
32768
,
421
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
4
4
,
-
32768
,
-
32768
,
-
32768
,
98
,
-
32768
,
-
32768
,
341
,
-
32768
,
-
32768
,
-
32768
,
3
55
,
313
,
131
,
-
32768
,
421
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
3
4
,
-
32768
,
-
32768
,
-
32768
,
98
,
-
32768
,
-
32768
,
341
,
-
32768
,
-
32768
,
-
32768
,
3
63
,
313
,
35
,
-
32768
,
-
32768
,
-
32768
,
275
,
-
32768
,
356
,
323
,
322
,
-
32768
,
-
32768
,
98
,
275
,
3
55
,
327
,
355
,
-
32768
,
-
32768
,
141
,
-
32768
,
-
32768
,
329
,
1
55
,
-
32768
,
-
32768
,
-
32768
,
342
,
309
,
333
,
336
,
331
,
235
,
34
7
,
337
,
343
,
348
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
39
,
309
,
309
,
-
32768
,
309
,
166
,
248
,
33
8
,
350
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
46
,
-
32768
,
317
,
-
32768
,
7
,
-
32768
,
275
,
98
,
275
,
3
63
,
327
,
363
,
-
32768
,
-
32768
,
74
,
-
32768
,
-
32768
,
329
,
1
31
,
-
32768
,
-
32768
,
-
32768
,
326
,
309
,
333
,
336
,
339
,
235
,
34
2
,
338
,
344
,
346
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
47
,
309
,
309
,
-
32768
,
309
,
166
,
248
,
34
8
,
350
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
51
,
-
32768
,
317
,
-
32768
,
7
,
-
32768
,
275
,
-
32768
,
12
,
-
32768
,
98
,
275
,
-
32768
,
-
32768
,
275
,
-
32768
,
68
,
317
,
-
32768
,
14
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
49
,
-
32768
,
-
32768
,
285
,
0
,
-
32768
,
-
32768
,
3
51
,
-
32768
,
-
32768
,
-
32768
,
358
,
-
32768
,
-
32768
,
6
,
1
77
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
35
9
,
361
,
-
32768
,
385
,
-
32768
,
-
32768
,
201
,
-
32768
,
57
,
166
,
-
32768
,
355
,
36
0
,
-
32768
,
-
32768
,
3
3
8
,
43
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
421
,
-
32768
,
0
,
10
,
2
67
,
360
,
355
,
-
32768
,
-
32768
,
-
32768
,
43
,
38
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
8
,
-
32768
,
-
32768
,
-
32768
,
461
,
462
,
-
32768
317
,
-
32768
,
14
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
3
53
,
-
32768
,
-
32768
,
285
,
0
,
-
32768
,
-
32768
,
3
49
,
-
32768
,
-
32768
,
-
32768
,
354
,
-
32768
,
-
32768
,
6
,
1
41
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
35
5
,
358
,
-
32768
,
385
,
-
32768
,
-
32768
,
155
,
-
32768
,
57
,
166
,
-
32768
,
363
,
34
0
,
-
32768
,
-
32768
,
3
4
8
,
43
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
421
,
-
32768
,
0
,
10
,
2
32
,
340
,
363
,
-
32768
,
-
32768
,
-
32768
,
43
,
38
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
18
,
-
3276
8
,
-
32768
,
-
32768
,
462
,
463
,
-
32768
};
static
const
short
yypgoto
[]
=
{
-
32768
,
-
32768
,
46
3
,
-
32768
,
325
,
-
32768
,
452
,
-
32768
,
-
32768
,
446
,
-
32768
,
-
32768
,
417
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
401
,
-
32768
,
36
3
,
-
32768
,
-
32768
,
36
6
,
-
32768
,
-
32768
,
414
,
-
32768
,
-
32768
,
328
,
-
32768
,
121
,
2
50
,
-
32768
,
133
,
-
32768
,
140
,
-
32768
,
-
32768
,
-
32768
,
260
,
-
32768
,
-
32768
,
-
32768
,
6
4
,
-
285
,
-
228
,
-
80
,
-
32768
,
-
22
,
-
32768
,
-
137
,
-
32768
,
27
6
,
-
32768
,
-
115
,
308
,
315
,
-
32768
,
-
31
,
-
32768
,
-
207
,
-
109
,
-
211
,
-
71
,
357
,
-
32768
,
-
5
,
-
32768
,
-
32768
,
-
32768
,
-
187
,
-
32768
,
172
,
-
133
,
89
,
-
45
,
-
32768
,
241
,
-
32768
,
-
242
,
-
32768
,
-
32768
,
-
32768
,
81
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
85
,
95
,
-
209
,
-
32768
,
-
32768
,
-
32768
,
142
,
-
125
,
-
14
8
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
1
,
-
32768
,
202
,
-
7
-
32768
,
46
6
,
-
32768
,
360
,
-
32768
,
453
,
-
32768
,
-
32768
,
446
,
-
32768
,
-
32768
,
417
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
401
,
-
32768
,
36
1
,
-
32768
,
-
32768
,
36
7
,
-
32768
,
-
32768
,
413
,
-
32768
,
-
32768
,
332
,
-
32768
,
120
,
2
42
,
-
32768
,
132
,
-
32768
,
137
,
-
32768
,
-
32768
,
-
32768
,
264
,
-
32768
,
-
32768
,
-
32768
,
6
0
,
-
327
,
-
228
,
-
80
,
-
32768
,
-
34
,
-
32768
,
-
137
,
-
32768
,
27
7
,
-
115
,
304
,
307
,
-
32768
,
-
31
,
-
32768
,
-
207
,
-
109
,
-
211
,
-
71
,
357
,
-
32768
,
-
5
,
-
32768
,
-
32768
,
-
32768
,
-
187
,
-
32768
,
171
,
-
133
,
89
,
-
45
,
-
32768
,
239
,
-
32768
,
-
242
,
-
32768
,
-
32768
,
-
32768
,
80
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
-
32768
,
90
,
93
,
-
209
,
-
32768
,
-
32768
,
-
32768
,
143
,
-
125
,
-
148
,
-
3276
8
,
-
32768
,
-
32768
,
-
32768
,
1
,
-
32768
,
200
,
-
7
};
...
...
@@ -666,55 +665,55 @@ static const short yypgoto[] = {-32768,
static
const
short
yytable
[]
=
{
15
,
5
,
120
,
272
,
5
,
292
,
15
,
236
,
238
,
10
,
197
,
179
,
276
,
278
,
279
,
10
,
10
,
117
,
282
,
283
,
163
,
10
,
426
,
10
,
114
,
10
,
143
,
178
,
132
,
43
4
,
65
,
10
,
426
,
10
,
114
,
10
,
143
,
178
,
132
,
43
3
,
65
,
7
,
63
,
72
,
159
,
160
,
427
,
79
,
64
,
10
,
11
,
71
,
426
,
10
,
11
,
78
,
296
,
426
,
19
,
65
,
296
,
63
,
217
,
218
,
159
,
160
,
427
,
64
,
10
,
159
,
160
,
427
,
16
,
1
,
2
,
10
,
168
,
79
,
10
,
171
,
67
,
28
,
343
,
1
,
2
,
78
,
198
,
10
,
168
,
370
,
319
,
171
,
144
,
43
5
,
132
,
154
,
115
,
436
,
29
,
155
,
149
,
171
,
144
,
43
4
,
132
,
154
,
115
,
435
,
29
,
155
,
149
,
179
,
353
,
320
,
179
,
381
,
145
,
295
,
163
,
118
,
133
,
150
,
34
,
72
,
221
,
226
,
402
,
178
,
79
,
316
,
178
,
71
,
32
,
289
,
310
,
139
,
78
,
153
,
289
,
325
,
292
,
150
,
441
,
72
,
221
,
226
,
402
,
178
,
79
,
316
,
178
,
71
,
441
,
289
,
310
,
139
,
78
,
153
,
289
,
325
,
292
,
118
,
289
,
408
,
-
72
,
152
,
118
,
268
,
118
,
181
,
118
,
219
,
428
,
44
3
,
339
,
219
,
164
,
180
,
12
,
387
,
30
,
202
,
17
,
229
,
442
,
393
,
441
,
230
,
201
,
209
,
211
,
118
,
428
,
293
,
397
,
442
,
133
,
428
,
210
,
31
,
68
,
314
,
306
,
10
,
307
,
33
,
203
,
220
,
1
,
2
,
112
,
220
,
-
28
1
,
166
,
306
,
10
,
168
,
169
,
170
,
171
,
1
,
2
,
124
,
217
,
218
,
274
,
36
,
243
,
275
,
418
,
165
,
219
,
428
,
44
2
,
339
,
219
,
164
,
180
,
12
,
387
,
229
,
202
,
17
,
347
,
230
,
393
,
440
,
348
,
201
,
209
,
211
,
118
,
428
,
293
,
397
,
-
280
,
133
,
428
,
210
,
30
,
68
,
314
,
306
,
10
,
307
,
124
,
203
,
220
,
1
,
2
,
112
,
220
,
3
1
,
166
,
306
,
10
,
168
,
169
,
170
,
171
,
1
,
2
,
359
,
217
,
218
,
274
,
360
,
243
,
275
,
418
,
165
,
166
,
167
,
10
,
168
,
169
,
170
,
171
,
1
,
2
,
202
,
244
,
66
,
379
,
73
,
219
,
37
,
394
,
273
,
181
,
395
,
277
,
181
,
108
,
349
,
245
,
246
,
180
,
421
,
80
,
180
,
388
,
354
,
235
,
111
,
203
,
294
,
116
,
302
,
124
,
302
,
247
,
311
,
172
,
315
,
310
,
398
,
1
,
2
,
3
47
,
127
,
220
,
166
,
3
48
,
10
,
168
,
169
,
170
,
171
,
359
,
248
,
173
,
324
,
360
,
202
,
166
,
249
,
10
,
168
,
169
,
170
,
171
,
20
,
362
,
125
,
250
,
128
,
363
,
293
,
13
4
,
391
,
21
,
365
,
251
,
174
,
252
,
-
25
5
,
237
,
126
,
203
,
-
255
,
345
,
118
,
314
,
245
,
411
,
135
,
376
,
377
,
412
,
378
,
175
,
22
,
12
9
,
23
,
10
,
356
,
245
,
356
,
369
,
1
,
2
,
1
36
,
24
,
327
,
328
,
329
,
330
,
138
,
419
,
10
9
,
1
10
,
380
,
420
,
141
,
331
,
166
,
142
,
10
,
168
,
169
,
170
,
171
,
1
,
2
,
249
,
10
,
168
,
1
84
,
185
,
171
,
1
,
2
,
1
,
2
,
159
,
160
,
156
,
249
,
389
,
157
,
294
,
159
,
160
,
244
,
302
,
158
,
180
,
83
,
84
,
188
,
3
22
,
323
,
311
,
389
,
82
,
315
,
207
,
245
,
246
,
341
,
342
,
180
,
213
,
10
,
405
,
83
,
84
,
327
,
328
,
329
,
330
,
414
,
415
,
247
,
410
,
215
,
216
,
85
,
38
,
86
,
-
282
,
87
,
23
1
,
232
,
233
,
234
,
239
,
241
,
118
,
269
,
244
,
32
,
379
,
73
,
219
,
33
,
394
,
273
,
181
,
395
,
277
,
181
,
34
,
349
,
245
,
246
,
180
,
421
,
36
,
180
,
388
,
354
,
235
,
37
,
203
,
294
,
66
,
302
,
80
,
302
,
247
,
311
,
172
,
315
,
310
,
398
,
1
,
2
,
3
62
,
108
,
220
,
166
,
3
63
,
10
,
168
,
169
,
170
,
171
,
411
,
248
,
173
,
324
,
412
,
202
,
166
,
249
,
10
,
168
,
169
,
170
,
171
,
20
,
419
,
111
,
250
,
116
,
420
,
293
,
12
4
,
391
,
21
,
365
,
251
,
174
,
252
,
-
25
4
,
237
,
125
,
203
,
-
254
,
345
,
118
,
314
,
245
,
109
,
110
,
376
,
377
,
126
,
378
,
175
,
22
,
12
7
,
23
,
10
,
356
,
245
,
356
,
369
,
1
,
2
,
1
29
,
24
,
327
,
328
,
329
,
330
,
1
,
2
,
15
9
,
1
60
,
380
,
184
,
185
,
331
,
166
,
128
,
10
,
168
,
169
,
170
,
171
,
1
,
2
,
249
,
10
,
168
,
1
59
,
160
,
171
,
1
,
2
,
327
,
328
,
329
,
330
,
135
,
249
,
389
,
134
,
294
,
83
,
84
,
244
,
302
,
136
,
180
,
322
,
323
,
341
,
3
42
,
138
,
311
,
389
,
82
,
315
,
141
,
245
,
246
,
414
,
415
,
180
,
142
,
156
,
405
,
83
,
84
,
157
,
188
,
158
,
207
,
10
,
231
,
247
,
410
,
213
,
215
,
85
,
38
,
86
,
216
,
87
,
-
28
1
,
232
,
233
,
234
,
239
,
241
,
118
,
269
,
242
,
88
,
248
,
267
,
280
,
89
,
284
,
288
,
249
,
90
,
410
,
303
,
91
,
41
,
42
,
43
,
305
,
250
,
318
,
317
,
326
,
338
,
405
,
92
,
45
,
251
,
43
9
,
252
,
93
,
46
,
326
,
338
,
405
,
92
,
45
,
251
,
43
8
,
252
,
93
,
46
,
94
,
47
,
95
,
334
,
336
,
340
,
344
,
350
,
346
,
48
,
351
,
96
,
97
,
352
,
357
,
36
8
,
10
,
361
,
49
,
366
,
50
,
1
,
2
,
3
72
,
375
,
51
,
98
,
52
,
53
,
54
,
373
,
364
,
386
,
367
,
38
,
203
,
382
,
374
,
99
,
385
,
4
45
,
446
,
406
,
182
,
18
,
6
,
401
,
407
,
41
6
,
39
,
4
17
,
35
,
81
,
40
,
113
,
137
,
424
,
140
,
106
,
41
,
42
,
43
,
208
,
399
,
392
,
44
,
304
,
390
,
271
,
287
,
45
,
440
,
227
,
371
,
422
,
46
,
425
,
47
,
337
,
228
,
4
33
,
396
,
423
,
199
,
0
,
48
,
358
,
0
,
0
,
0
,
351
,
96
,
97
,
352
,
357
,
36
4
,
10
,
361
,
49
,
366
,
50
,
1
,
2
,
3
68
,
372
,
51
,
98
,
52
,
53
,
54
,
203
,
373
,
375
,
367
,
38
,
374
,
424
,
386
,
99
,
385
,
4
06
,
444
,
445
,
407
,
416
,
18
,
382
,
417
,
6
,
39
,
4
01
,
35
,
81
,
40
,
113
,
140
,
137
,
106
,
304
,
41
,
42
,
43
,
399
,
392
,
390
,
44
,
208
,
439
,
227
,
271
,
45
,
228
,
371
,
287
,
422
,
46
,
337
,
47
,
182
,
432
,
4
23
,
425
,
396
,
199
,
358
,
48
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
49
,
0
,
50
,
0
,
189
,
190
,
0
,
51
,
0
,
52
,
53
,
54
,
191
,
0
,
0
,
0
,
85
,
38
,
86
,
0
,
87
,
192
,
0
,
0
,
0
,
0
,
...
...
@@ -753,47 +752,47 @@ static const short yycheck[] = { 7,
10
,
281
,
14
,
15
,
74
,
147
,
9
,
10
,
321
,
105
,
13
,
79
,
73
,
155
,
108
,
112
,
77
,
61
,
112
,
45
,
216
,
301
,
118
,
219
,
337
,
93
,
234
,
213
,
114
,
99
,
56
,
3
,
110
,
184
,
185
,
106
,
216
,
115
,
242
,
219
,
110
,
57
,
106
,
239
,
114
,
115
,
124
,
106
,
252
,
348
,
56
,
429
,
110
,
184
,
185
,
106
,
216
,
115
,
242
,
219
,
110
,
439
,
106
,
239
,
114
,
115
,
124
,
106
,
252
,
348
,
114
,
106
,
117
,
108
,
124
,
114
,
207
,
114
,
136
,
114
,
37
,
114
,
115
,
267
,
37
,
135
,
136
,
108
,
346
,
8
8
,
84
,
108
,
108
,
429
,
354
,
108
,
112
,
147
,
156
,
157
,
114
,
114
,
233
,
361
,
440
,
155
,
114
,
157
,
88
,
111
,
241
,
106
,
9
,
108
,
88
,
109
,
73
,
14
,
15
,
111
,
73
,
107
,
7
,
106
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
1
17
,
15
,
16
,
216
,
110
,
21
,
219
,
400
,
6
,
37
,
114
,
115
,
267
,
37
,
135
,
136
,
108
,
346
,
10
8
,
84
,
108
,
108
,
112
,
354
,
108
,
112
,
147
,
156
,
157
,
114
,
114
,
233
,
361
,
107
,
155
,
114
,
157
,
88
,
111
,
241
,
106
,
9
,
108
,
117
,
109
,
73
,
14
,
15
,
111
,
73
,
88
,
7
,
106
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
1
08
,
15
,
16
,
216
,
112
,
21
,
219
,
400
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
84
,
35
,
15
,
336
,
50
,
37
,
25
,
355
,
215
,
216
,
358
,
117
,
219
,
111
,
294
,
49
,
50
,
216
,
405
,
43
,
219
,
346
,
302
,
107
,
107
,
109
,
233
,
107
,
235
,
117
,
237
,
65
,
239
,
49
,
241
,
360
,
361
,
14
,
15
,
108
,
75
,
35
,
57
,
336
,
50
,
37
,
88
,
355
,
215
,
216
,
358
,
117
,
219
,
3
,
294
,
49
,
50
,
216
,
405
,
110
,
219
,
346
,
302
,
107
,
25
,
109
,
233
,
15
,
235
,
43
,
237
,
65
,
239
,
49
,
241
,
360
,
361
,
14
,
15
,
108
,
111
,
73
,
7
,
112
,
9
,
10
,
11
,
12
,
13
,
108
,
84
,
67
,
251
,
112
,
84
,
7
,
90
,
9
,
10
,
11
,
12
,
13
,
15
,
108
,
85
,
99
,
55
,
112
,
348
,
3
,
350
,
13
,
15
,
108
,
107
,
99
,
107
,
112
,
348
,
117
,
350
,
24
,
317
,
107
,
90
,
109
,
108
,
107
,
85
,
109
,
112
,
288
,
114
,
363
,
49
,
1
08
,
117
,
332
,
333
,
112
,
335
,
107
,
45
,
8
5
,
47
,
9
,
303
,
49
,
305
,
64
,
14
,
15
,
3
,
56
,
101
,
102
,
103
,
104
,
108
,
108
,
111
,
112
,
64
,
112
,
108
,
112
,
7
,
107
,
9
,
10
,
11
,
288
,
114
,
363
,
49
,
1
11
,
112
,
332
,
333
,
85
,
335
,
107
,
45
,
7
5
,
47
,
9
,
303
,
49
,
305
,
64
,
14
,
15
,
85
,
56
,
101
,
102
,
103
,
104
,
14
,
15
,
16
,
17
,
64
,
16
,
17
,
112
,
7
,
55
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
90
,
9
,
10
,
16
,
17
,
13
,
14
,
15
,
14
,
15
,
16
,
17
,
113
,
90
,
346
,
11
3
,
348
,
1
6
,
17
,
35
,
352
,
107
,
346
,
14
,
15
,
10
,
33
,
34
,
360
,
361
,
3
,
363
,
3
,
49
,
50
,
16
,
17
,
361
,
117
,
9
,
372
,
14
,
15
,
101
,
102
,
103
,
104
,
394
,
395
,
65
,
382
,
117
,
113
,
26
,
27
,
28
,
1
07
,
30
,
115
,
39
,
107
,
72
,
107
,
107
,
114
,
5
,
14
,
15
,
101
,
102
,
103
,
104
,
117
,
90
,
346
,
3
,
348
,
1
4
,
15
,
35
,
352
,
3
,
346
,
33
,
34
,
16
,
17
,
108
,
360
,
361
,
3
,
363
,
108
,
49
,
50
,
394
,
395
,
361
,
107
,
113
,
372
,
14
,
15
,
113
,
10
,
107
,
3
,
9
,
115
,
65
,
382
,
117
,
117
,
26
,
27
,
28
,
1
13
,
30
,
107
,
39
,
107
,
72
,
107
,
107
,
114
,
5
,
109
,
40
,
84
,
109
,
92
,
44
,
99
,
29
,
90
,
48
,
408
,
72
,
51
,
52
,
53
,
54
,
72
,
99
,
29
,
100
,
110
,
107
,
420
,
62
,
63
,
107
,
424
,
109
,
67
,
68
,
69
,
70
,
71
,
100
,
109
,
5
,
86
,
72
,
116
,
78
,
108
,
80
,
81
,
112
,
108
,
1
05
,
9
,
109
,
87
,
107
,
89
,
14
,
15
,
10
7
,
106
,
94
,
95
,
96
,
97
,
98
,
10
8
,
110
,
107
,
118
,
27
,
109
,
119
,
110
,
107
,
110
,
0
,
0
,
112
,
139
,
13
,
3
,
118
,
110
,
110
,
42
,
11
0
,
26
,
56
,
46
,
74
,
110
,
117
,
115
,
65
,
52
,
53
,
54
,
155
,
363
,
352
,
58
,
237
,
348
,
213
,
230
,
63
,
428
,
185
,
322
,
406
,
68
,
412
,
70
,
258
,
185
,
4
20
,
360
,
408
,
147
,
-
1
,
78
,
305
,
-
1
,
-
1
,
-
1
,
108
,
80
,
81
,
112
,
108
,
1
10
,
9
,
109
,
87
,
107
,
89
,
14
,
15
,
10
5
,
107
,
94
,
95
,
96
,
97
,
98
,
10
9
,
108
,
106
,
118
,
27
,
110
,
117
,
107
,
107
,
110
,
112
,
0
,
0
,
110
,
110
,
13
,
119
,
110
,
3
,
42
,
11
8
,
26
,
56
,
46
,
74
,
115
,
110
,
65
,
237
,
52
,
53
,
54
,
363
,
352
,
348
,
58
,
155
,
428
,
185
,
213
,
63
,
185
,
322
,
230
,
406
,
68
,
258
,
70
,
139
,
420
,
4
08
,
412
,
360
,
147
,
305
,
78
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
87
,
-
1
,
89
,
-
1
,
14
,
15
,
-
1
,
94
,
-
1
,
96
,
97
,
98
,
22
,
-
1
,
-
1
,
-
1
,
26
,
27
,
28
,
-
1
,
30
,
31
,
-
1
,
-
1
,
-
1
,
-
1
,
...
...
@@ -1364,13 +1363,13 @@ yyreduce:
switch
(
yyn
)
{
case
1
:
#line 32
5
"asn1p_y.y"
#line 32
4
"asn1p_y.y"
{
*
(
void
**
)
param
=
yyvsp
[
0
].
a_grammar
;
;
break
;}
case
2
:
#line 33
1
"asn1p_y.y"
#line 33
0
"asn1p_y.y"
{
yyval
.
a_grammar
=
asn1p_new
();
checkmem
(
yyval
.
a_grammar
);
...
...
@@ -1378,14 +1377,14 @@ case 2:
;
break
;}
case
3
:
#line 33
6
"asn1p_y.y"
#line 33
5
"asn1p_y.y"
{
yyval
.
a_grammar
=
yyvsp
[
-
1
].
a_grammar
;
TQ_ADD
(
&
(
yyval
.
a_grammar
->
modules
),
yyvsp
[
0
].
a_module
,
mod_next
);
;
break
;}
case
4
:
#line 35
7
"asn1p_y.y"
#line 35
6
"asn1p_y.y"
{
if
(
yyvsp
[
-
1
].
a_module
)
{
...
...
@@ -1402,27 +1401,27 @@ case 4:
;
break
;}
case
5
:
#line 37
8
"asn1p_y.y"
#line 37
7
"asn1p_y.y"
{
yyval
.
a_oid
=
0
;
;
break
;}
case
6
:
#line 37
9
"asn1p_y.y"
#line 37
8
"asn1p_y.y"
{
yyval
.
a_oid
=
yyvsp
[
0
].
a_oid
;
;
break
;}
case
7
:
#line 38
3
"asn1p_y.y"
#line 38
2
"asn1p_y.y"
{
yyval
.
a_oid
=
yyvsp
[
-
1
].
a_oid
;
;
break
;}
case
8
:
#line 38
6
"asn1p_y.y"
#line 38
5
"asn1p_y.y"
{
yyval
.
a_oid
=
0
;
;
break
;}
case
9
:
#line 39
2
"asn1p_y.y"
#line 39
1
"asn1p_y.y"
{
yyval
.
a_oid
=
asn1p_oid_new
();
asn1p_oid_add_arc
(
yyval
.
a_oid
,
&
yyvsp
[
0
].
a_oid_arc
);
...
...
@@ -1431,7 +1430,7 @@ case 9:
;
break
;}
case
10
:
#line 39
8
"asn1p_y.y"
#line 39
7
"asn1p_y.y"
{
yyval
.
a_oid
=
yyvsp
[
-
1
].
a_oid
;
asn1p_oid_add_arc
(
yyval
.
a_oid
,
&
yyvsp
[
0
].
a_oid_arc
);
...
...
@@ -1440,74 +1439,74 @@ case 10:
;
break
;}
case
11
:
#line 40
7
"asn1p_y.y"
#line 40
6
"asn1p_y.y"
{
/* iso */
yyval
.
a_oid_arc
.
name
=
yyvsp
[
0
].
tv_str
;
yyval
.
a_oid_arc
.
number
=
-
1
;
;
break
;}
case
12
:
#line 41
1
"asn1p_y.y"
#line 41
0
"asn1p_y.y"
{
/* iso(1) */
yyval
.
a_oid_arc
.
name
=
yyvsp
[
-
3
].
tv_str
;
yyval
.
a_oid_arc
.
number
=
yyvsp
[
-
1
].
a_int
;
;
break
;}
case
13
:
#line 41
5
"asn1p_y.y"
#line 41
4
"asn1p_y.y"
{
/* 1 */
yyval
.
a_oid_arc
.
name
=
0
;
yyval
.
a_oid_arc
.
number
=
yyvsp
[
0
].
a_int
;
;
break
;}
case
14
:
#line 42
5
"asn1p_y.y"
#line 42
4
"asn1p_y.y"
{
yyval
.
a_module_flags
=
MSF_NOFLAGS
;
;
break
;}
case
15
:
#line 42
6
"asn1p_y.y"
#line 42
5
"asn1p_y.y"
{
yyval
.
a_module_flags
=
yyvsp
[
0
].
a_module_flags
;
;
break
;}
case
16
:
#line 43
5
"asn1p_y.y"
#line 43
4
"asn1p_y.y"
{
yyval
.
a_module_flags
=
yyvsp
[
0
].
a_module_flags
;
;
break
;}
case
17
:
#line 43
8
"asn1p_y.y"
#line 43
7
"asn1p_y.y"
{
yyval
.
a_module_flags
=
yyvsp
[
-
1
].
a_module_flags
|
yyvsp
[
0
].
a_module_flags
;
;
break
;}
case
18
:
#line 44
7
"asn1p_y.y"
#line 44
6
"asn1p_y.y"
{
yyval
.
a_module_flags
=
MSF_EXPLICIT_TAGS
;
;
break
;}
case
19
:
#line 4
50
"asn1p_y.y"
#line 4
49
"asn1p_y.y"
{
yyval
.
a_module_flags
=
MSF_IMPLICIT_TAGS
;
;
break
;}
case
20
:
#line 45
3
"asn1p_y.y"
#line 45
2
"asn1p_y.y"
{
yyval
.
a_module_flags
=
MSF_AUTOMATIC_TAGS
;
;
break
;}
case
21
:
#line 45
6
"asn1p_y.y"
#line 45
5
"asn1p_y.y"
{
yyval
.
a_module_flags
=
MSF_EXTENSIBILITY_IMPLIED
;
;
break
;}
case
22
:
#line 4
60
"asn1p_y.y"
#line 4
59
"asn1p_y.y"
{
/* X.680Amd1 specifies TAG and XER */
if
(
strcmp
(
yyvsp
[
-
1
].
tv_str
,
"TAG"
)
==
0
)
{
...
...
@@ -1525,23 +1524,23 @@ case 22:
;
break
;}
case
23
:
#line 48
1
"asn1p_y.y"
#line 48
0
"asn1p_y.y"
{
yyval
.
a_module
=
0
;
;
break
;}
case
24
:
#line 48
2
"asn1p_y.y"
#line 48
1
"asn1p_y.y"
{
yyval
.
a_module
=
yyvsp
[
0
].
a_module
;
;
break
;}
case
25
:
#line 49
1
"asn1p_y.y"
#line 49
0
"asn1p_y.y"
{
yyval
.
a_module
=
yyvsp
[
0
].
a_module
;
;
break
;}
case
26
:
#line 49
4
"asn1p_y.y"
#line 49
3
"asn1p_y.y"
{
yyval
.
a_module
=
yyvsp
[
-
1
].
a_module
;
...
...
@@ -1571,13 +1570,13 @@ case 26:
;
break
;}
case
27
:
#line 52
7
"asn1p_y.y"
#line 52
6
"asn1p_y.y"
{
yyval
.
a_module
=
yyvsp
[
0
].
a_module
;
;
break
;}
case
28
:
#line 5
30
"asn1p_y.y"
#line 5
29
"asn1p_y.y"
{
yyval
.
a_module
=
asn1p_module_new
();
checkmem
(
yyval
.
a_module
);
...
...
@@ -1589,7 +1588,7 @@ case 28:
;
break
;}
case
29
:
#line 53
9
"asn1p_y.y"
#line 53
8
"asn1p_y.y"
{
yyval
.
a_module
=
asn1p_module_new
();
checkmem
(
yyval
.
a_module
);
...
...
@@ -1599,7 +1598,7 @@ case 29:
;
break
;}
case
30
:
#line 54
6
"asn1p_y.y"
#line 54
5
"asn1p_y.y"
{
yyval
.
a_module
=
asn1p_module_new
();
checkmem
(
yyval
.
a_module
);
...
...
@@ -1609,7 +1608,7 @@ case 30:
;
break
;}
case
31
:
#line 55
9
"asn1p_y.y"
#line 55
8
"asn1p_y.y"
{
yyval
.
a_module
=
asn1p_module_new
();
checkmem
(
yyval
.
a_module
);
...
...
@@ -1619,11 +1618,11 @@ case 31:
;
break
;}
case
32
:
#line 56
7
"asn1p_y.y"
#line 56
6
"asn1p_y.y"
{
asn1p_lexer_hack_push_encoding_control
();
;
break
;}
case
33
:
#line 56
8
"asn1p_y.y"
#line 56
7
"asn1p_y.y"
{
fprintf
(
stderr
,
"WARNING: ENCODING-CONTROL %s "
...
...
@@ -1634,7 +1633,7 @@ case 33:
;
break
;}
case
34
:
#line 5
80
"asn1p_y.y"
#line 5
79
"asn1p_y.y"
{
return
yyerror
(
"Attempt to redefine a standard basic string type, "
...
...
@@ -1642,7 +1641,7 @@ case 34:
;
break
;}
case
35
:
#line 59
3
"asn1p_y.y"
#line 59
2
"asn1p_y.y"
{
if
(
!
saved_aid
&&
0
)
return
yyerror
(
"Unterminated IMPORTS FROM, "
...
...
@@ -1652,13 +1651,13 @@ case 35:
;
break
;}
case
36
:
#line 60
3
"asn1p_y.y"
#line 60
2
"asn1p_y.y"
{
return
yyerror
(
"Empty IMPORTS list"
);
;
break
;}
case
37
:
#line 60
9
"asn1p_y.y"
#line 60
8
"asn1p_y.y"
{
yyval
.
a_module
=
asn1p_module_new
();
checkmem
(
yyval
.
a_module
);
...
...
@@ -1666,22 +1665,22 @@ case 37:
;
break
;}
case
38
:
#line 61
4
"asn1p_y.y"
#line 61
3
"asn1p_y.y"
{
yyval
.
a_module
=
yyvsp
[
-
1
].
a_module
;
TQ_ADD
(
&
(
yyval
.
a_module
->
imports
),
yyvsp
[
0
].
a_xports
,
xp_next
);
;
break
;}
case
39
:
#line 62
1
"asn1p_y.y"
#line 62
0
"asn1p_y.y"
{
memset
(
&
yyval
.
a_aid
,
0
,
sizeof
(
yyval
.
a_aid
));
;
break
;}
case
40
:
#line 62
2
"asn1p_y.y"
#line 62
1
"asn1p_y.y"
{
yyval
.
a_aid
.
oid
=
yyvsp
[
0
].
a_oid
;
;
break
;}
case
41
:
#line 62
6
"asn1p_y.y"
#line 62
5
"asn1p_y.y"
{
yyval
.
a_xports
=
yyvsp
[
-
3
].
a_xports
;
yyval
.
a_xports
->
fromModuleName
=
yyvsp
[
-
1
].
tv_str
;
...
...
@@ -1692,7 +1691,7 @@ case 41:
;
break
;}
case
42
:
#line 63
7
"asn1p_y.y"
#line 63
6
"asn1p_y.y"
{
yyval
.
a_xports
=
asn1p_xports_new
();
checkmem
(
yyval
.
a_xports
);
...
...
@@ -1700,14 +1699,14 @@ case 42:
;
break
;}
case
43
:
#line 64
2
"asn1p_y.y"
#line 64
1
"asn1p_y.y"
{
yyval
.
a_xports
=
yyvsp
[
-
2
].
a_xports
;
TQ_ADD
(
&
(
yyval
.
a_xports
->
members
),
yyvsp
[
0
].
a_expr
,
next
);
;
break
;}
case
44
:
#line 64
9
"asn1p_y.y"
#line 64
8
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1716,7 +1715,7 @@ case 44:
;
break
;}
case
45
:
#line 65
5
"asn1p_y.y"
#line 65
4
"asn1p_y.y"
{
/* Completely equivalent to above */
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1725,7 +1724,7 @@ case 45:
;
break
;}
case
46
:
#line 66
1
"asn1p_y.y"
#line 66
0
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1734,19 +1733,19 @@ case 46:
;
break
;}
case
47
:
#line 6
70
"asn1p_y.y"
#line 6
69
"asn1p_y.y"
{
yyval
.
a_xports
=
yyvsp
[
-
1
].
a_xports
;
;
break
;}
case
48
:
#line 67
3
"asn1p_y.y"
#line 67
2
"asn1p_y.y"
{
yyval
.
a_xports
=
0
;
;
break
;}
case
49
:
#line 67
6
"asn1p_y.y"
#line 67
5
"asn1p_y.y"
{
/* Empty EXPORTS clause effectively prohibits export. */
yyval
.
a_xports
=
asn1p_xports_new
();
...
...
@@ -1754,7 +1753,7 @@ case 49:
;
break
;}
case
50
:
#line 68
4
"asn1p_y.y"
#line 68
3
"asn1p_y.y"
{
yyval
.
a_xports
=
asn1p_xports_new
();
assert
(
yyval
.
a_xports
);
...
...
@@ -1762,14 +1761,14 @@ case 50:
;
break
;}
case
51
:
#line 68
9
"asn1p_y.y"
#line 68
8
"asn1p_y.y"
{
yyval
.
a_xports
=
yyvsp
[
-
2
].
a_xports
;
TQ_ADD
(
&
(
yyval
.
a_xports
->
members
),
yyvsp
[
0
].
a_expr
,
next
);
;
break
;}
case
52
:
#line 69
6
"asn1p_y.y"
#line 69
5
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1778,7 +1777,7 @@ case 52:
;
break
;}
case
53
:
#line 70
2
"asn1p_y.y"
#line 70
1
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1787,7 +1786,7 @@ case 53:
;
break
;}
case
54
:
#line 70
8
"asn1p_y.y"
#line 70
7
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1796,11 +1795,11 @@ case 54:
;
break
;}
case
55
:
#line 71
9
"asn1p_y.y"
#line 71
8
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
;
break
;}
case
56
:
#line 71
9
"asn1p_y.y"
#line 71
8
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
4
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
0
);
...
...
@@ -1810,7 +1809,7 @@ case 56:
;
break
;}
case
57
:
#line 72
9
"asn1p_y.y"
#line 72
8
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1820,7 +1819,7 @@ case 57:
;
break
;}
case
58
:
#line 73
6
"asn1p_y.y"
#line 73
5
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1829,7 +1828,7 @@ case 58:
;
break
;}
case
59
:
#line 75
4
"asn1p_y.y"
#line 75
3
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
yyval
.
a_expr
->
Identifier
=
yyvsp
[
-
2
].
tv_str
;
...
...
@@ -1838,7 +1837,7 @@ case 59:
;
break
;}
case
60
:
#line 7
60
"asn1p_y.y"
#line 7
59
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
yyval
.
a_expr
->
Identifier
=
yyvsp
[
-
2
].
tv_str
;
...
...
@@ -1847,7 +1846,7 @@ case 60:
;
break
;}
case
61
:
#line 77
6
"asn1p_y.y"
#line 77
5
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
0
);
...
...
@@ -1857,7 +1856,7 @@ case 61:
;
break
;}
case
62
:
#line 78
6
"asn1p_y.y"
#line 78
5
"asn1p_y.y"
{
int
ret
;
yyval
.
a_plist
=
asn1p_paramlist_new
(
yylineno
);
...
...
@@ -1869,7 +1868,7 @@ case 62:
;
break
;}
case
63
:
#line 79
5
"asn1p_y.y"
#line 79
4
"asn1p_y.y"
{
int
ret
;
yyval
.
a_plist
=
yyvsp
[
-
2
].
a_plist
;
...
...
@@ -1880,14 +1879,14 @@ case 63:
;
break
;}
case
64
:
#line 80
6
"asn1p_y.y"
#line 80
5
"asn1p_y.y"
{
yyval
.
a_parg
.
governor
=
NULL
;
yyval
.
a_parg
.
argument
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
65
:
#line 8
10
"asn1p_y.y"
#line 8
09
"asn1p_y.y"
{
int
ret
;
yyval
.
a_parg
.
governor
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -1897,7 +1896,7 @@ case 65:
;
break
;}
case
66
:
#line 81
7
"asn1p_y.y"
#line 81
6
"asn1p_y.y"
{
int
ret
;
yyval
.
a_parg
.
governor
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -1907,7 +1906,7 @@ case 66:
;
break
;}
case
67
:
#line 82
4
"asn1p_y.y"
#line 82
3
"asn1p_y.y"
{
int
ret
;
yyval
.
a_parg
.
governor
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -1918,7 +1917,7 @@ case 67:
;
break
;}
case
68
:
#line 83
5
"asn1p_y.y"
#line 83
4
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1926,20 +1925,20 @@ case 68:
;
break
;}
case
69
:
#line 8
40
"asn1p_y.y"
#line 8
39
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
70
:
#line 84
7
"asn1p_y.y"
#line 84
6
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
;
break
;}
case
71
:
#line 8
50
"asn1p_y.y"
#line 8
49
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1949,15 +1948,15 @@ case 71:
;
break
;}
case
72
:
#line 87
4
"asn1p_y.y"
#line 87
3
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
;
break
;}
case
73
:
#line 87
5
"asn1p_y.y"
#line 87
4
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
;
break
;}
case
74
:
#line 87
8
"asn1p_y.y"
#line 87
7
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -1965,14 +1964,14 @@ case 74:
;
break
;}
case
75
:
#line 88
3
"asn1p_y.y"
#line 88
2
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
76
:
#line 8
90
"asn1p_y.y"
#line 8
89
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
0
);
...
...
@@ -1982,7 +1981,7 @@ case 76:
;
break
;}
case
77
:
#line 89
7
"asn1p_y.y"
#line 89
6
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
yyvsp
[
0
].
a_marker
.
flags
|=
yyval
.
a_expr
->
marker
.
flags
;
...
...
@@ -1991,7 +1990,7 @@ case 77:
;
break
;}
case
78
:
#line 90
3
"asn1p_y.y"
#line 90
2
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2001,13 +2000,13 @@ case 78:
;
break
;}
case
79
:
#line 9
10
"asn1p_y.y"
#line 9
09
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
;
break
;}
case
80
:
#line 91
6
"asn1p_y.y"
#line 91
5
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2015,14 +2014,14 @@ case 80:
;
break
;}
case
81
:
#line 92
1
"asn1p_y.y"
#line 92
0
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
82
:
#line 92
8
"asn1p_y.y"
#line 92
7
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
0
);
...
...
@@ -2030,20 +2029,20 @@ case 82:
;
break
;}
case
83
:
#line 93
3
"asn1p_y.y"
#line 93
2
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
;
break
;}
case
84
:
#line 93
6
"asn1p_y.y"
#line 93
5
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
_fixup_anonymous_identifier
(
yyval
.
a_expr
);
;
break
;}
case
85
:
#line 94
3
"asn1p_y.y"
#line 94
2
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2053,15 +2052,15 @@ case 85:
;
break
;}
case
86
:
#line 95
3
"asn1p_y.y"
#line 95
2
"asn1p_y.y"
{
yyval
.
a_int
=
0
;
;
break
;}
case
87
:
#line 95
4
"asn1p_y.y"
#line 95
3
"asn1p_y.y"
{
yyval
.
a_int
=
1
;
;
break
;}
case
88
:
#line 95
8
"asn1p_y.y"
#line 95
7
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2071,14 +2070,14 @@ case 88:
;
break
;}
case
89
:
#line 96
5
"asn1p_y.y"
#line 96
4
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
90
:
#line 97
5
"asn1p_y.y"
#line 97
4
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2089,7 +2088,7 @@ case 90:
;
break
;}
case
91
:
#line 98
5
"asn1p_y.y"
#line 98
4
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
yyval
.
a_expr
->
Identifier
=
yyvsp
[
-
3
].
tv_str
;
...
...
@@ -2101,7 +2100,7 @@ case 91:
;
break
;}
case
92
:
#line 99
6
"asn1p_y.y"
#line 99
5
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
yyval
.
a_expr
->
Identifier
=
yyvsp
[
-
2
].
tv_str
;
...
...
@@ -2112,7 +2111,7 @@ case 92:
;
break
;}
case
93
:
#line 100
6
"asn1p_y.y"
#line 100
5
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2124,7 +2123,7 @@ case 93:
;
break
;}
case
94
:
#line 101
7
"asn1p_y.y"
#line 101
6
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
yyval
.
a_expr
->
Identifier
=
yyvsp
[
-
2
].
tv_str
;
...
...
@@ -2135,7 +2134,7 @@ case 94:
;
break
;}
case
95
:
#line 102
7
"asn1p_y.y"
#line 102
6
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2147,7 +2146,7 @@ case 95:
;
break
;}
case
96
:
#line 103
8
"asn1p_y.y"
#line 103
7
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2159,72 +2158,67 @@ case 96:
;
break
;}
case
97
:
#line 10
50
"asn1p_y.y"
#line 10
49
"asn1p_y.y"
{
yyval
.
a_wsynt
=
0
;
;
break
;}
case
98
:
#line 105
1
"asn1p_y.y"
#line 105
0
"asn1p_y.y"
{
yyval
.
a_wsynt
=
yyvsp
[
0
].
a_wsynt
;
;
break
;}
case
99
:
#line 105
8
"asn1p_y.y"
#line 105
7
"asn1p_y.y"
{
asn1p_lexer_hack_enable_with_syntax
();
;
break
;}
case
100
:
#line 10
60
"asn1p_y.y"
#line 10
59
"asn1p_y.y"
{
yyval
.
a_wsynt
=
yyvsp
[
-
1
].
a_wsynt
;
;
break
;}
case
101
:
#line 106
6
"asn1p_y.y"
#line 106
5
"asn1p_y.y"
{
yyval
.
a_wsynt
=
asn1p_wsyntx_new
();
TQ_ADD
(
&
(
yyval
.
a_wsynt
->
chunks
),
yyvsp
[
0
].
a_wchunk
,
next
);
;
break
;}
case
102
:
#line 10
70
"asn1p_y.y"
#line 10
69
"asn1p_y.y"
{
yyval
.
a_wsynt
=
yyvsp
[
-
1
].
a_wsynt
;
TQ_ADD
(
&
(
yyval
.
a_wsynt
->
chunks
),
yyvsp
[
0
].
a_wchunk
,
next
);
;
break
;}
case
103
:
#line 107
7
"asn1p_y.y"
#line 107
6
"asn1p_y.y"
{
yyval
.
a_wchunk
=
asn1p_wsyntx_chunk_frombuf
(
yyvsp
[
0
].
tv_opaque
.
buf
,
yyvsp
[
0
].
tv_opaque
.
len
,
0
);
yyval
.
a_wchunk
->
type
=
WC_WHITESPACE
;
;
break
;}
case
104
:
#line 108
1
"asn1p_y.y"
#line 108
0
"asn1p_y.y"
{
yyval
.
a_wchunk
=
asn1p_wsyntx_chunk_frombuf
(
yyvsp
[
0
].
tv_str
,
strlen
(
yyvsp
[
0
].
tv_str
),
0
);
;
break
;}
case
105
:
#line 108
4
"asn1p_y.y"
#line 108
3
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
ref
=
asn1p_ref_new
(
yylineno
);
checkmem
(
ref
);
ret
=
asn1p_ref_add_component
(
ref
,
yyvsp
[
0
].
a_refcomp
.
name
,
yyvsp
[
0
].
a_refcomp
.
lex_type
);
checkmem
(
ret
==
0
);
yyval
.
a_wchunk
=
asn1p_wsyntx_chunk_fromref
(
ref
,
0
);
yyval
.
a_wchunk
=
asn1p_wsyntx_chunk_frombuf
(
yyvsp
[
0
].
a_refcomp
.
name
,
strlen
(
yyvsp
[
0
].
a_refcomp
.
name
),
0
);
yyval
.
a_wchunk
->
type
=
WC_FIELD
;
;
break
;}
case
106
:
#line 10
93
"asn1p_y.y"
#line 10
87
"asn1p_y.y"
{
yyval
.
a_wchunk
=
asn1p_wsyntx_chunk_fromsyntax
(
yyvsp
[
-
1
].
a_wsynt
);
;
break
;}
case
107
:
#line 109
9
"asn1p_y.y"
#line 109
3
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2235,7 +2229,7 @@ case 107:
;
break
;}
case
108
:
#line 110
7
"asn1p_y.y"
#line 110
1
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2247,7 +2241,7 @@ case 108:
;
break
;}
case
109
:
#line 111
6
"asn1p_y.y"
#line 111
0
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2259,7 +2253,7 @@ case 109:
;
break
;}
case
110
:
#line 112
8
"asn1p_y.y"
#line 112
2
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
yyval
.
a_expr
->
tag
=
yyvsp
[
-
2
].
a_tag
;
...
...
@@ -2281,14 +2275,14 @@ case 110:
;
break
;}
case
111
:
#line 11
50
"asn1p_y.y"
#line 11
44
"asn1p_y.y"
{
yyval
.
a_int
=
asn1p_as_pointer
?
EM_INDIRECT
:
0
;
asn1p_as_pointer
=
0
;
;
break
;}
case
112
:
#line 115
7
"asn1p_y.y"
#line 115
1
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
yyval
.
a_expr
->
marker
.
flags
|=
yyvsp
[
-
1
].
a_int
;
...
...
@@ -2307,13 +2301,13 @@ case 112:
;
break
;}
case
113
:
#line 117
6
"asn1p_y.y"
#line 117
0
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
;
break
;}
case
114
:
#line 117
9
"asn1p_y.y"
#line 117
3
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
assert
(
yyval
.
a_expr
->
expr_type
==
A1TC_INVALID
);
...
...
@@ -2322,7 +2316,7 @@ case 114:
;
break
;}
case
115
:
#line 11
85
"asn1p_y.y"
#line 11
79
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
assert
(
yyval
.
a_expr
->
expr_type
==
A1TC_INVALID
);
...
...
@@ -2331,7 +2325,7 @@ case 115:
;
break
;}
case
116
:
#line 11
91
"asn1p_y.y"
#line 11
85
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
assert
(
yyval
.
a_expr
->
expr_type
==
A1TC_INVALID
);
...
...
@@ -2340,7 +2334,7 @@ case 116:
;
break
;}
case
117
:
#line 119
7
"asn1p_y.y"
#line 119
1
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2353,7 +2347,7 @@ case 117:
;
break
;}
case
118
:
#line 120
7
"asn1p_y.y"
#line 120
1
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2366,7 +2360,7 @@ case 118:
;
break
;}
case
119
:
#line 121
7
"asn1p_y.y"
#line 121
1
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2375,7 +2369,7 @@ case 119:
;
break
;}
case
120
:
#line 12
23
"asn1p_y.y"
#line 12
17
"asn1p_y.y"
{
int
ret
;
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
...
...
@@ -2389,7 +2383,7 @@ case 120:
;
break
;}
case
121
:
#line 123
7
"asn1p_y.y"
#line 123
1
"asn1p_y.y"
{
int
ret
;
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
...
...
@@ -2406,7 +2400,7 @@ case 121:
;
break
;}
case
122
:
#line 12
61
"asn1p_y.y"
#line 12
55
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2416,7 +2410,7 @@ case 122:
;
break
;}
case
123
:
#line 126
8
"asn1p_y.y"
#line 126
2
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2426,7 +2420,7 @@ case 123:
;
break
;}
case
124
:
#line 12
83
"asn1p_y.y"
#line 12
77
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2437,7 +2431,7 @@ case 124:
;
break
;}
case
125
:
#line 12
91
"asn1p_y.y"
#line 12
85
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2450,7 +2444,7 @@ case 125:
;
break
;}
case
126
:
#line 1
301
"asn1p_y.y"
#line 1
295
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2463,7 +2457,7 @@ case 126:
;
break
;}
case
127
:
#line 13
11
"asn1p_y.y"
#line 13
05
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2476,7 +2470,7 @@ case 127:
;
break
;}
case
128
:
#line 13
21
"asn1p_y.y"
#line 13
15
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2487,7 +2481,7 @@ case 128:
;
break
;}
case
129
:
#line 132
9
"asn1p_y.y"
#line 132
3
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
yyvsp
[
0
].
a_ref
;
...
...
@@ -2509,7 +2503,7 @@ case 129:
;
break
;}
case
130
:
#line 13
51
"asn1p_y.y"
#line 13
45
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
...
...
@@ -2520,7 +2514,7 @@ case 130:
;
break
;}
case
131
:
#line 135
9
"asn1p_y.y"
#line 135
3
"asn1p_y.y"
{
int
ret
;
yyval
.
a_ref
=
yyvsp
[
-
2
].
a_ref
;
...
...
@@ -2529,50 +2523,50 @@ case 131:
checkmem
(
ret
==
0
);
;
break
;}
case
13
4
:
#line 13
73
"asn1p_y.y"
case
13
3
:
#line 13
66
"asn1p_y.y"
{
yyval
.
a_refcomp
.
lex_type
=
RLT_AmpUppercase
;
yyval
.
a_refcomp
.
name
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
13
5
:
#line 137
8
"asn1p_y.y"
case
13
4
:
#line 137
1
"asn1p_y.y"
{
yyval
.
a_refcomp
.
lex_type
=
RLT_Amplowercase
;
yyval
.
a_refcomp
.
name
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
13
6
:
#line 138
7
"asn1p_y.y"
case
13
5
:
#line 138
0
"asn1p_y.y"
{
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_AmpUppercase
);
;
break
;}
case
13
7
:
#line 13
91
"asn1p_y.y"
case
13
6
:
#line 13
84
"asn1p_y.y"
{
yyval
.
a_ref
=
yyval
.
a_ref
;
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_AmpUppercase
);
;
break
;}
case
13
8
:
#line 13
95
"asn1p_y.y"
case
13
7
:
#line 13
88
"asn1p_y.y"
{
yyval
.
a_ref
=
yyval
.
a_ref
;
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_Amplowercase
);
;
break
;}
case
13
9
:
#line 1
402
"asn1p_y.y"
case
13
8
:
#line 1
395
"asn1p_y.y"
{
yyval
.
a_ref
=
asn1p_ref_new
(
yylineno
);
asn1p_ref_add_component
(
yyval
.
a_ref
,
yyvsp
[
0
].
tv_str
,
RLT_CAPITALS
);
;
break
;}
case
1
40
:
#line 14
22
"asn1p_y.y"
case
1
39
:
#line 14
15
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
assert
(
yyval
.
a_expr
->
Identifier
==
NULL
);
...
...
@@ -2581,8 +2575,8 @@ case 140:
yyval
.
a_expr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
14
1
:
#line 14
32
"asn1p_y.y"
case
14
0
:
#line 14
25
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
...
...
@@ -2591,76 +2585,76 @@ case 141:
yyval
.
a_value
->
value
.
choice_identifier
.
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
14
2
:
#line 143
9
"asn1p_y.y"
case
14
1
:
#line 143
2
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
;
break
;}
case
14
3
:
#line 143
9
"asn1p_y.y"
case
14
2
:
#line 143
2
"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
14
4
:
#line 14
44
"asn1p_y.y"
case
14
3
:
#line 14
37
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_NULL
;
;
break
;}
case
14
5
:
#line 144
9
"asn1p_y.y"
case
14
4
:
#line 144
2
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_FALSE
;
;
break
;}
case
14
6
:
#line 14
54
"asn1p_y.y"
case
14
5
:
#line 14
47
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_TRUE
;
;
break
;}
case
14
7
:
#line 145
9
"asn1p_y.y"
case
14
6
:
#line 145
2
"asn1p_y.y"
{
yyval
.
a_value
=
_convert_bitstring2binary
(
yyvsp
[
0
].
tv_str
,
'B'
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
14
8
:
#line 14
63
"asn1p_y.y"
case
14
7
:
#line 14
56
"asn1p_y.y"
{
yyval
.
a_value
=
_convert_bitstring2binary
(
yyvsp
[
0
].
tv_str
,
'H'
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
14
9
:
#line 146
7
"asn1p_y.y"
case
14
8
:
#line 146
0
"asn1p_y.y"
{
yyval
.
a_value
=
yyval
.
a_value
;
;
break
;}
case
1
50
:
#line 14
70
"asn1p_y.y"
case
1
49
:
#line 14
63
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
15
1
:
#line 14
73
"asn1p_y.y"
case
15
0
:
#line 14
66
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
15
2
:
#line 147
9
"asn1p_y.y"
case
15
1
:
#line 147
2
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -2673,8 +2667,8 @@ case 152:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
15
3
:
#line 14
90
"asn1p_y.y"
case
15
2
:
#line 14
83
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -2690,31 +2684,31 @@ case 153:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
15
4
:
#line 150
8
"asn1p_y.y"
case
15
3
:
#line 150
1
"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
15
5
:
#line 15
12
"asn1p_y.y"
case
15
4
:
#line 15
05
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_TUPLE
;
;
break
;}
case
15
6
:
#line 151
7
"asn1p_y.y"
case
15
5
:
#line 151
0
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_QUADRUPLE
;
;
break
;}
case
15
7
:
#line 15
51
"asn1p_y.y"
case
15
6
:
#line 15
44
"asn1p_y.y"
{
yyval
.
tv_opaque
.
len
=
yyvsp
[
0
].
tv_opaque
.
len
+
1
;
yyval
.
tv_opaque
.
buf
=
malloc
(
yyval
.
tv_opaque
.
len
+
1
);
...
...
@@ -2725,8 +2719,8 @@ case 157:
free
(
yyvsp
[
0
].
tv_opaque
.
buf
);
;
break
;}
case
15
8
:
#line 15
60
"asn1p_y.y"
case
15
7
:
#line 15
53
"asn1p_y.y"
{
int
newsize
=
yyvsp
[
-
1
].
tv_opaque
.
len
+
yyvsp
[
0
].
tv_opaque
.
len
;
char
*
p
=
malloc
(
newsize
+
1
);
...
...
@@ -2740,72 +2734,72 @@ case 158:
yyval
.
tv_opaque
.
len
=
newsize
;
;
break
;}
case
15
9
:
#line 15
75
"asn1p_y.y"
case
15
8
:
#line 15
68
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_BOOLEAN
;
;
break
;}
case
1
60
:
#line 15
76
"asn1p_y.y"
case
1
59
:
#line 15
69
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_NULL
;
;
break
;}
case
16
1
:
#line 157
7
"asn1p_y.y"
case
16
0
:
#line 157
0
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_REAL
;
;
break
;}
case
16
2
:
#line 157
8
"asn1p_y.y"
case
16
1
:
#line 157
1
"asn1p_y.y"
{
yyval
.
a_type
=
yyvsp
[
0
].
a_type
;
;
break
;}
case
16
3
:
#line 157
9
"asn1p_y.y"
case
16
2
:
#line 157
2
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_OCTET_STRING
;
;
break
;}
case
16
4
:
#line 15
80
"asn1p_y.y"
case
16
3
:
#line 15
73
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_OBJECT_IDENTIFIER
;
;
break
;}
case
16
5
:
#line 15
81
"asn1p_y.y"
case
16
4
:
#line 15
74
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_RELATIVE_OID
;
;
break
;}
case
16
6
:
#line 15
82
"asn1p_y.y"
case
16
5
:
#line 15
75
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_EXTERNAL
;
;
break
;}
case
16
7
:
#line 15
83
"asn1p_y.y"
case
16
6
:
#line 15
76
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_EMBEDDED_PDV
;
;
break
;}
case
16
8
:
#line 15
84
"asn1p_y.y"
case
16
7
:
#line 15
77
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_CHARACTER_STRING
;
;
break
;}
case
16
9
:
#line 15
85
"asn1p_y.y"
case
16
8
:
#line 15
78
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_UTCTime
;
;
break
;}
case
1
70
:
#line 15
86
"asn1p_y.y"
case
1
69
:
#line 15
79
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_GeneralizedTime
;
;
break
;}
case
17
1
:
#line 158
7
"asn1p_y.y"
case
17
0
:
#line 158
0
"asn1p_y.y"
{
yyval
.
a_type
=
yyvsp
[
0
].
a_type
;
;
break
;}
case
17
2
:
#line 15
94
"asn1p_y.y"
case
17
1
:
#line 15
87
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_INTEGER
;
;
break
;}
case
17
3
:
#line 15
95
"asn1p_y.y"
case
17
2
:
#line 15
88
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_ENUMERATED
;
;
break
;}
case
17
4
:
#line 15
96
"asn1p_y.y"
case
17
3
:
#line 15
89
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_BASIC_BIT_STRING
;
;
break
;}
case
17
5
:
#line 1
600
"asn1p_y.y"
case
17
4
:
#line 1
593
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -2813,8 +2807,8 @@ case 175:
yyval
.
a_expr
->
meta_type
=
AMT_TYPE
;
;
break
;}
case
17
6
:
#line 1
606
"asn1p_y.y"
case
17
5
:
#line 1
599
"asn1p_y.y"
{
if
(
yyvsp
[
0
].
a_expr
)
{
yyval
.
a_expr
=
yyvsp
[
0
].
a_expr
;
...
...
@@ -2826,92 +2820,92 @@ case 176:
yyval
.
a_expr
->
meta_type
=
AMT_TYPE
;
;
break
;}
case
17
7
:
#line 161
9
"asn1p_y.y"
case
17
6
:
#line 161
2
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_BMPString
;
;
break
;}
case
17
8
:
#line 16
20
"asn1p_y.y"
case
17
7
:
#line 16
13
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_GeneralString
;
fprintf
(
stderr
,
"WARNING: GeneralString is not fully supported
\n
"
);
;
break
;}
case
17
9
:
#line 16
24
"asn1p_y.y"
case
17
8
:
#line 16
17
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_GraphicString
;
fprintf
(
stderr
,
"WARNING: GraphicString is not fully supported
\n
"
);
;
break
;}
case
1
80
:
#line 162
8
"asn1p_y.y"
case
1
79
:
#line 162
1
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_IA5String
;
;
break
;}
case
18
1
:
#line 162
9
"asn1p_y.y"
case
18
0
:
#line 162
2
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_ISO646String
;
;
break
;}
case
18
2
:
#line 16
30
"asn1p_y.y"
case
18
1
:
#line 16
23
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_NumericString
;
;
break
;}
case
18
3
:
#line 16
31
"asn1p_y.y"
case
18
2
:
#line 16
24
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_PrintableString
;
;
break
;}
case
18
4
:
#line 16
32
"asn1p_y.y"
case
18
3
:
#line 16
25
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_T61String
;
fprintf
(
stderr
,
"WARNING: T61String is not fully supported
\n
"
);
;
break
;}
case
18
5
:
#line 16
36
"asn1p_y.y"
case
18
4
:
#line 16
29
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_TeletexString
;
;
break
;}
case
18
6
:
#line 163
7
"asn1p_y.y"
case
18
5
:
#line 163
0
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_UniversalString
;
;
break
;}
case
18
7
:
#line 163
8
"asn1p_y.y"
case
18
6
:
#line 163
1
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_UTF8String
;
;
break
;}
case
18
8
:
#line 163
9
"asn1p_y.y"
case
18
7
:
#line 163
2
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_VideotexString
;
fprintf
(
stderr
,
"WARNING: VideotexString is not fully supported
\n
"
);
;
break
;}
case
18
9
:
#line 16
43
"asn1p_y.y"
case
18
8
:
#line 16
36
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_VisibleString
;
;
break
;}
case
1
90
:
#line 16
44
"asn1p_y.y"
case
1
89
:
#line 16
37
"asn1p_y.y"
{
yyval
.
a_type
=
ASN_STRING_ObjectDescriptor
;
;
break
;}
case
19
6
:
#line 16
56
"asn1p_y.y"
case
19
5
:
#line 16
49
"asn1p_y.y"
{
yyval
.
a_constr
=
0
;
;
break
;}
case
19
7
:
#line 165
7
"asn1p_y.y"
case
19
6
:
#line 165
0
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
19
8
:
#line 16
63
"asn1p_y.y"
case
19
7
:
#line 16
56
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_SET
,
yyvsp
[
0
].
a_constr
,
0
);
;
break
;}
case
19
9
:
#line 16
66
"asn1p_y.y"
case
19
8
:
#line 16
59
"asn1p_y.y"
{
/*
* This is a special case, for compatibility purposes.
...
...
@@ -2920,26 +2914,26 @@ case 199:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_SIZE
,
yyvsp
[
-
1
].
a_constr
,
0
);
;
break
;}
case
200
:
#line 16
76
"asn1p_y.y"
case
199
:
#line 16
69
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
-
1
].
a_constr
;
;
break
;}
case
20
1
:
#line 167
9
"asn1p_y.y"
case
20
0
:
#line 167
2
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_SET
,
yyvsp
[
-
3
].
a_constr
,
yyvsp
[
-
1
].
a_constr
);
;
break
;}
case
20
2
:
#line 16
85
"asn1p_y.y"
case
20
1
:
#line 16
78
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
20
3
:
#line 168
8
"asn1p_y.y"
case
20
2
:
#line 168
1
"asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2947,8 +2941,8 @@ case 203:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
yyvsp
[
-
2
].
a_constr
,
ct
);
;
break
;}
case
20
4
:
#line 16
94
"asn1p_y.y"
case
20
3
:
#line 16
87
"asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2958,38 +2952,38 @@ case 204:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
ct
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
20
5
:
#line 1
705
"asn1p_y.y"
case
20
4
:
#line 1
698
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
20
6
:
#line 170
8
"asn1p_y.y"
case
20
5
:
#line 170
1
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_AEX
,
yyvsp
[
0
].
a_constr
,
0
);
;
break
;}
case
20
7
:
#line 17
11
"asn1p_y.y"
case
20
6
:
#line 17
04
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_UNI
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
20
8
:
#line 17
14
"asn1p_y.y"
case
20
7
:
#line 17
07
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_INT
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
20
9
:
#line 171
7
"asn1p_y.y"
case
20
8
:
#line 171
0
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_EXC
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
2
10
:
#line 17
23
"asn1p_y.y"
case
2
09
:
#line 17
16
"asn1p_y.y"
{
int
ret
;
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -2999,8 +2993,8 @@ case 210:
checkmem
(
ret
==
0
);
;
break
;}
case
21
1
:
#line 17
31
"asn1p_y.y"
case
21
0
:
#line 17
24
"asn1p_y.y"
{
int
ret
;
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -3010,8 +3004,8 @@ case 211:
checkmem
(
ret
==
0
);
;
break
;}
case
21
2
:
#line 173
9
"asn1p_y.y"
case
21
1
:
#line 173
2
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3019,8 +3013,8 @@ case 212:
yyval
.
a_constr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
21
3
:
#line 17
45
"asn1p_y.y"
case
21
2
:
#line 17
38
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3028,8 +3022,8 @@ case 213:
yyval
.
a_constr
->
containedSubtype
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
21
4
:
#line 17
51
"asn1p_y.y"
case
21
3
:
#line 17
44
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3038,8 +3032,8 @@ case 214:
yyval
.
a_constr
->
range_stop
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
21
5
:
#line 175
8
"asn1p_y.y"
case
21
4
:
#line 175
1
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3049,8 +3043,8 @@ case 215:
yyval
.
a_constr
->
range_start
->
type
=
ATV_MIN
;
;
break
;}
case
21
6
:
#line 17
66
"asn1p_y.y"
case
21
5
:
#line 17
59
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3060,8 +3054,8 @@ case 216:
yyval
.
a_constr
->
range_stop
->
type
=
ATV_MAX
;
;
break
;}
case
21
7
:
#line 17
74
"asn1p_y.y"
case
21
6
:
#line 17
67
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3072,24 +3066,24 @@ case 217:
yyval
.
a_constr
->
range_stop
->
type
=
ATV_MAX
;
;
break
;}
case
21
8
:
#line 17
83
"asn1p_y.y"
case
21
7
:
#line 17
76
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
21
9
:
#line 17
86
"asn1p_y.y"
case
21
8
:
#line 17
79
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
2
20
:
#line 17
90
"asn1p_y.y"
case
2
19
:
#line 17
83
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
;
break
;}
case
22
1
:
#line 17
90
"asn1p_y.y"
case
22
0
:
#line 17
83
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3099,64 +3093,64 @@ case 221:
yyval
.
a_constr
->
value
->
type
=
ATV_UNPARSED
;
;
break
;}
case
22
2
:
#line 1
801
"asn1p_y.y"
case
22
1
:
#line 1
794
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_RANGE
;
;
break
;}
case
22
3
:
#line 1
802
"asn1p_y.y"
case
22
2
:
#line 1
795
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_RLRANGE
;
;
break
;}
case
22
4
:
#line 1
803
"asn1p_y.y"
case
22
3
:
#line 1
796
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_LLRANGE
;
;
break
;}
case
22
5
:
#line 1
804
"asn1p_y.y"
case
22
4
:
#line 1
797
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_EL_ULRANGE
;
;
break
;}
case
22
6
:
#line 180
8
"asn1p_y.y"
case
22
5
:
#line 180
1
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_CT_SIZE
;
;
break
;}
case
22
7
:
#line 18
11
"asn1p_y.y"
case
22
6
:
#line 18
04
"asn1p_y.y"
{
yyval
.
a_ctype
=
ACT_CT_FROM
;
;
break
;}
case
22
8
:
#line 181
7
"asn1p_y.y"
case
22
7
:
#line 181
0
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
0
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_FALSE
;
;
break
;}
case
22
9
:
#line 18
22
"asn1p_y.y"
case
22
8
:
#line 18
15
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
1
);
checkmem
(
yyval
.
a_value
);
yyval
.
a_value
->
type
=
ATV_TRUE
;
;
break
;}
case
2
30
:
#line 182
7
"asn1p_y.y"
case
2
29
:
#line 182
0
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
23
1
:
#line 18
30
"asn1p_y.y"
case
23
0
:
#line 18
23
"asn1p_y.y"
{
yyval
.
a_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
23
2
:
#line 18
33
"asn1p_y.y"
case
23
1
:
#line 18
26
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -3169,8 +3163,8 @@ case 232:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
23
3
:
#line 184
7
"asn1p_y.y"
case
23
2
:
#line 184
0
"asn1p_y.y"
{
asn1p_ref_t
*
ref
;
int
ret
;
...
...
@@ -3183,32 +3177,32 @@ case 233:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
23
4
:
#line 18
61
"asn1p_y.y"
case
23
3
:
#line 18
54
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_WCOMP
,
yyvsp
[
0
].
a_constr
,
0
);
;
break
;}
case
23
5
:
#line 18
64
"asn1p_y.y"
case
23
4
:
#line 18
57
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_WCOMPS
,
yyvsp
[
-
1
].
a_constr
,
0
);
;
break
;}
case
23
6
:
#line 18
70
"asn1p_y.y"
case
23
5
:
#line 18
63
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
23
7
:
#line 18
73
"asn1p_y.y"
case
23
6
:
#line 18
66
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CT_WCOMPS
,
yyvsp
[
-
2
].
a_constr
,
yyvsp
[
0
].
a_constr
);
;
break
;}
case
23
8
:
#line 187
9
"asn1p_y.y"
case
23
7
:
#line 187
2
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3216,8 +3210,8 @@ case 238:
yyval
.
a_constr
->
value
=
asn1p_value_frombuf
(
"..."
,
3
,
0
);
;
break
;}
case
23
9
:
#line 18
85
"asn1p_y.y"
case
23
8
:
#line 18
78
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3227,46 +3221,46 @@ case 239:
if
(
yyvsp
[
-
1
].
a_constr
)
asn1p_constraint_insert
(
yyval
.
a_constr
,
yyvsp
[
-
1
].
a_constr
);
;
break
;}
case
2
40
:
#line 189
9
"asn1p_y.y"
case
2
39
:
#line 189
2
"asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_DEFAULT
;
;
break
;}
case
24
1
:
#line 1
900
"asn1p_y.y"
case
24
0
:
#line 1
893
"asn1p_y.y"
{
yyval
.
a_pres
=
yyvsp
[
0
].
a_pres
;
;
break
;}
case
24
2
:
#line 1
904
"asn1p_y.y"
case
24
1
:
#line 1
897
"asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_PRESENT
;
;
break
;}
case
24
3
:
#line 190
7
"asn1p_y.y"
case
24
2
:
#line 190
0
"asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_ABSENT
;
;
break
;}
case
24
4
:
#line 19
10
"asn1p_y.y"
case
24
3
:
#line 19
03
"asn1p_y.y"
{
yyval
.
a_pres
=
ACPRES_OPTIONAL
;
;
break
;}
case
24
5
:
#line 19
16
"asn1p_y.y"
case
24
4
:
#line 19
09
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
24
6
:
#line 191
9
"asn1p_y.y"
case
24
5
:
#line 191
2
"asn1p_y.y"
{
yyval
.
a_constr
=
yyvsp
[
0
].
a_constr
;
;
break
;}
case
24
7
:
#line 192
8
"asn1p_y.y"
case
24
6
:
#line 192
1
"asn1p_y.y"
{
asn1p_ref_t
*
ref
=
asn1p_ref_new
(
yylineno
);
asn1p_constraint_t
*
ct
;
...
...
@@ -3280,14 +3274,14 @@ case 247:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CRC
,
ct
,
0
);
;
break
;}
case
24
8
:
#line 19
43
"asn1p_y.y"
case
24
7
:
#line 19
36
"asn1p_y.y"
{
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CRC
,
yyvsp
[
-
3
].
a_constr
,
yyvsp
[
-
1
].
a_constr
);
;
break
;}
case
24
9
:
#line 194
9
"asn1p_y.y"
case
24
8
:
#line 194
2
"asn1p_y.y"
{
yyval
.
a_constr
=
asn1p_constraint_new
(
yylineno
);
checkmem
(
yyval
.
a_constr
);
...
...
@@ -3295,8 +3289,8 @@ case 249:
yyval
.
a_constr
->
value
=
asn1p_value_fromref
(
yyvsp
[
0
].
a_ref
,
0
);
;
break
;}
case
2
50
:
#line 19
55
"asn1p_y.y"
case
2
49
:
#line 19
48
"asn1p_y.y"
{
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
);
...
...
@@ -3306,8 +3300,8 @@ case 250:
CONSTRAINT_INSERT
(
yyval
.
a_constr
,
ACT_CA_CSV
,
yyvsp
[
-
2
].
a_constr
,
ct
);
;
break
;}
case
25
1
:
#line 196
9
"asn1p_y.y"
case
25
0
:
#line 196
2
"asn1p_y.y"
{
char
*
p
=
malloc
(
strlen
(
yyvsp
[
0
].
tv_str
)
+
2
);
int
ret
;
...
...
@@ -3320,8 +3314,8 @@ case 251:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
25
2
:
#line 19
80
"asn1p_y.y"
case
25
1
:
#line 19
73
"asn1p_y.y"
{
char
*
p
=
malloc
(
strlen
(
yyvsp
[
0
].
tv_str
)
+
3
);
int
ret
;
...
...
@@ -3335,14 +3329,14 @@ case 252:
free
(
yyvsp
[
0
].
tv_str
);
;
break
;}
case
25
3
:
#line 19
96
"asn1p_y.y"
case
25
2
:
#line 19
89
"asn1p_y.y"
{
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
25
4
:
#line 199
9
"asn1p_y.y"
case
25
3
:
#line 199
2
"asn1p_y.y"
{
int
l1
=
strlen
(
yyvsp
[
-
2
].
tv_str
);
int
l3
=
strlen
(
yyvsp
[
0
].
tv_str
);
...
...
@@ -3353,61 +3347,61 @@ case 254:
yyval
.
tv_str
[
l1
+
1
+
l3
]
=
'\0'
;
;
break
;}
case
25
5
:
#line 201
7
"asn1p_y.y"
case
25
4
:
#line 201
0
"asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_NOMARK
;
yyval
.
a_marker
.
default_value
=
0
;
;
break
;}
case
25
6
:
#line 20
21
"asn1p_y.y"
case
25
5
:
#line 20
14
"asn1p_y.y"
{
yyval
.
a_marker
=
yyvsp
[
0
].
a_marker
;
;
break
;}
case
25
7
:
#line 20
25
"asn1p_y.y"
case
25
6
:
#line 20
18
"asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_OPTIONAL
|
EM_INDIRECT
;
yyval
.
a_marker
.
default_value
=
0
;
;
break
;}
case
25
8
:
#line 202
9
"asn1p_y.y"
case
25
7
:
#line 202
2
"asn1p_y.y"
{
yyval
.
a_marker
.
flags
=
EM_DEFAULT
;
yyval
.
a_marker
.
default_value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
25
9
:
#line 20
52
"asn1p_y.y"
case
25
8
:
#line 20
45
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
;
break
;}
case
2
60
:
#line 20
56
"asn1p_y.y"
case
2
59
:
#line 20
49
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
1
].
a_expr
;
;
break
;}
case
26
1
:
#line 20
62
"asn1p_y.y"
case
26
0
:
#line 20
55
"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
26
2
:
#line 206
7
"asn1p_y.y"
case
26
1
:
#line 206
0
"asn1p_y.y"
{
yyval
.
a_expr
=
yyvsp
[
-
2
].
a_expr
;
asn1p_expr_add
(
yyval
.
a_expr
,
yyvsp
[
0
].
a_expr
);
;
break
;}
case
26
3
:
#line 20
74
"asn1p_y.y"
case
26
2
:
#line 20
67
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3416,8 +3410,8 @@ case 263:
yyval
.
a_expr
->
Identifier
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
26
4
:
#line 20
81
"asn1p_y.y"
case
26
3
:
#line 20
74
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3427,8 +3421,8 @@ case 264:
yyval
.
a_expr
->
value
=
yyvsp
[
-
1
].
a_value
;
;
break
;}
case
26
5
:
#line 208
9
"asn1p_y.y"
case
26
4
:
#line 208
2
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3438,8 +3432,8 @@ case 265:
yyval
.
a_expr
->
value
=
yyvsp
[
-
1
].
a_value
;
;
break
;}
case
26
6
:
#line 209
7
"asn1p_y.y"
case
26
5
:
#line 209
0
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3448,8 +3442,8 @@ case 266:
yyval
.
a_expr
->
value
=
yyvsp
[
0
].
a_value
;
;
break
;}
case
26
7
:
#line 2
104
"asn1p_y.y"
case
26
6
:
#line 2
097
"asn1p_y.y"
{
yyval
.
a_expr
=
asn1p_expr_new
(
yylineno
);
checkmem
(
yyval
.
a_expr
);
...
...
@@ -3459,103 +3453,103 @@ case 267:
yyval
.
a_expr
->
meta_type
=
AMT_VALUE
;
;
break
;}
case
26
8
:
#line 21
15
"asn1p_y.y"
case
26
7
:
#line 21
08
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
26
9
:
#line 211
9
"asn1p_y.y"
case
26
8
:
#line 211
2
"asn1p_y.y"
{
yyval
.
a_value
=
asn1p_value_fromint
(
yyvsp
[
0
].
a_int
);
checkmem
(
yyval
.
a_value
);
;
break
;}
case
2
70
:
#line 21
50
"asn1p_y.y"
case
2
69
:
#line 21
43
"asn1p_y.y"
{
memset
(
&
yyval
.
a_tag
,
0
,
sizeof
(
yyval
.
a_tag
));
;
break
;}
case
27
1
:
#line 21
51
"asn1p_y.y"
case
27
0
:
#line 21
44
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
0
].
a_tag
;
;
break
;}
case
27
2
:
#line 21
55
"asn1p_y.y"
case
27
1
:
#line 21
48
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
-
1
].
a_tag
;
yyval
.
a_tag
.
tag_mode
=
yyvsp
[
0
].
a_tag
.
tag_mode
;
;
break
;}
case
27
3
:
#line 21
62
"asn1p_y.y"
case
27
2
:
#line 21
55
"asn1p_y.y"
{
yyval
.
a_tag
=
yyvsp
[
-
2
].
a_tag
;
yyval
.
a_tag
.
tag_value
=
yyvsp
[
-
1
].
a_int
;
;
break
;}
case
27
4
:
#line 216
8
"asn1p_y.y"
case
27
3
:
#line 216
1
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_class
=
TC_CONTEXT_SPECIFIC
;
;
break
;}
case
27
5
:
#line 216
9
"asn1p_y.y"
case
27
4
:
#line 216
2
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_class
=
TC_UNIVERSAL
;
;
break
;}
case
27
6
:
#line 21
70
"asn1p_y.y"
case
27
5
:
#line 21
63
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_class
=
TC_APPLICATION
;
;
break
;}
case
27
7
:
#line 21
71
"asn1p_y.y"
case
27
6
:
#line 21
64
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_class
=
TC_PRIVATE
;
;
break
;}
case
27
8
:
#line 21
75
"asn1p_y.y"
case
27
7
:
#line 21
68
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_mode
=
TM_DEFAULT
;
;
break
;}
case
27
9
:
#line 21
76
"asn1p_y.y"
case
27
8
:
#line 21
69
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_mode
=
TM_IMPLICIT
;
;
break
;}
case
2
80
:
#line 217
7
"asn1p_y.y"
case
2
79
:
#line 217
0
"asn1p_y.y"
{
yyval
.
a_tag
.
tag_mode
=
TM_EXPLICIT
;
;
break
;}
case
28
1
:
#line 21
81
"asn1p_y.y"
case
28
0
:
#line 21
74
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
28
2
:
#line 21
85
"asn1p_y.y"
case
28
1
:
#line 21
78
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
28
3
:
#line 21
93
"asn1p_y.y"
case
28
2
:
#line 21
86
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
28
4
:
#line 2
200
"asn1p_y.y"
case
28
3
:
#line 2
193
"asn1p_y.y"
{
yyval
.
tv_str
=
0
;
;
break
;}
case
28
5
:
#line 2
201
"asn1p_y.y"
case
28
4
:
#line 2
194
"asn1p_y.y"
{
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
;
break
;}
case
28
6
:
#line 220
7
"asn1p_y.y"
case
28
5
:
#line 220
0
"asn1p_y.y"
{
checkmem
(
yyvsp
[
0
].
tv_str
);
yyval
.
tv_str
=
yyvsp
[
0
].
tv_str
;
...
...
@@ -3783,7 +3777,7 @@ yyerrhandle:
}
return
1
;
}
#line 22
13
"asn1p_y.y"
#line 22
06
"asn1p_y.y"
...
...
libasn1parser/asn1p_y.y
View file @
d370e9f5
...
...
@@ -242,8 +242,7 @@ static void _fixup_anonymous_identifier(asn1p_expr_t *expr);
%type <a_ref> ComplexTypeReference
%type <a_ref> ComplexTypeReferenceAmpList
%type <a_refcomp> ComplexTypeReferenceElement
%type <a_refcomp> ClassFieldIdentifier
%type <a_refcomp> ClassFieldName
%type <a_refcomp> PrimitiveFieldReference
%type <a_expr> FieldSpec
%type <a_ref> FieldName
%type <a_ref> DefinedObjectClass
...
...
@@ -1081,14 +1080,9 @@ WithSyntaxToken:
| TOK_Literal {
$$ = asn1p_wsyntx_chunk_frombuf($1, strlen($1), 0);
}
| ClassFieldIdentifier {
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
checkmem(ref);
ret = asn1p_ref_add_component(ref, $1.name, $1.lex_type);
checkmem(ret == 0);
$$ = asn1p_wsyntx_chunk_fromref(ref, 0);
| PrimitiveFieldReference {
$$ = asn1p_wsyntx_chunk_frombuf($1.name, strlen($1.name), 0);
$$->type = WC_FIELD;
}
| '[' WithSyntaxList ']' {
$$ = asn1p_wsyntx_chunk_fromsyntax($2);
...
...
@@ -1365,10 +1359,9 @@ ComplexTypeReferenceAmpList:
}
;
ComplexTypeReferenceElement: ClassFieldName;
ClassFieldIdentifier: ClassFieldName;
ComplexTypeReferenceElement: PrimitiveFieldReference;
ClassFieldNam
e:
PrimitiveFieldReferenc
e:
/* "&Type1" */
TOK_typefieldreference {
$$.lex_type = RLT_AmpUppercase;
...
...
libasn1parser/asn1parser.c
View file @
d370e9f5
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <assert.h>
...
...
@@ -184,3 +185,21 @@ _asn1p_fix_modules(asn1p_t *a, const char *fname) {
}
int
asn1p_atoi
(
const
char
*
ptr
,
asn1c_integer_t
*
value
)
{
errno
=
0
;
/* Clear the error code */
if
(
sizeof
(
*
value
)
<=
sizeof
(
int
))
{
*
value
=
strtol
(
ptr
,
0
,
10
);
}
else
{
#ifdef HAVE_STRTOIMAX
*
value
=
strtoimax
(
ptr
,
0
,
10
);
#elif HAVE_STRTOLL
*
value
=
strtoll
(
ptr
,
0
,
10
);
#else
*
value
=
strtol
(
ptr
,
0
,
10
);
#endif
}
return
errno
==
0
?
0
:
-
1
;
}
libasn1parser/asn1parser.h
View file @
d370e9f5
...
...
@@ -69,4 +69,6 @@ asn1p_t *asn1p_parse_file(const char *filename,
asn1p_t
*
asn1p_parse_buffer
(
const
char
*
buffer
,
int
size
/* = -1 */
,
enum
asn1p_flags
);
int
asn1p_atoi
(
const
char
*
ptr
,
asn1c_integer_t
*
r_value
);
#endif
/* ASN1PARSER_H */
libasn1print/asn1print.c
View file @
d370e9f5
...
...
@@ -106,7 +106,7 @@ asn1print_module(asn1p_t *asn, asn1p_module_t *mod, enum asn1print_flags flags)
TQ_FOR
(
tc
,
&
(
mod
->
members
),
next
)
{
asn1print_expr
(
asn
,
mod
,
tc
,
flags
,
0
);
if
(
flags
&
APF_
DEBUG
_CONSTRAINTS
)
if
(
flags
&
APF_
PRINT
_CONSTRAINTS
)
printf
(
"
\n
"
);
else
printf
(
"
\n\n
"
);
...
...
@@ -416,11 +416,9 @@ asn1print_with_syntax(asn1p_wsyntx_t *wx, enum asn1print_flags flags) {
switch
(
wc
->
type
)
{
case
WC_LITERAL
:
case
WC_WHITESPACE
:
case
WC_FIELD
:
printf
(
"%s"
,
wc
->
content
.
token
);
break
;
case
WC_REFERENCE
:
asn1print_ref
(
wc
->
content
.
ref
,
flags
);
break
;
case
WC_OPTIONALGROUP
:
printf
(
"["
);
asn1print_with_syntax
(
wc
->
content
.
syntax
,
flags
);
...
...
@@ -690,7 +688,7 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
/*
* The following section exists entirely for debugging.
*/
if
(
flags
&
APF_
DEBUG
_CONSTRAINTS
if
(
flags
&
APF_
PRINT
_CONSTRAINTS
&&
tc
->
expr_type
!=
A1TC_EXTENSIBLE
)
{
asn1p_expr_t
*
top_parent
;
...
...
@@ -713,6 +711,41 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
printf
(
"
\n
"
);
}
if
(
flags
&
APF_PRINT_CLASS_MATRIX
&&
tc
->
expr_type
==
A1TC_CLASSDEF
)
do
{
int
r
,
col
,
maxidlen
;
if
(
tc
->
object_class_matrix
.
rows
==
0
)
{
printf
(
"
\n
-- Class matrix is empty"
);
break
;
}
printf
(
"
\n
-- Class matrix has %d entr%s:
\n
"
,
tc
->
object_class_matrix
.
rows
,
tc
->
object_class_matrix
.
rows
==
1
?
"y"
:
"ies"
);
maxidlen
=
tc
->
object_class_matrix
.
max_identifier_length
;
for
(
r
=
-
1
;
r
<
tc
->
object_class_matrix
.
rows
;
r
++
)
{
struct
asn1p_ioc_row_s
*
row
;
row
=
tc
->
object_class_matrix
.
row
[
r
<
0
?
0
:
r
];
if
(
r
<
0
)
printf
(
"-- %s"
,
r
>
9
?
" "
:
""
);
else
printf
(
"-- [%*d]"
,
r
>
9
?
2
:
1
,
r
+
1
);
for
(
col
=
0
;
col
<
row
->
columns
;
col
++
)
{
struct
asn1p_ioc_cell_s
*
cell
;
cell
=
&
row
->
column
[
col
];
if
(
r
<
0
)
{
printf
(
"[%*s]"
,
maxidlen
,
cell
->
field
->
Identifier
);
continue
;
}
if
(
!
cell
->
value
)
{
printf
(
" %*s "
,
maxidlen
,
"<no entry>"
);
continue
;
}
printf
(
" %*s "
,
maxidlen
,
cell
->
value
->
Identifier
);
}
printf
(
"
\n
"
);
}
}
while
(
0
);
return
0
;
}
...
...
libasn1print/asn1print.h
View file @
d370e9f5
...
...
@@ -3,10 +3,11 @@
enum
asn1print_flags
{
APF_NOFLAGS
,
APF_
LINE_COMMENTS
=
0x01
,
/* Include line comments
*/
APF_
DEBUG_CONSTRAINTS
=
0x02
,
/* Explain constrai
nts */
APF_
NOINDENT
=
0x01
,
/* Disable indentation
*/
APF_
LINE_COMMENTS
=
0x02
,
/* Include line comme
nts */
APF_PRINT_XML_DTD
=
0x04
,
/* Generate XML DTD */
APF_NOINDENT
=
0x08
,
/* Disable indentation */
APF_PRINT_CONSTRAINTS
=
0x08
,
/* Explain constraints */
APF_PRINT_CLASS_MATRIX
=
0x10
,
/* Dump class matrix */
};
/*
...
...
tests/34-class-OK.asn1
View file @
d370e9f5
...
...
@@ -14,7 +14,7 @@ BEGIN
-- First CLASS
EXTENSION ::= CLASS {
&id [PRIVATE 0]
OBJECT IDENTIFI
ER UNIQUE,
&id [PRIVATE 0]
INTEG
ER UNIQUE,
&ExtnType
} WITH SYNTAX {
SYNTAX &ExtnType
...
...
@@ -35,6 +35,8 @@ BEGIN
terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
TerminalType ::= INTEGER { terminal(0) }
-- Advanced CLASS extraction
ExtensionAttribute ::= SEQUENCE {
...
...
tests/34-class-OK.asn1.-EF
View file @
d370e9f5
...
...
@@ -4,7 +4,7 @@ DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXTENSION ::= CLASS {
&id [PRIVATE 0]
OBJECT IDENTIFI
ER UNIQUE,
&id [PRIVATE 0]
INTEG
ER UNIQUE,
&ExtnType
} WITH SYNTAX {
SYNTAX &ExtnType
...
...
@@ -24,6 +24,10 @@ EXTENSION-ATTRIBUTE ::= CLASS {
terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
TerminalType ::= INTEGER {
terminal(0)
}
ExtensionAttribute ::= SEQUENCE {
extension-attribute-type [0] IMPLICIT EXTENSION-ATTRIBUTE.&id ({ExtensionAttributeTable}),
extension-attribute-value [1] EXPLICIT EXTENSION-ATTRIBUTE.&Type ({ExtensionAttributeTable}{@extension-attribute-type})
...
...
tests/34-class-OK.asn1.-EFprint-class-matrix
0 → 100644
View file @
d370e9f5
ModuleTestClassSimple { iso org(3) dod(6) internet(1) private(4) enterprise(1)
spelio(9363) software(1) asn1c(5) test(1) 34 }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXTENSION ::= CLASS {
&id [PRIVATE 0] INTEGER UNIQUE,
&ExtnType
} WITH SYNTAX {
SYNTAX &ExtnType
IDENTIFIED BY &id
}
-- Class matrix is empty
Ext1 ::= SEQUENCE {
extnId EXTENSION.&id
}
EXTENSION-ATTRIBUTE ::= CLASS {
&id INTEGER (0..256) UNIQUE,
&Type ANY
} WITH SYNTAX {&Type IDENTIFIED BY &id}
-- Class matrix has 1 entry:
-- [ &id][ &Type]
-- [1] 23 TerminalType
terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
TerminalType ::= INTEGER {
terminal(0)
}
ExtensionAttribute ::= SEQUENCE {
extension-attribute-type [0] IMPLICIT EXTENSION-ATTRIBUTE.&id ({ExtensionAttributeTable}),
extension-attribute-value [1] EXPLICIT EXTENSION-ATTRIBUTE.&Type ({ExtensionAttributeTable}{@extension-attribute-type})
}
ub-extension-attributes INTEGER ::= 256
END
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