in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [8455:8537]
def _StringLiteral
_save = self.pos
while true
_save1 = self.pos
while true
_tmp = apply(:_DQ)
unless _tmp
self.pos = _save1
break
end
_text_start = self.pos
while true
_tmp = apply(:_DoubleStringCharacter)
break unless _tmp
end
_tmp = true
if _tmp
text = get_text(_text_start)
end
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:_DQ)
unless _tmp
self.pos = _save1
break
end
@result = begin; string_literal(text, '"'); end
_tmp = true
unless _tmp
self.pos = _save1
end
break
end
break if _tmp
self.pos = _save
_save3 = self.pos
while true
_tmp = apply(:_SQ)
unless _tmp
self.pos = _save3
break
end
_text_start = self.pos
while true
_tmp = apply(:_SingleStringCharacter)
break unless _tmp
end
_tmp = true
if _tmp
text = get_text(_text_start)
end
unless _tmp
self.pos = _save3
break
end
_tmp = apply(:_SQ)
unless _tmp
self.pos = _save3
break
end
@result = begin; string_literal(text, "'"); end
_tmp = true
unless _tmp
self.pos = _save3
end
break
end
break if _tmp
self.pos = _save
break
end
set_failed_rule :_StringLiteral unless _tmp
return _tmp
end