View Single Post
Posts: 61 | Thanked: 36 times | Joined on Feb 2006 @ Harpenden
#57
OK if I can read my BNF correctly (haven't done that since Uni many moons ago)
Code:
  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 ";">
it looks like the extra CRLF we've been worried about are actually allowed by the spec and it is Apple that is incorrectly parsing it.