class Pione::PNML::DeclarationExtractor

DeclarationExtractor extracts declarations from net.

Public Class Methods

new(env, net, option={}) click to toggle source
# File lib/pione/pnml/declaration-extractor.rb, line 5
def initialize(env, net, option={})
  @env = env
  @net = net
  @declarations = ExtractedDeclarations.new(@env)
end

Public Instance Methods

extract() click to toggle source
# File lib/pione/pnml/declaration-extractor.rb, line 11
def extract
  extract_params
  extract_variable_bindings
  extract_features

  return @declarations
end

Private Instance Methods

extract_features() click to toggle source

Extract net features.

# File lib/pione/pnml/declaration-extractor.rb, line 42
def extract_features
  @net.transitions.each_with_object([]) do |transition, sentences|
    if Perspective.feature_transition?(@env, transition)
      @declarations.add_feature(transition.name)
    end
  end
end
extract_params() click to toggle source

Extract net parameters.

# File lib/pione/pnml/declaration-extractor.rb, line 22
def extract_params
  @net.transitions.each_with_object([]) do |transition, sentences|
    if Perspective.param_transition?(@env, transition)
      # evaluate the sentence for updating language environment
      Perspective.eval_param_sentence(@env, transition)
      @declarations.add_param(transition.name)
    end
  end
end
extract_variable_bindings() click to toggle source

Extract net variable bindings.

# File lib/pione/pnml/declaration-extractor.rb, line 33
def extract_variable_bindings
  @net.transitions.each do |transition|
    if Perspective.variable_binding_transition?(@env, transition)
      @declarations.add_variable_binding(transition.name)
    end
  end
end