Sebib's File Format

A Sebib-file is a concatenation of entries.
Each entry is an S-Expression representing a list of fields.
A field is a sexp: (cmdname arg1 arg2 ...).
From a lexical point of view, Sebib follows OCaml's conventions for string litterals.
As in Lisp, Scheme, or any other S-Expression-based language, comments start with semi-colons (';') and end with end-of-lines.
Here is a complete example; two entries, the first has 5 fields, the second has all kinds of fields:
; A simple example
(
  (id theidofthesimpleone) ; Just an advice, if you want good
                           ; hackability, don't use complex strings
                           ; for ids, just alpha-numeric characters.
  (title "The title of the Publication")

  ; 'authors' is a list of couples.
  (authors (First Family) ("First2 Middle2" Family2))

  (year 1999)
  (how "Some where...")
)


; A  "complete" example:
(   (id most09complete)
    (authors ("John F." Smith) (First "Family"))
    (title "The most complete example")
    (how "In proceedings of Some workshop or conference")
    (year "1901")

    ; Keywords or tags are a list of strings:
    (keywords "Personal Data Management" "Forty-two")
    (tags onetag onemoretag)

    ; Most URLs respect the nameing conventions of S-Expressions,
    ; hence, they often do not need string-escaping:
    (url http://url.to.the/page?of&the&paper)
    (pdfurl http://link.t.o/the?pdf)
    (doi "http://some.doi.provider/42.42.42.42")


    ; 'id', 'title', 'authors', 'year', and 'note' will be used
    ; to generate the BibTeX
    ; only if you do not provide the 'bibtex' field:
    (bibtex "
@inproceedings{most09complete,
 author = {Smith, John F. and Family First}
 title = {The most complete example},
 booktitle = {Some workshop or conference},
 year = {1901},
 pages = {1--13},
 }
    ")

    (note "The note is a special comment which may go to the @misc \
    autogenerated entries")

    (abstract "Lorem ipsum dolor sit amet, consectetur adipisicing
    elit, sed do eiusmod tempor incididunt ut labore et dolore magna
    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
    laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
    dolor in reprehenderit in voluptate velit esse cillum dolore eu
    fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est
    laborum.")

    (citation "Smith and Family, 1999, The most complete example.")

    ; 'comment' are couples or triplets
    (comment "
        The comment without middle arguments is considered to be
        the \"main\" one
        ")
    ; meaning that (comment "...") is equivalent to (comment main "...")

    (comment short "Another comment, this one is called \"short\" \
       You may use any middle argument except \"main\"
       (which is equivalent to the no-middle-argument one")
)