Module: Puppet::Pops::Model

Defined in:
lib/puppet/pops.rb,
lib/puppet/pops/model/ast.rb,
lib/puppet/pops/model/ast.rb,
lib/puppet/pops/model/factory.rb,
lib/puppet/pops/model/pn_transformer.rb,
lib/puppet/pops/model/model_label_provider.rb

Defined Under Namespace

Classes: AbstractAttributeOperation, AbstractResource, AccessExpression, AndExpression, ApplyBlockExpression, ApplyExpression, ArithmeticExpression, AssignmentExpression, AstTransformer, AttributeOperation, AttributesOperation, BinaryExpression, BlockExpression, BooleanExpression, CallExpression, CallFunctionExpression, CallMethodExpression, CallNamedFunctionExpression, CaseExpression, CaseOption, CollectExpression, ComparisonExpression, ConcatenatedString, Definition, EppExpression, ExportedQuery, Expression, Factory, FunctionDefinition, HeredocExpression, HostClassDefinition, IfExpression, InExpression, KeyedEntry, LambdaExpression, Literal, LiteralBoolean, LiteralDefault, LiteralFloat, LiteralHash, LiteralInteger, LiteralList, LiteralNumber, LiteralRegularExpression, LiteralString, LiteralUndef, LiteralValue, MatchExpression, ModelLabelProvider, ModelTreeDumper, NamedAccessExpression, NamedDefinition, NodeDefinition, Nop, NotExpression, OrExpression, PNTransformer, Parameter, ParenthesizedExpression, PlanDefinition, PopsObject, Positioned, Program, QRefDefinition, QualifiedName, QualifiedReference, QueryExpression, RelationshipExpression, RenderExpression, RenderStringExpression, ReservedWord, ResourceBody, ResourceDefaultsExpression, ResourceExpression, ResourceOverrideExpression, ResourceTypeDefinition, SelectorEntry, SelectorExpression, TextExpression, TreeDumper, TypeAlias, TypeDefinition, TypeMapping, UnaryExpression, UnaryMinusExpression, UnfoldExpression, UnlessExpression, VariableExpression, VirtualQuery

Constant Summary collapse

@@pcore_ast_initialized =
false

Class Method Summary collapse

Class Method Details

.register_pcore_typesObject



4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
# File 'lib/puppet/pops/model/ast.rb', line 4670

def self.register_pcore_types
  return if @@pcore_ast_initialized

  @@pcore_ast_initialized = true
  all_types = [
    Parser::Locator::Locator19,
    Model::PopsObject,
    Model::Positioned,
    Model::Expression,
    Model::Nop,
    Model::BinaryExpression,
    Model::UnaryExpression,
    Model::ParenthesizedExpression,
    Model::NotExpression,
    Model::UnaryMinusExpression,
    Model::UnfoldExpression,
    Model::AssignmentExpression,
    Model::ArithmeticExpression,
    Model::RelationshipExpression,
    Model::AccessExpression,
    Model::ComparisonExpression,
    Model::MatchExpression,
    Model::InExpression,
    Model::BooleanExpression,
    Model::AndExpression,
    Model::OrExpression,
    Model::LiteralList,
    Model::KeyedEntry,
    Model::LiteralHash,
    Model::BlockExpression,
    Model::ApplyBlockExpression,
    Model::CaseOption,
    Model::CaseExpression,
    Model::QueryExpression,
    Model::ExportedQuery,
    Model::VirtualQuery,
    Model::AbstractAttributeOperation,
    Model::AttributeOperation,
    Model::AttributesOperation,
    Model::CollectExpression,
    Model::Parameter,
    Model::Definition,
    Model::NamedDefinition,
    Model::FunctionDefinition,
    Model::ResourceTypeDefinition,
    Model::QRefDefinition,
    Model::TypeAlias,
    Model::TypeMapping,
    Model::TypeDefinition,
    Model::NodeDefinition,
    Model::HeredocExpression,
    Model::HostClassDefinition,
    Model::PlanDefinition,
    Model::LambdaExpression,
    Model::ApplyExpression,
    Model::IfExpression,
    Model::UnlessExpression,
    Model::CallExpression,
    Model::CallFunctionExpression,
    Model::CallNamedFunctionExpression,
    Model::CallMethodExpression,
    Model::Literal,
    Model::LiteralValue,
    Model::LiteralRegularExpression,
    Model::LiteralString,
    Model::LiteralNumber,
    Model::LiteralInteger,
    Model::LiteralFloat,
    Model::LiteralUndef,
    Model::LiteralDefault,
    Model::LiteralBoolean,
    Model::TextExpression,
    Model::ConcatenatedString,
    Model::QualifiedName,
    Model::ReservedWord,
    Model::QualifiedReference,
    Model::VariableExpression,
    Model::EppExpression,
    Model::RenderStringExpression,
    Model::RenderExpression,
    Model::ResourceBody,
    Model::AbstractResource,
    Model::ResourceExpression,
    Model::ResourceDefaultsExpression,
    Model::ResourceOverrideExpression,
    Model::SelectorEntry,
    Model::SelectorExpression,
    Model::NamedAccessExpression,
    Model::Program]

  # Create and register a TypeSet that corresponds to all types in the AST model
  types_map = {}
  all_types.each do |type|
    types_map[type._pcore_type.simple_name] = type._pcore_type
  end
  type_set = Types::PTypeSetType.new({
                                       'name' => 'Puppet::AST',
                                       'pcore_version' => '1.0.0',
                                       'types' => types_map
                                     })
  loc = Puppet::Util.path_to_uri("#{__FILE__}")
  Loaders.static_loader.set_entry(Loader::TypedName.new(:type, 'puppet::ast', Pcore::RUNTIME_NAME_AUTHORITY), type_set, URI("#{loc}?line=1"))
  Loaders.register_static_implementations(all_types)
end