Go forward to Emacs/XEmacs Code.
Go backward to Ranges.
Go up to A Programmers Guide to Gnus.
Group Info
----------
Gnus stores all permanent info on groups in a "group info" list.
This list is from three to six elements (or more) long and exhaustively
describes the group.
Here are two example group infos; one is a very simple group while
the second is a more complex one:
("no.group" 5 (1 . 54324))
("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
((tick (15 . 19)) (replied 3 6 (19 . 3)))
(nnml "")
(auto-expire (to-address "ding@ifi.uio.no")))
The first element is the group name as Gnus knows the group; the
second is the group level; the third is the read articles in range
format; the fourth is a list of article marks lists; the fifth is the
select method; and the sixth contains the group parameters.
Here's a BNF definition of the group info format:
info = "(" group space level space read
[ "" / [ space marks-list [ "" / [ space method [ "" /
space parameters ] ] ] ] ] ")"
group = quote <string> quote
level = <integer in the range of 1 to inf>
read = range
marks-lists = nil / "(" *marks ")"
marks = "(" <string> range ")"
method = "(" <string> *elisp-forms ")"
parameters = "(" *elisp-forms ")"
Actually that `marks' rule is a fib. A `marks' is a `<string>'
consed on to a `range', but that's a bitch to say in pseudo-BNF.