Module: Virginity::Bnf

Includes:
Rfc2234, Rfc2425, Rfc882
Defined in:
lib/virginity/bnf.rb

Overview

Contains regular expression strings for the EBNF of rfc 2425.

Constant Summary collapse

NAME =

1*(ALPHA / DIGIT / “-”) added underscore ‘_’ because it’s produced by Notes - X-LOTUS-CHILD_UID added a slash ‘/’ so that it will match lines like: “X-messaging/xmpp-All:[email protected]” added a space ‘ ’ so that it will match lines like: “X-GOOGLE TALK;TYPE=WORK:janklaassen”

'[a-zA-Z0-9][a-zA-Z0-9\-\_\/\ ]*'
QSTR =

<“> <Any character except CTLs, DQUOTE> <”> CTL = <any ASCII control ; ( 0- 37, 0.- 31.)

character and DEL>          ; (    177,     127.)

DQOUTE = ‘“’ QSTR = ‘”([^“]*)”’

QUOTED_STRING
PTEXT =

*<Any character except CTLs, DQUOTE, “;”, “:”, “,”>

'([^";:,]+)'
PVALUE =

param-value = ptext / quoted-string

"(?:#{QSTR}|#{PTEXT})"
PARAM =

param = name “=” param-value *(“,” param-value)

";(#{NAME})=((?:#{PVALUE})?(?:,#{PVALUE})*)"
LINE =

V3.0: contentline = [group “.”] name *(“;” param) “:” value V2.1: contentline = *( group “.” ) name *(“;” param) “:” value

LINE = “((?:#NAME\.)*)?(#NAME)([^:]*):(.*)” tcmalloc (used by ree) having memory issues with that one: LINE = “^((?:#NAME\.)*)?(#NAME)((?:#PARAM)*):(.*)$” LINE = “^((?:#NAME\.)*)?(#NAME)((?:#PARAM)*):” We do not accept the V2.1 syntax.

"^(#{NAME}\\.)?(#{NAME})((?:#{PARAM})*):"
DATE =

date = date-fullyear [“-”] date-month [“-”] date-mday date-fullyear = 4 DIGIT date-month = 2 DIGIT date-mday = 2 DIGIT

'(\d\d\d\d)-?(\d\d)-?(\d\d)'
TIME =

time = time-hour [“:”] time-minute [“:”] time-second [time-secfrac] [time-zone] time-hour = 2 DIGIT time-minute = 2 DIGIT time-second = 2 DIGIT time-secfrac = “,” 1*DIGIT time-zone = “Z” / time-numzone time-numzome = sign time-hour [“:”] time-minute

'(\d\d):?(\d\d):?(\d\d)(\.\d+)?(Z|[-+]\d\d:?\d\d)?'
INTEGER =

integer = ([“+”] / “-”) 1*DIGIT

'[-+]?\d+'
QSAFECHAR =

QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII

; Any character except CTLs and DQUOTE
'[ \t\x21\x23-\x7e\x80-\xff]'
SAFECHAR =

SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E / NON-US-ASCII

; Any character except CTLs, DQUOTE, ";", ":", ","
'[ \t\x21\x23-\x2b\x2d-\x39\x3c-\x7e\x80-\xff]'

Constants included from Rfc2234

Rfc2234::CRLF, Rfc2234::DIGIT, Rfc2234::WSP

Constants included from Rfc882

Rfc882::QTEXT, Rfc882::QUOTED_PAIR, Rfc882::QUOTED_STRING