Sha256: 54168de96ebe2623d22ee88ee2480a0c57cd554e8e99b77a7c66957970e7f0fc

Contents?: true

Size: 961 Bytes

Versions: 8

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

        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
        )
      end

    end # Operation
  end # ParseTree
end # WebIDL

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
webidl-0.0.8 lib/webidl/parse_tree/operation.rb
webidl-0.0.7 lib/webidl/parse_tree/operation.rb
webidl-0.0.6 lib/webidl/parse_tree/operation.rb
webidl-0.0.5 lib/webidl/parse_tree/operation.rb
webidl-0.0.4 lib/webidl/parse_tree/operation.rb
webidl-0.0.3 lib/webidl/parse_tree/operation.rb
webidl-0.0.2 lib/webidl/parse_tree/operation.rb
webidl-0.0.1 lib/webidl/parse_tree/operation.rb