Sha256: 57d18ed06844c43c4ed30ecaaf60767f3c2d679d2c36feb83fe20c4243a2d374

Contents?: true

Size: 653 Bytes

Versions: 2

Compression:

Stored size: 653 Bytes

Contents

module Pione
  module Transformer
    # BlockTransformer is a transformer for syntax tree of blocks.
    module BlockTransformer
      include TransformerModule

      # Transform +:flow_block+ as Model::FlowBlock.
      rule(:flow_block => sequence(:elements)) {
        FlowBlock.new(*elements)
      }

      # Transform +:action_block+ as Model::ActionBlock.
      rule(:action_block =>
        { :key => simple(:keyword_Action),
          :content => simple(:content) }
      ) {
        val = content.str
        ActionBlock.new(val).tap do |x|
          x.set_line_and_column(keyword_Action.line_and_column)
        end
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pione-0.1.3 lib/pione/transformer/block-transformer.rb
pione-0.1.2 lib/pione/transformer/block-transformer.rb