Welcome to the CHICKEN Scheme pasting service

more recursion added by andyjpb on Mon Jul 23 15:33:35 2012

(define (vcard-item) (let ((sequence (lambda (name value)
				     (sequence
				       (zero-or-more
					 (sequence (groups) (is #\.)))
				       name
				       (zero-or-more params)
				       (is #\:)
				       value
				       CRLF))))
		     (any-of
		       (sequence name value)
		       (sequence "ADR" addressparts)
		       (sequence "ORG" orgparts)
		       (sequence "N" nameparts)
		       ;(sequence "AGENT" (vcard)))))
		     )))


;vcard      = "BEGIN" [ws] ":" [ws] "VCARD" [ws] 1*CRLF
;        items *CRLF "END" [ws] ":" [ws] "VCARD"
(define (vcard) (sequence
		(char-seq "BEGIN")
		(zero-or-more ws) (is #\:) (zero-or-more ws)
		(char-seq "VCARD")
		(zero-or-more ws)
		(one-or-more CRLF)
		(items)
		(zero-or-more CRLF)
		(char-seq "END")
		(zero-or-more ws) (is #\:) (zero-or-more ws)
		(char-seq "VCARD")))


;items      = items *CRLF item
;       / item
;  ; these may be "folded"
(define (items) (sequence (vcard-item) (zero-or-more CRLF) items))


;vcard_file     = [wsls] vcard [wsls]
(define vcard-file (sequence (zero-or-more wsls) (vcard) (zero-or-more wsls)))


Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which egg implements the CHICKEN wiki?
Visually impaired? Let me spell it for you (wav file) download WAV