CR = <ASCII CR, carriage return> ; ( 15, 13.) LF = <ASCII LF, linefeed> ; ( 12, 10.) CRLF = CR LF SPACE = <ASCII SP, space> ; ( 40, 32.) HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.) All literal property names are valid as upper, lower, or mixed case. ws = 1*(SPACE / HTAB) ; "whitespace," one or more spaces or tabs entprop = [ws] simprop [params] ":" value CRLF / [ws] "AALARM" [params] ":" aalarmparts CRLF aalarmparts = 0*3(strnosemi ";") strnosemi ; runTime, snoozeTime, repeatCount, audioContent strnosemi = *(*nonsemi ("\;" / "\" CRLF)) *nonsemi ; To include a semicolon in this string, it must be escaped ; with a "\" character. nonsemi = <any non-control ASCII except ";">