@@ -2030,3 +2030,164 @@ ActBody *ActBody::Clone(ActNamespace */*replace*/,
2030
2030
{
2031
2031
return NULL ;
2032
2032
}
2033
+
2034
+
2035
+ void ActBody::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2036
+ {
2037
+ return ;
2038
+ }
2039
+
2040
+
2041
+ void ActBody_Inst::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2042
+ {
2043
+ t = t->fixGlobalParams (cur, orig);
2044
+ if (Next ()) {
2045
+ Next ()->fixGlobalParams (cur, orig);
2046
+ }
2047
+ }
2048
+
2049
+ void ActBody_Attribute::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2050
+ {
2051
+ Array *narr;
2052
+ if (arr) {
2053
+ arr = arr->fixGlobalParams (cur, orig);
2054
+ }
2055
+ act_attr *tmp;
2056
+ for (tmp = a; tmp; tmp = tmp->next ) {
2057
+ tmp->e = expr_globalids (tmp->e , cur, orig);
2058
+ }
2059
+ if (Next ()) {
2060
+ Next ()->fixGlobalParams (cur, orig);
2061
+ }
2062
+ }
2063
+
2064
+ void ActBody_Conn::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2065
+ {
2066
+ if (type == 0 ) {
2067
+ u.basic .lhs = u.basic .lhs ->qualifyGlobals (cur, orig);
2068
+ u.basic .rhs = u.basic .rhs ->fixGlobalParams (cur, orig);
2069
+ }
2070
+ else {
2071
+ u.general .lhs = u.general .lhs ->fixGlobalParams (cur, orig);
2072
+ u.general .rhs = u.general .rhs ->fixGlobalParams (cur, orig);
2073
+ }
2074
+ if (Next ()) {
2075
+ Next ()->fixGlobalParams (cur, orig);
2076
+ }
2077
+ }
2078
+
2079
+ void ActBody_Loop::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2080
+ {
2081
+ lo = expr_globalids (lo, cur, orig);
2082
+ hi = expr_globalids (hi, cur, orig);
2083
+ if (b) {
2084
+ b->fixGlobalParams (cur, orig);
2085
+ }
2086
+ if (Next ()) {
2087
+ Next ()->fixGlobalParams (cur, orig);
2088
+ }
2089
+ }
2090
+
2091
+ void ActBody_Select::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2092
+ {
2093
+ ActBody_Select_gc *tmp;
2094
+ for (tmp = gc; tmp; tmp = tmp->next ) {
2095
+ tmp->lo = expr_globalids (tmp->lo , cur, orig);
2096
+ tmp->hi = expr_globalids (tmp->hi , cur, orig);
2097
+ tmp->g = expr_globalids (tmp->g , cur, orig);
2098
+ if (tmp->s ) {
2099
+ tmp->s ->fixGlobalParams (cur, orig);
2100
+ }
2101
+ }
2102
+ if (Next ()) {
2103
+ Next ()->fixGlobalParams (cur, orig);
2104
+ }
2105
+ }
2106
+
2107
+ void ActBody_Genloop::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2108
+ {
2109
+ ActBody_Select_gc *tmp;
2110
+ for (tmp = gc; tmp; tmp = tmp->next ) {
2111
+ tmp->lo = expr_globalids (tmp->lo , cur, orig);
2112
+ tmp->hi = expr_globalids (tmp->hi , cur, orig);
2113
+ tmp->g = expr_globalids (tmp->g , cur, orig);
2114
+ if (tmp->s ) {
2115
+ tmp->s ->fixGlobalParams (cur, orig);
2116
+ }
2117
+ }
2118
+ if (Next ()) {
2119
+ Next ()->fixGlobalParams (cur, orig);
2120
+ }
2121
+ }
2122
+
2123
+ void ActBody_Assertion::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2124
+ {
2125
+ if (type == 0 ) {
2126
+ u.t0 .e = expr_globalids (u.t0 .e , cur, orig);
2127
+ }
2128
+ else {
2129
+ Assert (type == 1 , " Hmm" );
2130
+ u.t1 .id1 = u.t1 .id1 ->qualifyGlobals (cur, orig);
2131
+ u.t1 .id2 = u.t1 .id2 ->qualifyGlobals (cur, orig);
2132
+ }
2133
+ if (Next ()) {
2134
+ Next ()->fixGlobalParams (cur, orig);
2135
+ }
2136
+ }
2137
+
2138
+ void ActBody_Print::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2139
+ {
2140
+ listitem_t *li;
2141
+ for (li = list_first (l); li; li = list_next (li)) {
2142
+ act_func_arguments_t *f = (act_func_arguments_t *) list_value (li);
2143
+ if (f->isstring ) {
2144
+ // nothing
2145
+ }
2146
+ else {
2147
+ f->u .e = expr_globalids (f->u .e , cur, orig);
2148
+ }
2149
+ }
2150
+ if (Next ()) {
2151
+ Next ()->fixGlobalParams (cur, orig);
2152
+ }
2153
+ }
2154
+
2155
+ void ActBody_Lang::fixGlobalParams (ActNamespace *cur, ActNamespace *orig)
2156
+ {
2157
+ switch (t) {
2158
+ case LANG_CHP:
2159
+ case LANG_HSE:
2160
+ chp_fixglobals ((act_chp *)lang, cur, orig);
2161
+ break ;
2162
+
2163
+ case LANG_REFINE:
2164
+ refine_fixglobals ((act_refine *)lang, cur, orig);
2165
+ break ;
2166
+
2167
+ case LANG_DFLOW:
2168
+ dflow_fixglobals ((act_dataflow *)lang, cur, orig);
2169
+ break ;
2170
+
2171
+ case LANG_PRS:
2172
+ prs_fixglobals ((act_prs *)lang, cur, orig);
2173
+ break ;
2174
+
2175
+ case LANG_SPEC:
2176
+ spec_fixglobals ((act_spec *)lang, cur, orig);
2177
+ break ;
2178
+
2179
+ case LANG_SIZE:
2180
+ sizing_fixglobals ((act_sizing *)lang, cur, orig);
2181
+ break ;
2182
+
2183
+ case LANG_INIT:
2184
+ break ;
2185
+
2186
+ case LANG_EXTERN:
2187
+ lang_extern_fixglobals (nm, lang, cur, orig);
2188
+ break ;
2189
+ }
2190
+ if (Next ()) {
2191
+ Next ()->fixGlobalParams (cur, orig);
2192
+ }
2193
+ }
0 commit comments