Sha256: 98f4a3b764becce0d334368e338be5bf1217622efbdc8c195d2611e6874b1400

Contents?: true

Size: 961 Bytes

Versions: 2

Compression:

Stored size: 961 Bytes

Contents

module WebIDL
  module ParseTree
    class Operation < Treetop::Runtime::SyntaxNode

      def build(parent)
        if respond_to?(:specials)
          special_list = specials.build unless specials.empty?
          operation    = op
        else
          special_list = []
          operation    = self
        end

        typ        = operation.type.build(parent)
        name       = operation.optional_id.text_value unless operation.optional_id.empty?
        arguments  = operation.args.build(parent) unless operation.args.empty?
        raise_list = operation.raises.build unless operation.raises.empty?

        Ast::Operation.new(
          parent, typ,  :name     => name,
                        :specials => special_list,
                        :args     => arguments,
                        :raises   => raise_list,
                        :static   => respond_to?(:static)
        )
      end

    end # Operation
  end # ParseTree
end # WebIDL

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webidl-0.1.6 lib/webidl/parse_tree/operation.rb
webidl-0.1.5 lib/webidl/parse_tree/operation.rb