1 unstable release
0.1.0 | May 6, 2022 |
---|
#1656 in Text processing
11,364 downloads per month
Used in 25 crates
(via stun-rs)
16KB
174 lines
quoted-string-parser
This crates implements a parser for text that meets the grammar for "quoted-string" as described in SIP: Session Initiation Protocol. RFC3261
quoted-string = SWS DQUOTE *(qdtext / quoted-pair ) DQUOTE
qdtext = LWS / %x21 / %x23-5B / %x5D-7E / UTF8-NONASCII
quoted-pair = "\" (%x00-09 / %x0B-0C / %x0E-7F)
LWS = [*WSP CRLF] 1*WSP ; linear whitespace
SWS = [LWS] ; sep whitespace
UTF8-NONASCII = %xC0-DF 1UTF8-CONT
/ %xE0-EF 2UTF8-CONT
/ %xF0-F7 3UTF8-CONT
/ %xF8-Fb 4UTF8-CONT
/ %xFC-FD 5UTF8-CONT
UTF8-CONT = %x80-BF
DQUOTE = %x22 ; " (Double Quote)
CRLF = CR LF ; Internet standard newline
CR = %x0D ; carriage return
LF = %x0A ; linefeed
WSP = SP / HTAB ; whitespace
SP = %x20
HTAB = %x09 ; horizontal tab
ParThe QuotedStringParser object provides an simple API to validate that input text meets the "quoted-string" grammar.
use quoted_string_parser::{QuotedStringParser, QuotedStringParseLevel};
// two qdtexts separated by a whitespace
assert!(QuotedStringParser::validate(
QuotedStringParseLevel::QuotedString, "\"Hello world\""));
// one quoted-pair
assert!(QuotedStringParser::validate(
QuotedStringParseLevel::QuotedString, "\"\\\u{7f}\""));
QuotedStringParser derives from Parser, if you need more control over the parser itself you can use any of the operations defined in the pest crate. Check the documentation for more information.
Documentation
https://docs.rs/quoted-string-parser
Contributing
Patches and feedback are welcome.
Donations
If you find this project helpful, you may consider making a donation:
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) at your option.
Dependencies
~2–2.8MB
~56K SLoC