blob: bb598bf4034ffa2110c53e76829e2a016799a1a3 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001#include "asn1fix_internal.h"
2#include "asn1fix_export.h"
3
Lev Walkinb45e0672004-08-18 05:42:05 +00004extern arg_t a1f_replace_me_with_proper_interface_arg;
5
6
Lev Walkinf15320b2004-06-03 03:38:44 +00007asn1p_expr_t *
8asn1f_lookup_symbol_ex(
9 asn1p_t *asn,
Lev Walkinf15320b2004-06-03 03:38:44 +000010 asn1p_expr_t *expr,
11 asn1p_ref_t *ref) {
12 arg_t arg;
13
14 memset(&arg, 0, sizeof(arg));
15
16 arg.asn = asn;
Lev Walkinb85a8132005-08-18 13:38:19 +000017 arg.mod = expr->module;
Lev Walkinf15320b2004-06-03 03:38:44 +000018 arg.expr = expr;
Lev Walkinb45e0672004-08-18 05:42:05 +000019 arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
20 arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
21
Lev Walkinf15320b2004-06-03 03:38:44 +000022
Lev Walkina00d6b32006-03-21 03:40:38 +000023 return asn1f_lookup_symbol(&arg, expr->module, expr->rhs_pspecs, ref);
Lev Walkinf15320b2004-06-03 03:38:44 +000024}
25
26asn1p_expr_t *
27asn1f_class_access_ex(asn1p_t *asn,
28 asn1p_module_t *mod,
29 asn1p_expr_t *expr,
Lev Walkina00d6b32006-03-21 03:40:38 +000030 asn1p_expr_t *rhs_pspecs,
Lev Walkin6fec44d2004-08-22 03:10:23 +000031 asn1p_ref_t *ref) {
Lev Walkinb45e0672004-08-18 05:42:05 +000032 arg_t arg;
33
34 memset(&arg, 0, sizeof(arg));
Lev Walkinf15320b2004-06-03 03:38:44 +000035
36 arg.asn = asn;
37 arg.mod = mod;
38 arg.expr = expr;
Lev Walkinb45e0672004-08-18 05:42:05 +000039 arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
40 arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
Lev Walkinf15320b2004-06-03 03:38:44 +000041
Lev Walkina00d6b32006-03-21 03:40:38 +000042 return asn1f_class_access(&arg, mod, rhs_pspecs, ref);
Lev Walkinf15320b2004-06-03 03:38:44 +000043}
44
45asn1p_expr_t *
Lev Walkin0a95d032004-09-22 16:03:19 +000046asn1f_find_terminal_type_ex(asn1p_t *asn, asn1p_expr_t *expr) {
Lev Walkinb45e0672004-08-18 05:42:05 +000047 arg_t arg;
48
49 memset(&arg, 0, sizeof(arg));
Lev Walkinf15320b2004-06-03 03:38:44 +000050
51 arg.asn = asn;
Lev Walkin0a95d032004-09-22 16:03:19 +000052 arg.mod = expr->module;
Lev Walkinf15320b2004-06-03 03:38:44 +000053 arg.expr = expr;
Lev Walkinb45e0672004-08-18 05:42:05 +000054 arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
55 arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
Lev Walkinf15320b2004-06-03 03:38:44 +000056
Lev Walkin6fec44d2004-08-22 03:10:23 +000057 return asn1f_find_terminal_type(&arg, expr);
Lev Walkinf15320b2004-06-03 03:38:44 +000058}
Lev Walkinb45e0672004-08-18 05:42:05 +000059
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +080060asn1p_expr_t *
61asn1f_find_ancestor_type_with_PER_constraint_ex(asn1p_t *asn, asn1p_expr_t *expr) {
62 arg_t arg;
63
64 memset(&arg, 0, sizeof(arg));
65
66 arg.asn = asn;
67 arg.mod = expr->module;
68 arg.expr = expr;
69 arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
70 arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
71
72 return asn1f_find_ancestor_type_with_PER_constraint(&arg, expr);
73}
74
Lev Walkinb45e0672004-08-18 05:42:05 +000075int
76asn1f_fix_dereference_values_ex(asn1p_t *asn, asn1p_module_t *mod,
77 asn1p_expr_t *expr) {
78 arg_t arg;
79
80 memset(&arg, 0, sizeof(arg));
81
82 arg.asn = asn;
83 arg.mod = mod;
84 arg.expr = expr;
85 arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
86 arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
87
88 return asn1f_fix_dereference_values(&arg);
89}
90