Sha256: 9877c0b7bfe41e1b1aede6edf450bf2dbcc2e2fb4dbdc2f4a781a98d936a045d
Contents?: true
Size: 658 Bytes
Versions: 33
Compression:
Stored size: 658 Bytes
Contents
# frozen_string_literal: true module Parser # Stack that holds names of current arguments, # i.e. while parsing # def m1(a = (def m2(b = def m3(c = 1); end); end)); end # ^ # stack is [:a, :b, :c] # # Emulates `p->cur_arg` in MRI's parse.y # # @api private # class CurrentArgStack attr_reader :stack def initialize @stack = [] freeze end def push(value) @stack << value end def set(value) pop push(value) end def pop @stack.pop end def reset @stack.clear end def top @stack.last end end end
Version data entries
33 entries across 30 versions & 6 rubygems