Module: YARD::Parser::Ruby

Included in:
Handlers::Ruby::Base, Handlers::Ruby::Base
Defined in:
lib/yard/autoload.rb,
lib/yard/parser/ruby/ast_node.rb,
lib/yard/parser/ruby/ruby_parser.rb,
lib/yard/parser/ruby/legacy/ruby_parser.rb

Overview

Ruby parsing components.

Defined Under Namespace

Modules: Legacy Classes: AstNode, ConditionalNode, KeywordNode, LiteralNode, MethodCallNode, ParameterNode, ReferenceNode, RipperParser, RubyParser

Instance Method Summary (collapse)

Instance Method Details

- (AstNode) s(*nodes, opts = {}) - (AstNode) s(type, *children, opts = {})

Builds and s-expression by creating AstNode objects with the type provided by the first argument.

Examples:

An implicit list of keywords

ast = s(s(:kw, "if"), s(:kw, "else"))
ast.type # => :list

A method call

s(:command, s(:var_ref, "mymethod"))

Overloads:

  • - (AstNode) s(*nodes, opts = {})

    Returns an implicit node where node.type == :list

    Parameters:

    • nodes (Array<AstNode>)

      a list of nodes.

    • opts (Hash) (defaults to: {})

      any extra options (docstring, file, source) to set on the object

    Returns:

    • (AstNode)

      an implicit node where node.type == :list

  • - (AstNode) s(type, *children, opts = {})

    Returns a node of type type.

    Parameters:

    • type (Symbol)

      the node type

    • children (Array<AstNode>)

      any child nodes inside this one

    • opts (Hash) (defaults to: {})

      any extra options to set on the object

    Returns:

    • (AstNode)

      a node of type type.

See Also:



24
25
26
27
28
# File 'lib/yard/parser/ruby/ast_node.rb', line 24

def s(*args)
  type = Symbol === args.first ? args.shift : :list
  opts = Hash === args.last ? args.pop : {}
  AstNode.node_class_for(type).new(type, args, opts)
end