Class: Parser::Context
- Inherits:
-
Object
- Object
- Parser::Context
- 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
- #in_dynamic_block? ⇒ Boolean
-
#initialize ⇒ Context
constructor
A new instance of Context.
- #reset ⇒ Object
Constructor Details
#initialize ⇒ Context
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
45 46 47 |
# File 'lib/parser/context.rb', line 45 def in_dynamic_block? in_block || in_lambda end |
#reset ⇒ Object
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 |