method
identify_string
v1_9_3_125 -
Show latest stable
- Class:
RubyLex
identify_string(ltype, quoted = ltype)public
No documentation available.
# File lib/irb/ruby-lex.rb, line 1040
def identify_string(ltype, quoted = ltype)
@ltype = ltype
@quoted = quoted
subtype = nil
begin
nest = 0
while ch = getc
if @quoted == ch and nest == 0
break
elsif @ltype != "'" && ch == "#" && peek(0) == "{"
identify_string_dvar
elsif @ltype != "'" && @ltype != "]" && @ltype != ":" and ch == "#"
subtype = true
elsif ch == '\' and @ltype == "'" #'
case ch = getc
when "\\", "\n", "'"
else
ungetc
end
elsif ch == '\' #'
read_escape
end
if PERCENT_PAREN.values.include?(@quoted)
if PERCENT_PAREN[ch] == @quoted
nest += 1
elsif ch == @quoted
nest -= 1
end
end
end
if @ltype == "/"
while /[imxoesun]/ =~ peek(0)
getc
end
end
if subtype
Token(DLtype2Token[ltype])
else
Token(Ltype2Token[ltype])
end
ensure
@ltype = nil
@quoted = nil
@lex_state = EXPR_END
end
end