104 call "variables_infos" { |
116 call "variables_infos" { |
105 with "var_class" > InOut |
117 with "var_class" > InOut |
106 } |
118 } |
107 } |
119 } |
108 |
120 |
109 template "ppx:pou" { |
121 template "ppx:pou", mode="var_type" { |
110 apply "ppx:interface/*[self::ppx:inputVars or self::ppx:inOutVars or self::ppx:outputVars]/ppx:variable"; |
122 apply "ppx:interface/*[self::ppx:inputVars or self::ppx:inOutVars or self::ppx:outputVars]/ppx:variable", mode="var_type"; |
111 } |
123 } |
112 |
124 |
113 template "ppx:variable" { |
125 template "ppx:variable", mode="var_type" { |
114 variable "name" > «@name» |
126 variable "name" > «@name» |
115 value "ns:AddTree($name)"; |
127 value "ns:AddTree($name)"; |
116 apply "ppx:type"; |
128 apply "ppx:type", mode="var_type"; |
117 value "ns:AddVarToTree($name)"; |
129 value "ns:AddVarToTree($name)"; |
118 } |
130 } |
119 |
131 |
120 template "ppx:dataType" { |
132 template "ppx:dataType", mode="var_type" { |
121 apply "ppx:baseType"; |
133 apply "ppx:baseType", mode="var_type"; |
122 } |
134 } |
123 |
135 |
124 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:struct" { |
136 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:struct", mode="var_type" { |
125 apply "ppx:variable"; |
137 apply "ppx:variable", mode="var_type"; |
126 } |
138 } |
127 |
139 |
128 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:derived" { |
140 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:derived", mode="var_type" { |
129 variable "type_name" > «@name» |
141 variable "type_name" > «@name» |
130 choose { |
142 choose { |
131 when "$tree='True'" { |
143 when "$tree='True'" { |
132 apply """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
144 apply """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
133 exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | |
145 exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | |
134 exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
146 exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
135 exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | |
147 exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | |
136 exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
148 exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | |
137 exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]"""; |
149 exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]""", mode="var_type"; |
138 } |
150 } |
139 } |
151 } |
140 value "ns:SetType($type_name)"; |
152 value "ns:SetType($type_name)"; |
141 } |
153 } |
142 |
154 |
143 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:array" { |
155 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:array", mode="var_type" { |
144 apply "ppx:baseType"; |
156 apply "ppx:baseType", mode="var_type"; |
145 foreach "ppx:dimension" { |
157 foreach "ppx:dimension" { |
146 value "ns:AddDimension(@lower, @upper)"; |
158 value "ns:AddDimension(@lower, @upper)"; |
147 } |
159 } |
148 } |
160 } |
149 |
161 |
150 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:string" { |
162 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:string", mode="var_type" { |
151 variable "name" > STRING |
163 variable "name" > STRING |
152 value "ns:SetType($name)"; |
164 value "ns:SetType($name)"; |
153 } |
165 } |
154 |
166 |
155 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:wstring" { |
167 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:wstring", mode="var_type" { |
156 variable "name" > WSTRING |
168 variable "name" > WSTRING |
157 value "ns:SetType($name)"; |
169 value "ns:SetType($name)"; |
158 } |
170 } |
159 |
171 |
160 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/*" { |
172 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/*", mode="var_type" { |
161 variable "name" > «local-name()» |
173 variable "name" > «local-name()» |
162 value "ns:SetType($name)"; |
174 value "ns:SetType($name)"; |
163 } |
175 } |
164 |
176 |
165 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:derived", mode="var_edit" { |
177 template "*[self::ppx:type or self::ppx:baseType or self::ppx:returnType]/ppx:derived", mode="var_edit" { |