Sha256: e1addca1ef7c19b8d36fefe508bc48eceba431d975dc22c40336c4558ca9d0eb

Contents?: true

Size: 1020 Bytes

Versions: 6

Compression:

Stored size: 1020 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

        debugger unless operation.type.respond_to?(:build)
        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

6 entries across 6 versions & 1 rubygems

Version Path
webidl-0.1.4 lib/webidl/parse_tree/operation.rb
webidl-0.1.3 lib/webidl/parse_tree/operation.rb
webidl-0.1.2 lib/webidl/parse_tree/operation.rb
webidl-0.1.1 lib/webidl/parse_tree/operation.rb
webidl-0.1.0 lib/webidl/parse_tree/operation.rb
webidl-0.0.9 lib/webidl/parse_tree/operation.rb