Module: OOPeg::Parsers::Advanced::StringParser

Extended by:
StringParser
Includes:
OOPeg::Parsers
Included in:
StringParser
Defined in:
lib/oo_peg/parsers/advanced/string_parser.rb

Instance Method Summary collapse

Methods included from OOPeg::Parser::Combinators::Lazy

#delay

Methods included from CommonParsers

#id_parser, #int_parser, #kwd_parser, #set_parser, #word_parser, #ws_parser

Methods included from BaseParsers

#char_class_parser, #char_parser, #end_parser, #false_parser, #true_parser

Instance Method Details

#make(delim: %{'"}, doubled_escape: nil, extra_parser: nil, escape_with: "\\", name: "StringParser") ⇒ Object



9
10
11
12
13
14
15
# File 'lib/oo_peg/parsers/advanced/string_parser.rb', line 9

def make(delim: %{'"}, doubled_escape: nil, extra_parser: nil, escape_with: "\\", name: "StringParser")
  parser =
  Parser.or(
    delim.grapheme_clusters.map { |quote| make_delim_parser(quote, doubled_escape:, extra_parser:, escape_with:) }
  )
  parser.map_or_rename(error: "Missing closing delimiter", name:) { |ast| ast[1].join }
end