From 25c8769155c9d69d2810d0dce6a47c3bd72f8cce Mon Sep 17 00:00:00 2001 From: Lukas Renggli Date: Fri, 5 Jul 2019 19:17:35 +0200 Subject: [PATCH] Improved the documentation for pattern parser. --- petitparser/lib/src/core/characters/pattern.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/petitparser/lib/src/core/characters/pattern.dart b/petitparser/lib/src/core/characters/pattern.dart index 33dc86c0..5c894403 100644 --- a/petitparser/lib/src/core/characters/pattern.dart +++ b/petitparser/lib/src/core/characters/pattern.dart @@ -10,7 +10,17 @@ import 'package:petitparser/src/core/characters/range.dart'; import 'package:petitparser/src/core/parser.dart'; import 'package:petitparser/src/core/predicates/any.dart'; -/// Returns a parser that accepts the given character class pattern. +/// Returns a parser that accepts a single character of a given character set +/// provided as a string. +/// +/// Characters match themselves. A dash `-` between two characters matches the +/// range of those characters. A caret `^` at the beginning negates the pattern. +/// +/// For example, the parser `pattern('aou')` accepts the character 'a', 'o', or +/// 'u', and fails for any other input. The parser `pattern('1-3')` accepts +/// either '1', '2', or '3'; and fails for any other character. The parser +/// `pattern('^aou') accepts any character, but fails for the characters 'a', +/// 'o', or 'u'. Parser pattern(String element, [String message]) { return CharacterParser(pattern_.parse(element).value, message ?? '[${toReadableString(element)}] expected'); @@ -34,7 +44,7 @@ final Parser range_ = final Parser sequence_ = range_.or(single_).plus().map( (predicates) => optimizedRanges(predicates.cast())); -/// Parser that reads a possibly negated sequecne of predicates. +/// Parser that reads a possibly negated sequence of predicates. final Parser pattern_ = char('^') .optional() .seq(sequence_)