Class: Parser::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/parser/context.rb

Overview

Context of parsing that is represented by a stack of scopes.

Supported states: + :class - in the class body (class A; end) + :module - in the module body (module M; end) + :sclass - in the singleton class body (class << obj; end) + :def - in the method body (def m; end) + :defs - in the singleton method body (def self.m; end) + :def_open_args - in the arglist of the method definition

keep in mind that it's set **only** after reducing the first argument,
if you need to handle the first argument check `lex_state == expr_fname`

+ :block - in the block body (tap {}) + :lambda - in the lambda body (-> {})

Constant Summary collapse

FLAGS =
%i[
  in_defined
  in_kwarg
  in_argdef
  in_def
  in_class
  in_block
  in_lambda
]

Instance Method Summary collapse

Constructor Details

#initializeContext

Returns a new instance of Context.



29
30
31
# File 'lib/parser/context.rb', line 29

def initialize
  reset
end

Instance Method Details

#in_dynamic_block?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/parser/context.rb', line 45

def in_dynamic_block?
  in_block || in_lambda
end

#resetObject



33
34
35
36
37
38
39
40
41
# File 'lib/parser/context.rb', line 33

def reset
  @in_defined = false
  @in_kwarg = false
  @in_argdef = false
  @in_def = false
  @in_class = false
  @in_block = false
  @in_lambda = false
end