Sha256: 4d7a7d6020b01af2caa131447620a8b24920f9247f75b0d52a4338d6bc8a2e3b
Contents?: true
Size: 960 Bytes
Versions: 2
Compression:
Stored size: 960 Bytes
Contents
class Code class Parser class Identifier < ::Code::Parser def initialize(input, simple: false, **kargs) super(input, **kargs) @simple = simple end def parse return if end_of_input? if !simple? && match(AMPERSAND) { block: parse_subclass(::Code::Parser::Statement) } elsif !simple && match(ASTERISK + ASTERISK) { keyword_splat: parse_subclass(::Code::Parser::Statement) } elsif !simple? && match(ASTERISK) { regular_splat: parse_subclass(::Code::Parser::Statement) } elsif !next?(SPECIAL) && !next?(KEYWORDS) consume while !next?(SPECIAL) && !end_of_input? match(QUESTION_MARK) || match(EXCLAMATION_POINT) if !simple? name = buffer! { name: name } else return end end private attr_reader :simple def simple? !!simple end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
template-ruby-parser-0.1.2 | lib/code/parser/identifier.rb |
code-ruby-parser-0.1.2 | lib/code/parser/identifier.rb |