Sha256: bc5863aed38265136addb02525adc1cab3a8b475fe7812e8d8b5f6e2312ffd05
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
module Pione module Transformer # DocumentTransformer is a transformer for syntax tree of document. class DocumentTransformer < Parslet::Transform include LiteralTransformer include FeatureExprTransformer include ExprTransformer include FlowElementTransformer include BlockTransformer include RuleDefinitionTransformer # @param package_name [String] # package name of the document def initialize(package_name="main") super() @current_package_name = package_name Thread.current[:current_package_name] = @current_package_name end def check_model_type(data, type) data.pione_model_type == type end # Transform +:param_block+ as Naming::ParamBlock. rule(:param_block => sequence(:assignment_list)) { Naming.ParamBlock(assignment_list) } # Transform +:package+ as Naming::Package. rule(:package => subtree(:tree)) { @current_package = Naming.Package(tree[:package_name].to_s) } end end end
Version data entries
4 entries across 4 versions & 1 rubygems