Class: Puppet::Pops::Model::PNTransformer
- Defined in:
- lib/puppet/pops/model/pn_transformer.rb
Class Method Summary collapse
Instance Method Summary collapse
- #binary_op(e, op) ⇒ Object
- #block_as_entry(name, expr) ⇒ Object
- #call_to_pn(e, r, nr) ⇒ Object
- #definition_to_pn(e, type_name, parent = nil, return_type = nil) ⇒ Object
- #if_to_pn(e, name) ⇒ Object
-
#initialize(visitor) ⇒ PNTransformer
constructor
A new instance of PNTransformer.
- #is_nop?(e) ⇒ Boolean
- #parameters_entry(parameters) ⇒ Object
- #pn_array(a) ⇒ Object
- #transform(ast) ⇒ Object
- #transform_AccessExpression(e) ⇒ Object
- #transform_AndExpression(e) ⇒ Object
- #transform_Application(e) ⇒ Object
- #transform_ArithmeticExpression(e) ⇒ Object
- #transform_Array(a) ⇒ Object
- #transform_AssignmentExpression(e) ⇒ Object
- #transform_AttributeOperation(e) ⇒ Object
- #transform_AttributesOperation(e) ⇒ Object
- #transform_BlockExpression(e) ⇒ Object
- #transform_CallFunctionExpression(e) ⇒ Object
- #transform_CallMethodExpression(e) ⇒ Object
- #transform_CallNamedFunctionExpression(e) ⇒ Object
- #transform_CapabilityMapping(e) ⇒ Object
- #transform_CaseExpression(e) ⇒ Object
- #transform_CaseOption(e) ⇒ Object
- #transform_CollectExpression(e) ⇒ Object
- #transform_ComparisonExpression(e) ⇒ Object
- #transform_ConcatenatedString(e) ⇒ Object
- #transform_EppExpression(e) ⇒ Object
- #transform_ExportedQuery(e) ⇒ Object
- #transform_Factory(e) ⇒ Object
- #transform_FunctionDefinition(e) ⇒ Object
- #transform_HeredocExpression(e) ⇒ Object
- #transform_HostClassDefinition(e) ⇒ Object
- #transform_IfExpression(e) ⇒ Object
- #transform_InExpression(e) ⇒ Object
- #transform_KeyedEntry(e) ⇒ Object
- #transform_LambdaExpression(e) ⇒ Object
- #transform_LiteralBoolean(e) ⇒ Object
- #transform_LiteralDefault(_) ⇒ Object
- #transform_LiteralFloat(e) ⇒ Object
- #transform_LiteralHash(e) ⇒ Object
- #transform_LiteralInteger(e) ⇒ Object
- #transform_LiteralList(e) ⇒ Object
- #transform_LiteralRegularExpression(e) ⇒ Object
- #transform_LiteralString(e) ⇒ Object
- #transform_LiteralUndef(_) ⇒ Object
- #transform_MatchExpression(e) ⇒ Object
- #transform_NamedAccessExpression(e) ⇒ Object
- #transform_NodeDefinition(e) ⇒ Object
- #transform_Nop(_) ⇒ Object
- #transform_NotExpression(e) ⇒ Object
- #transform_OrExpression(e) ⇒ Object
- #transform_Parameter(e) ⇒ Object
- #transform_ParenthesizedExpression(e) ⇒ Object
- #transform_PlanDefinition(e) ⇒ Object
- #transform_Program(e) ⇒ Object
- #transform_QualifiedName(e) ⇒ Object
- #transform_QualifiedReference(e) ⇒ Object
- #transform_RelationshipExpression(e) ⇒ Object
- #transform_RenderExpression(e) ⇒ Object
- #transform_RenderStringExpression(e) ⇒ Object
- #transform_ReservedWord(e) ⇒ Object
- #transform_ResourceBody(e) ⇒ Object
- #transform_ResourceDefaultsExpression(e) ⇒ Object
- #transform_ResourceExpression(e) ⇒ Object
- #transform_ResourceOverrideExpression(e) ⇒ Object
- #transform_ResourceTypeDefinition(e) ⇒ Object
- #transform_SelectorEntry(e) ⇒ Object
- #transform_SelectorExpression(e) ⇒ Object
- #transform_SiteDefinition(e) ⇒ Object
- #transform_SubLocatedExpression(e) ⇒ Object
- #transform_TextExpression(e) ⇒ Object
- #transform_TypeAlias(e) ⇒ Object
- #transform_TypeDefinition(e) ⇒ Object
- #transform_TypeMapping(e) ⇒ Object
- #transform_UnaryMinusExpression(e) ⇒ Object
- #transform_UnfoldExpression(e) ⇒ Object
- #transform_UnlessExpression(e) ⇒ Object
- #transform_VariableExpression(e) ⇒ Object
- #transform_VirtualQuery(e) ⇒ Object
Constructor Details
#initialize(visitor) ⇒ PNTransformer
Returns a new instance of PNTransformer.
18 19 20 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 18 def initialize(visitor) @visitor = visitor end |
Class Method Details
.singleton ⇒ Object
10 11 12 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 10 def self.singleton @singleton ||= new(visitor) end |
.transform(ast) ⇒ Object
14 15 16 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 14 def self.transform(ast) singleton.transform(ast) end |
.visitor ⇒ Object
6 7 8 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 6 def self.visitor @visitor ||= Visitor.new(nil, 'transform', 0, 0) end |
Instance Method Details
#binary_op(e, op) ⇒ Object
350 351 352 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 350 def binary_op(e, op) PN::Call.new(op, transform(e.left_expr), transform(e.right_expr)) end |
#block_as_entry(name, expr) ⇒ Object
373 374 375 376 377 378 379 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 373 def block_as_entry(name, expr) if expr.is_a?(BlockExpression) transform(expr.statements).with_name(name) else transform([expr]).with_name(name) end end |
#call_to_pn(e, r, nr) ⇒ Object
385 386 387 388 389 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 385 def call_to_pn(e, r, nr) entries = [transform(e.functor_expr).with_name('functor'), transform(e.arguments).with_name('args')] entries << transform(e.lambda).with_name('block') unless e.lambda.nil? PN::Map.new(entries).as_call(e.rval_required ? r : nr) end |
#definition_to_pn(e, type_name, parent = nil, return_type = nil) ⇒ Object
354 355 356 357 358 359 360 361 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 354 def definition_to_pn(e, type_name, parent = nil, return_type = nil) entries = [PN::Literal.new(e.name).with_name('name')] entries << PN::Literal.new(parent).with_name('parent') unless parent.nil? entries << parameters_entry(e.parameters) unless e.parameters.empty? entries << block_as_entry('body', e.body) unless e.body.nil? entries << transform(return_type).with_name('returns') unless return_type.nil? PN::Map.new(entries).as_call(type_name) end |
#if_to_pn(e, name) ⇒ Object
391 392 393 394 395 396 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 391 def if_to_pn(e, name) entries = [transform(e.test).with_name('test')] entries << block_as_entry('then', e.then_expr) unless is_nop?(e.then_expr) entries << block_as_entry('else', e.else_expr) unless is_nop?(e.else_expr) PN::Map.new(entries).as_call(name) end |
#is_nop?(e) ⇒ Boolean
346 347 348 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 346 def is_nop?(e) e.nil? || e.is_a?(Nop) end |
#parameters_entry(parameters) ⇒ Object
363 364 365 366 367 368 369 370 371 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 363 def parameters_entry(parameters) PN::Map.new(parameters.map do |p| entries = [] entries << transform(p.type_expr).with_name('type') unless p.type_expr.nil? entries << PN::Literal(true).with_name('splat') if p.captures_rest entries << transform(p.value).with_name('value') unless p.value.nil? PN::Map.new(entries).with_name(p.name) end).with_name('params') end |
#pn_array(a) ⇒ Object
381 382 383 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 381 def pn_array(a) a.map { |e| transform(e) } end |
#transform(ast) ⇒ Object
22 23 24 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 22 def transform(ast) @visitor.visit_this_0(self, ast) end |
#transform_AccessExpression(e) ⇒ Object
26 27 28 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 26 def transform_AccessExpression(e) PN::List.new([transform(e.left_expr)] + pn_array(e.keys)).as_call('access') end |
#transform_AndExpression(e) ⇒ Object
30 31 32 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 30 def transform_AndExpression(e) binary_op(e, 'and') end |
#transform_Application(e) ⇒ Object
34 35 36 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 34 def transform_Application(e) definition_to_pn(e, 'application') end |
#transform_ArithmeticExpression(e) ⇒ Object
38 39 40 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 38 def transform_ArithmeticExpression(e) binary_op(e, e.operator) end |
#transform_Array(a) ⇒ Object
42 43 44 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 42 def transform_Array(a) PN::List.new(pn_array(a)) end |
#transform_AssignmentExpression(e) ⇒ Object
46 47 48 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 46 def transform_AssignmentExpression(e) binary_op(e, e.operator) end |
#transform_AttributeOperation(e) ⇒ Object
50 51 52 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 50 def transform_AttributeOperation(e) PN::Call.new(e.operator, PN::Literal.new(e.attribute_name), transform(e.value_expr)) end |
#transform_AttributesOperation(e) ⇒ Object
54 55 56 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 54 def transform_AttributesOperation(e) PN::Call.new('splat-hash', transform(e.expr)) end |
#transform_BlockExpression(e) ⇒ Object
58 59 60 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 58 def transform_BlockExpression(e) transform(e.statements).as_call('block') end |
#transform_CallFunctionExpression(e) ⇒ Object
62 63 64 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 62 def transform_CallFunctionExpression(e) call_to_pn(e, 'call-lambda', 'invoke-lambda') end |
#transform_CallMethodExpression(e) ⇒ Object
66 67 68 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 66 def transform_CallMethodExpression(e) call_to_pn(e, 'call-method', 'invoke-method') end |
#transform_CallNamedFunctionExpression(e) ⇒ Object
70 71 72 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 70 def transform_CallNamedFunctionExpression(e) call_to_pn(e, 'call', 'invoke') end |
#transform_CapabilityMapping(e) ⇒ Object
74 75 76 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 74 def transform_CapabilityMapping(e) PN::Call.new(e.kind, transform(e.component), PN::List.new([PN::Literal.new(e.capability)] + pn_array(e.mappings))) end |
#transform_CaseExpression(e) ⇒ Object
78 79 80 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 78 def transform_CaseExpression(e) PN::Call.new('case', transform(e.test), transform(e.)) end |
#transform_CaseOption(e) ⇒ Object
82 83 84 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 82 def transform_CaseOption(e) PN::Map.new([transform(e.values).with_name('when'), block_as_entry('then', e.then_expr)]) end |
#transform_CollectExpression(e) ⇒ Object
86 87 88 89 90 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 86 def transform_CollectExpression(e) entries = [transform(e.type_expr).with_name('type'), transform(e.query).with_name('query')] entries << transform(e.operations).with_name('ops') unless e.operations.empty? PN::Map.new(entries).as_call('collect') end |
#transform_ComparisonExpression(e) ⇒ Object
92 93 94 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 92 def transform_ComparisonExpression(e) binary_op(e, e.operator) end |
#transform_ConcatenatedString(e) ⇒ Object
96 97 98 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 96 def transform_ConcatenatedString(e) transform(e.segments).as_call('concat') end |
#transform_EppExpression(e) ⇒ Object
100 101 102 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 100 def transform_EppExpression(e) e.body.nil? ? PN::Call.new('epp') : transform(e.body).as_call('epp') end |
#transform_ExportedQuery(e) ⇒ Object
104 105 106 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 104 def transform_ExportedQuery(e) is_nop?(e.expr) ? PN::Call.new('exported-query') : PN::Call.new('exported-query', transform(e.expr)) end |
#transform_Factory(e) ⇒ Object
108 109 110 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 108 def transform_Factory(e) transform(e.model) end |
#transform_FunctionDefinition(e) ⇒ Object
112 113 114 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 112 def transform_FunctionDefinition(e) definition_to_pn(e, 'function', nil, e.return_type) end |
#transform_HeredocExpression(e) ⇒ Object
116 117 118 119 120 121 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 116 def transform_HeredocExpression(e) entries = [] entries << PN::Literal.new(e.syntax).with_name('syntax') unless e.syntax == '' entries << transform(e.text_expr).with_name('text') PN::Map.new(entries).as_call('heredoc') end |
#transform_HostClassDefinition(e) ⇒ Object
123 124 125 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 123 def transform_HostClassDefinition(e) definition_to_pn(e, 'class', e.parent_class) end |
#transform_IfExpression(e) ⇒ Object
127 128 129 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 127 def transform_IfExpression(e) if_to_pn(e, 'if') end |
#transform_InExpression(e) ⇒ Object
131 132 133 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 131 def transform_InExpression(e) binary_op(e, 'in') end |
#transform_KeyedEntry(e) ⇒ Object
135 136 137 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 135 def transform_KeyedEntry(e) PN::Call.new('=>', transform(e.key), transform(e.value)) end |
#transform_LambdaExpression(e) ⇒ Object
139 140 141 142 143 144 145 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 139 def transform_LambdaExpression(e) entries = [] entries << parameters_entry(e.parameters) unless e.parameters.empty? entries << transform(e.return_type).with_name('returns') unless e.return_type.nil? entries << block_as_entry('body', e.body) unless e.body.nil? PN::Map.new(entries).as_call('lambda') end |
#transform_LiteralBoolean(e) ⇒ Object
147 148 149 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 147 def transform_LiteralBoolean(e) PN::Literal.new(e.value) end |
#transform_LiteralDefault(_) ⇒ Object
151 152 153 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 151 def transform_LiteralDefault(_) PN::Call.new('default') end |
#transform_LiteralFloat(e) ⇒ Object
155 156 157 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 155 def transform_LiteralFloat(e) PN::Literal.new(e.value) end |
#transform_LiteralHash(e) ⇒ Object
159 160 161 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 159 def transform_LiteralHash(e) transform(e.entries).as_call('hash') end |
#transform_LiteralInteger(e) ⇒ Object
163 164 165 166 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 163 def transform_LiteralInteger(e) vl = PN::Literal.new(e.value) e.radix == 10 ? vl : PN::Map.new([PN::Literal.new(e.radix).with_name('radix'), vl.with_name('value')]).as_call('int') end |
#transform_LiteralList(e) ⇒ Object
168 169 170 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 168 def transform_LiteralList(e) transform(e.values).as_call('array') end |
#transform_LiteralRegularExpression(e) ⇒ Object
172 173 174 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 172 def transform_LiteralRegularExpression(e) PN::Literal.new(Types::PRegexpType.regexp_to_s(e.value)).as_call('regexp') end |
#transform_LiteralString(e) ⇒ Object
176 177 178 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 176 def transform_LiteralString(e) PN::Literal.new(e.value) end |
#transform_LiteralUndef(_) ⇒ Object
180 181 182 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 180 def transform_LiteralUndef(_) PN::Literal.new(nil) end |
#transform_MatchExpression(e) ⇒ Object
184 185 186 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 184 def transform_MatchExpression(e) binary_op(e, e.operator) end |
#transform_NamedAccessExpression(e) ⇒ Object
188 189 190 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 188 def transform_NamedAccessExpression(e) binary_op(e, '.') end |
#transform_NodeDefinition(e) ⇒ Object
192 193 194 195 196 197 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 192 def transform_NodeDefinition(e) entries = [transform(e.host_matches).with_name('matches')] entries << transform(e.parent).with_name('parent') unless e.parent.nil? entries << block_as_entry('body', e.body) unless e.body.nil? PN::Map.new(entries).as_call('node') end |
#transform_Nop(_) ⇒ Object
199 200 201 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 199 def transform_Nop(_) PN::Call.new('nop') end |
#transform_NotExpression(e) ⇒ Object
203 204 205 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 203 def transform_NotExpression(e) PN::Call.new('!', transform(e.expr)) end |
#transform_OrExpression(e) ⇒ Object
207 208 209 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 207 def transform_OrExpression(e) binary_op(e, 'or') end |
#transform_Parameter(e) ⇒ Object
211 212 213 214 215 216 217 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 211 def transform_Parameter(e) entries = [PN::Literal.new(e.name).with_name('name')] entries << transform(e.type_expr).with_name('type') unless e.type_expr.nil? entries << PN::Literal.new(true).with_name('splat') if e.captures_rest entries << transform(e.value).with_name('value') unless e.value.nil? PN::Map.new(entries).with_name('param') end |
#transform_ParenthesizedExpression(e) ⇒ Object
219 220 221 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 219 def transform_ParenthesizedExpression(e) PN::Call.new('paren', transform(e.expr)) end |
#transform_PlanDefinition(e) ⇒ Object
223 224 225 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 223 def transform_PlanDefinition(e) definition_to_pn(e, 'plan', nil, e.return_type) end |
#transform_Program(e) ⇒ Object
227 228 229 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 227 def transform_Program(e) transform(e.body) end |
#transform_QualifiedName(e) ⇒ Object
231 232 233 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 231 def transform_QualifiedName(e) PN::Call.new('qn', PN::Literal.new(e.value)) end |
#transform_QualifiedReference(e) ⇒ Object
235 236 237 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 235 def transform_QualifiedReference(e) PN::Call.new('qr', PN::Literal.new(e.cased_value)) end |
#transform_RelationshipExpression(e) ⇒ Object
239 240 241 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 239 def transform_RelationshipExpression(e) binary_op(e, e.operator) end |
#transform_RenderExpression(e) ⇒ Object
243 244 245 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 243 def transform_RenderExpression(e) PN::Call.new('render', transform(e.expr)) end |
#transform_RenderStringExpression(e) ⇒ Object
247 248 249 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 247 def transform_RenderStringExpression(e) PN::Literal.new(e.value).as_call('render-s') end |
#transform_ReservedWord(e) ⇒ Object
251 252 253 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 251 def transform_ReservedWord(e) PN::Literal.new(e.word).as_call('reserved') end |
#transform_ResourceBody(e) ⇒ Object
255 256 257 258 259 260 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 255 def transform_ResourceBody(e) PN::Map.new([ transform(e.title).with_name('title'), transform(e.operations).with_name('ops') ]).as_call('resource_body') end |
#transform_ResourceDefaultsExpression(e) ⇒ Object
262 263 264 265 266 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 262 def transform_ResourceDefaultsExpression(e) entries = [transform(e.type_ref).with_name('type'), transform(e.operations).with_name('ops')] entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular' PN::Map.new(entries).as_call('resource-defaults') end |
#transform_ResourceExpression(e) ⇒ Object
268 269 270 271 272 273 274 275 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 268 def transform_ResourceExpression(e) entries = [ transform(e.type_name).with_name('type'), PN::List.new(pn_array(e.bodies).map { |body| body[0] }).with_name('bodies') ] entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular' PN::Map.new(entries).as_call('resource') end |
#transform_ResourceOverrideExpression(e) ⇒ Object
277 278 279 280 281 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 277 def transform_ResourceOverrideExpression(e) entries = [transform(e.resources).with_name('resources'), transform(e.operations).with_name('ops')] entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular' PN::Map.new(entries).as_call('resource-override') end |
#transform_ResourceTypeDefinition(e) ⇒ Object
283 284 285 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 283 def transform_ResourceTypeDefinition(e) definition_to_pn(e, 'define') end |
#transform_SelectorEntry(e) ⇒ Object
287 288 289 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 287 def transform_SelectorEntry(e) PN::Call.new('=>', transform(e.matching_expr), transform(e.value_expr)) end |
#transform_SelectorExpression(e) ⇒ Object
291 292 293 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 291 def transform_SelectorExpression(e) PN::Call.new('?', transform(e.left_expr), transform(e.selectors)) end |
#transform_SiteDefinition(e) ⇒ Object
295 296 297 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 295 def transform_SiteDefinition(e) transform(e.body).as_call('site') end |
#transform_SubLocatedExpression(e) ⇒ Object
299 300 301 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 299 def transform_SubLocatedExpression(e) transform(e.expr) end |
#transform_TextExpression(e) ⇒ Object
303 304 305 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 303 def transform_TextExpression(e) PN::Call.new('str', transform(e.expr)) end |
#transform_TypeAlias(e) ⇒ Object
307 308 309 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 307 def transform_TypeAlias(e) PN::Call.new('type-alias', PN::Literal.new(e.name), transform(e.type_expr)) end |
#transform_TypeDefinition(e) ⇒ Object
311 312 313 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 311 def transform_TypeDefinition(e) PN::Call.new('type-definition', PN::Literal.new(e.name), PN::Literal.new(e.parent), transform(e.body)) end |
#transform_TypeMapping(e) ⇒ Object
315 316 317 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 315 def transform_TypeMapping(e) PN::Call.new('type-mapping', transform(e.type_expr), transform(e.mapping_expr)) end |
#transform_UnaryMinusExpression(e) ⇒ Object
319 320 321 322 323 324 325 326 327 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 319 def transform_UnaryMinusExpression(e) if e.expr.is_a?(LiteralValue) v = e.expr.value if v.is_a?(Numeric) return PN::Literal.new(-v) end end PN::Call.new('-', transform(e.expr)) end |
#transform_UnfoldExpression(e) ⇒ Object
329 330 331 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 329 def transform_UnfoldExpression(e) PN::Call.new('unfold', transform(e.expr)) end |
#transform_UnlessExpression(e) ⇒ Object
333 334 335 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 333 def transform_UnlessExpression(e) if_to_pn(e, 'unless') end |
#transform_VariableExpression(e) ⇒ Object
337 338 339 340 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 337 def transform_VariableExpression(e) ne = e.expr PN::Call.new('var', ne.is_a?(Model::QualifiedName) ? PN::Literal.new(ne.value) : transform(ne)) end |
#transform_VirtualQuery(e) ⇒ Object
342 343 344 |
# File 'lib/puppet/pops/model/pn_transformer.rb', line 342 def transform_VirtualQuery(e) is_nop?(e.expr) ? PN::Call.new('virtual-query') : PN::Call.new('virtual-query', transform(e.expr)) end |