Class: YARP::DefNode

Inherits:
YARPNode
  • Object
show all
Defined in:
lib/yarp/node.rb,
ext/yarp/api_node.c

Overview

Represents a method definition.

def method
end
^^^^^^^^^^

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location) ⇒ DefNode

def initialize: (name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array, def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void



2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
# File 'lib/yarp/node.rb', line 2431

def initialize(name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location)
  @name_loc = name_loc
  @receiver = receiver
  @parameters = parameters
  @body = body
  @locals = locals
  @def_keyword_loc = def_keyword_loc
  @operator_loc = operator_loc
  @lparen_loc = lparen_loc
  @rparen_loc = rparen_loc
  @equal_loc = equal_loc
  @end_keyword_loc = end_keyword_loc
  @location = location
end

Instance Attribute Details

#bodyObject (readonly)

attr_reader body: Node?



2407
2408
2409
# File 'lib/yarp/node.rb', line 2407

def body
  @body
end

#def_keyword_locObject (readonly)

attr_reader def_keyword_loc: Location



2413
2414
2415
# File 'lib/yarp/node.rb', line 2413

def def_keyword_loc
  @def_keyword_loc
end

#end_keyword_locObject (readonly)

attr_reader end_keyword_loc: Location?



2428
2429
2430
# File 'lib/yarp/node.rb', line 2428

def end_keyword_loc
  @end_keyword_loc
end

#equal_locObject (readonly)

attr_reader equal_loc: Location?



2425
2426
2427
# File 'lib/yarp/node.rb', line 2425

def equal_loc
  @equal_loc
end

#localsObject (readonly)

attr_reader locals: Array



2410
2411
2412
# File 'lib/yarp/node.rb', line 2410

def locals
  @locals
end

#lparen_locObject (readonly)

attr_reader lparen_loc: Location?



2419
2420
2421
# File 'lib/yarp/node.rb', line 2419

def lparen_loc
  @lparen_loc
end

#name_locObject (readonly)

attr_reader name_loc: Location



2398
2399
2400
# File 'lib/yarp/node.rb', line 2398

def name_loc
  @name_loc
end

#operator_locObject (readonly)

attr_reader operator_loc: Location?



2416
2417
2418
# File 'lib/yarp/node.rb', line 2416

def operator_loc
  @operator_loc
end

#parametersObject (readonly)

attr_reader parameters: ParametersNode?



2404
2405
2406
# File 'lib/yarp/node.rb', line 2404

def parameters
  @parameters
end

#receiverObject (readonly)

attr_reader receiver: Node?



2401
2402
2403
# File 'lib/yarp/node.rb', line 2401

def receiver
  @receiver
end

#rparen_locObject (readonly)

attr_reader rparen_loc: Location?



2422
2423
2424
# File 'lib/yarp/node.rb', line 2422

def rparen_loc
  @rparen_loc
end

Instance Method Details

#accept(visitor) ⇒ Object

def accept: (visitor: Visitor) -> void



2447
2448
2449
# File 'lib/yarp/node.rb', line 2447

def accept(visitor)
  visitor.visit_def_node(self)
end

#child_nodesObject Also known as: deconstruct

def child_nodes: () -> Array[nil | Node]



2452
2453
2454
# File 'lib/yarp/node.rb', line 2452

def child_nodes
  [receiver, parameters, body]
end

#copy(**params) ⇒ Object

def copy: (**params) -> DefNode



2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
# File 'lib/yarp/node.rb', line 2457

def copy(**params)
  DefNode.new(
    params.fetch(:name_loc) { name_loc },
    params.fetch(:receiver) { receiver },
    params.fetch(:parameters) { parameters },
    params.fetch(:body) { body },
    params.fetch(:locals) { locals },
    params.fetch(:def_keyword_loc) { def_keyword_loc },
    params.fetch(:operator_loc) { operator_loc },
    params.fetch(:lparen_loc) { lparen_loc },
    params.fetch(:rparen_loc) { rparen_loc },
    params.fetch(:equal_loc) { equal_loc },
    params.fetch(:end_keyword_loc) { end_keyword_loc },
    params.fetch(:location) { location },
  )
end

#deconstruct_keys(keys) ⇒ Object

def deconstruct_keys: (keys: Array) -> Hash[Symbol, nil | Node | Array | String | Token | Array | Location]



2478
2479
2480
# File 'lib/yarp/node.rb', line 2478

def deconstruct_keys(keys)
  { name_loc: name_loc, receiver: receiver, parameters: parameters, body: body, locals: locals, def_keyword_loc: def_keyword_loc, operator_loc: operator_loc, lparen_loc: lparen_loc, rparen_loc: rparen_loc, equal_loc: equal_loc, end_keyword_loc: end_keyword_loc, location: location }
end

#def_keywordObject

def def_keyword: () -> String



2488
2489
2490
# File 'lib/yarp/node.rb', line 2488

def def_keyword
  def_keyword_loc.slice
end

#end_keywordObject

def end_keyword: () -> String?



2513
2514
2515
# File 'lib/yarp/node.rb', line 2513

def end_keyword
  end_keyword_loc&.slice
end

#equalObject

def equal: () -> String?



2508
2509
2510
# File 'lib/yarp/node.rb', line 2508

def equal
  equal_loc&.slice
end

#lparenObject

def lparen: () -> String?



2498
2499
2500
# File 'lib/yarp/node.rb', line 2498

def lparen
  lparen_loc&.slice
end

#nameObject

def name: () -> String



2483
2484
2485
# File 'lib/yarp/node.rb', line 2483

def name
  name_loc.slice
end

#operatorObject

def operator: () -> String?



2493
2494
2495
# File 'lib/yarp/node.rb', line 2493

def operator
  operator_loc&.slice
end

#rparenObject

def rparen: () -> String?



2503
2504
2505
# File 'lib/yarp/node.rb', line 2503

def rparen
  rparen_loc&.slice
end