Sha256: 58e87b7bfaaee6c5f01c0916c4be62d667b263d0d361fd2b10931f1630b91502

Contents?: true

Size: 733 Bytes

Versions: 4

Compression:

Stored size: 733 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
      }

      rule(:empty_block => simple(:any)) {
        EmptyBlock.instance
      }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pione-0.2.2 lib/pione/transformer/block-transformer.rb
pione-0.2.1 lib/pione/transformer/block-transformer.rb
pione-0.2.0 lib/pione/transformer/block-transformer.rb
pione-0.1.4 lib/pione/transformer/block-transformer.rb