Mercurial > emacs
comparison man/gnus.texi @ 38013:fa8e496e2af1
Get rid of Overfull hbox messages from TeX.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sun, 10 Jun 2001 16:26:00 +0000 |
parents | 771a25fb56df |
children | 32f10000ac35 |
comparison
equal
deleted
inserted
replaced
38012:3bf93c45de95 | 38013:fa8e496e2af1 |
---|---|
6552 If you'd like to save articles in a hierarchy that looks something like | 6552 If you'd like to save articles in a hierarchy that looks something like |
6553 a spool, you could | 6553 a spool, you could |
6554 | 6554 |
6555 @lisp | 6555 @lisp |
6556 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy | 6556 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy |
6557 (setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding | 6557 (setq gnus-default-article-saver |
6558 'gnus-summary-save-in-file) ; no encoding | |
6558 @end lisp | 6559 @end lisp |
6559 | 6560 |
6560 Then just save with @kbd{o}. You'd then read this hierarchy with | 6561 Then just save with @kbd{o}. You'd then read this hierarchy with |
6561 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and | 6562 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and |
6562 the top level directory as the argument (@file{~/News/}). Then just walk | 6563 the top level directory as the argument (@file{~/News/}). Then just walk |
7716 @findex gnus-stop-date-timer | 7717 @findex gnus-stop-date-timer |
7717 Say how much time has elapsed between the article was posted and now | 7718 Say how much time has elapsed between the article was posted and now |
7718 (@code{gnus-article-date-lapsed}). It looks something like: | 7719 (@code{gnus-article-date-lapsed}). It looks something like: |
7719 | 7720 |
7720 @example | 7721 @example |
7721 X-Sent: 9 years, 6 weeks, 4 days, 9 hours, 3 minutes, 28 seconds ago | 7722 X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago |
7722 @end example | 7723 @end example |
7723 | 7724 |
7724 The value of @code{gnus-article-date-lapsed-new-header} determines | 7725 The value of @code{gnus-article-date-lapsed-new-header} determines |
7725 whether this header will just be added below the old Date one, or will | 7726 whether this header will just be added below the old Date one, or will |
7726 replace it. | 7727 replace it. |
10570 | 10571 |
10571 The default value is | 10572 The default value is |
10572 | 10573 |
10573 @lisp | 10574 @lisp |
10574 '(("nntpd 1\\.5\\.11t" | 10575 '(("nntpd 1\\.5\\.11t" |
10575 (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader))) | 10576 (remove-hook 'nntp-server-opened-hook |
10577 'nntp-send-mode-reader))) | |
10576 @end lisp | 10578 @end lisp |
10577 | 10579 |
10578 This ensures that Gnus doesn't send the @code{MODE READER} command to | 10580 This ensures that Gnus doesn't send the @code{MODE READER} command to |
10579 nntpd 1.5.11t, since that command chokes that server, I've been told. | 10581 nntpd 1.5.11t, since that command chokes that server, I've been told. |
10580 | 10582 |
10710 define a server as follows: | 10712 define a server as follows: |
10711 | 10713 |
10712 @lisp | 10714 @lisp |
10713 ;; Type `C-c C-c' after you've finished editing. | 10715 ;; Type `C-c C-c' after you've finished editing. |
10714 ;; | 10716 ;; |
10715 ;; "snews" is port 563 and is predefined in our /etc/services | 10717 ;; "snews" is port 563 and is predefined |
10718 ;; in our /etc/services | |
10716 ;; | 10719 ;; |
10717 (nntp "snews.bar.com" | 10720 (nntp "snews.bar.com" |
10718 (nntp-open-connection-function nntp-open-ssl-stream) | 10721 (nntp-open-connection-function |
10722 nntp-open-ssl-stream) | |
10719 (nntp-port-number "snews") | 10723 (nntp-port-number "snews") |
10720 (nntp-address "snews.bar.com")) | 10724 (nntp-address "snews.bar.com")) |
10721 @end lisp | 10725 @end lisp |
10722 | 10726 |
10723 @end table | 10727 @end table |
11331 @end table | 11335 @end table |
11332 | 11336 |
11333 Two example maildir mail sources: | 11337 Two example maildir mail sources: |
11334 | 11338 |
11335 @lisp | 11339 @lisp |
11336 (maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new")) | 11340 (maildir :path "/home/user-name/Maildir/" |
11337 @end lisp | 11341 :subdirs ("cur" "new")) |
11338 | 11342 @end lisp |
11339 @lisp | 11343 |
11340 (maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new")) | 11344 @lisp |
11345 (maildir :path "/user@@remotehost.org:~/Maildir/" | |
11346 :subdirs ("new")) | |
11341 @end lisp | 11347 @end lisp |
11342 | 11348 |
11343 @item imap | 11349 @item imap |
11344 Get mail from a @sc{imap} server. If you don't want to use @sc{imap} | 11350 Get mail from a @sc{imap} server. If you don't want to use @sc{imap} |
11345 as intended, as a network mail reading protocol (ie with nnimap), for | 11351 as intended, as a network mail reading protocol (ie with nnimap), for |
11427 @end table | 11433 @end table |
11428 | 11434 |
11429 An example @sc{imap} mail source: | 11435 An example @sc{imap} mail source: |
11430 | 11436 |
11431 @lisp | 11437 @lisp |
11432 (imap :server "mail.mycorp.com" :stream kerberos4 :fetchflag "\\Seen") | 11438 (imap :server "mail.mycorp.com" |
11439 :stream kerberos4 | |
11440 :fetchflag "\\Seen") | |
11433 @end lisp | 11441 @end lisp |
11434 | 11442 |
11435 @item webmail | 11443 @item webmail |
11436 Get mail from a webmail server, such as www.hotmail.com, | 11444 Get mail from a webmail server, such as www.hotmail.com, |
11437 webmail.netscape.com, www.netaddress.com, www.my-deja.com. | 11445 webmail.netscape.com, www.netaddress.com, www.my-deja.com. |
11466 @end table | 11474 @end table |
11467 | 11475 |
11468 An example webmail source: | 11476 An example webmail source: |
11469 | 11477 |
11470 @lisp | 11478 @lisp |
11471 (webmail :subtype 'hotmail :user "user-name" :password "secret") | 11479 (webmail :subtype 'hotmail |
11480 :user "user-name" | |
11481 :password "secret") | |
11472 @end lisp | 11482 @end lisp |
11473 @end table | 11483 @end table |
11474 | 11484 |
11475 @table @dfn | 11485 @table @dfn |
11476 @item Common Keywords | 11486 @item Common Keywords |
12914 @vindex nnslashdot-password | 12924 @vindex nnslashdot-password |
12915 The password to use when posting. | 12925 The password to use when posting. |
12916 | 12926 |
12917 @item nnslashdot-directory | 12927 @item nnslashdot-directory |
12918 @vindex nnslashdot-directory | 12928 @vindex nnslashdot-directory |
12919 Where @code{nnslashdot} will store its files. The default value is | 12929 Where @code{nnslashdot} will store its files. The default is |
12920 @samp{~/News/slashdot/}. | 12930 @samp{~/News/slashdot/}. |
12921 | 12931 |
12922 @item nnslashdot-active-url | 12932 @item nnslashdot-active-url |
12923 @vindex nnslashdot-active-url | 12933 @vindex nnslashdot-active-url |
12924 The @sc{url} format string that will be used to fetch the information on | 12934 The @sc{url} format string that will be used to fetch the information on |
12925 news articles and comments. The default is | 12935 news articles and comments. Default: |
12926 @samp{http://slashdot.org/search.pl?section=&min=%d}. | 12936 @samp{http://slashdot.org/search.pl?section=&min=%d}. |
12927 | 12937 |
12928 @item nnslashdot-comments-url | 12938 @item nnslashdot-comments-url |
12929 @vindex nnslashdot-comments-url | 12939 @vindex nnslashdot-comments-url |
12930 The @sc{url} format string that will be used to fetch comments. The | 12940 The @sc{url} format string that will be used to fetch comments. The |
13710 | 13720 |
13711 Here's an example: | 13721 Here's an example: |
13712 | 13722 |
13713 @lisp | 13723 @lisp |
13714 (setq gnus-post-method | 13724 (setq gnus-post-method |
13715 '(nngateway "mail2news@@replay.com" | 13725 '(nngateway |
13716 (nngateway-header-transformation | 13726 "mail2news@@replay.com" |
13717 nngateway-mail2news-header-transformation))) | 13727 (nngateway-header-transformation |
13728 nngateway-mail2news-header-transformation))) | |
13718 @end lisp | 13729 @end lisp |
13719 | 13730 |
13720 @end table | 13731 @end table |
13721 | 13732 |
13722 | 13733 |
14028 matching the regexp in the second element in the sublist. Got that? | 14039 matching the regexp in the second element in the sublist. Got that? |
14029 Neither did I, we need examples. | 14040 Neither did I, we need examples. |
14030 | 14041 |
14031 @lisp | 14042 @lisp |
14032 (setq nnimap-split-rule | 14043 (setq nnimap-split-rule |
14033 '(("INBOX.nnimap" "^Sender: owner-nnimap@@vic20.globalcom.se") | 14044 '(("INBOX.nnimap" |
14045 "^Sender: owner-nnimap@@vic20.globalcom.se") | |
14034 ("INBOX.junk" "^Subject:.*MAKE MONEY") | 14046 ("INBOX.junk" "^Subject:.*MAKE MONEY") |
14035 ("INBOX.private" ""))) | 14047 ("INBOX.private" ""))) |
14036 @end lisp | 14048 @end lisp |
14037 | 14049 |
14038 This will put all articles from the nnimap mailing list into mailbox | 14050 This will put all articles from the nnimap mailing list into mailbox |
15604 returned is the local score file. Phu. | 15616 returned is the local score file. Phu. |
15605 | 15617 |
15606 For example, to do hierarchical scoring but use a non-server-specific | 15618 For example, to do hierarchical scoring but use a non-server-specific |
15607 overall score file, you could use the value | 15619 overall score file, you could use the value |
15608 @example | 15620 @example |
15609 (list (lambda (group) ("all.SCORE")) 'gnus-score-find-hierarchical) | 15621 (list (lambda (group) ("all.SCORE")) |
15622 'gnus-score-find-hierarchical) | |
15610 @end example | 15623 @end example |
15611 | 15624 |
15612 @item gnus-score-expiry-days | 15625 @item gnus-score-expiry-days |
15613 @vindex gnus-score-expiry-days | 15626 @vindex gnus-score-expiry-days |
15614 This variable says how many days should pass before an unused score file | 15627 This variable says how many days should pass before an unused score file |
16282 | 16295 |
16283 @item Multiple crossposts | 16296 @item Multiple crossposts |
16284 If you want to lower the score of articles that have been crossposted to | 16297 If you want to lower the score of articles that have been crossposted to |
16285 more than, say, 3 groups: | 16298 more than, say, 3 groups: |
16286 @lisp | 16299 @lisp |
16287 ("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r)) | 16300 ("xref" |
16301 ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" | |
16302 -1000 nil r)) | |
16288 @end lisp | 16303 @end lisp |
16289 | 16304 |
16290 @item Matching on the body | 16305 @item Matching on the body |
16291 This is generally not a very good idea---it takes a very long time. | 16306 This is generally not a very good idea---it takes a very long time. |
16292 Gnus actually has to fetch each individual article from the server. But | 16307 Gnus actually has to fetch each individual article from the server. But |
16348 All you have to do to use other people's score files is to set the | 16363 All you have to do to use other people's score files is to set the |
16349 @code{gnus-global-score-files} variable. One entry for each score file, | 16364 @code{gnus-global-score-files} variable. One entry for each score file, |
16350 or each score file directory. Gnus will decide by itself what score | 16365 or each score file directory. Gnus will decide by itself what score |
16351 files are applicable to which group. | 16366 files are applicable to which group. |
16352 | 16367 |
16353 Say you want to use the score file | 16368 To use the score file |
16354 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and | 16369 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and |
16355 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory: | 16370 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory, |
16371 say this: | |
16356 | 16372 |
16357 @lisp | 16373 @lisp |
16358 (setq gnus-global-score-files | 16374 (setq gnus-global-score-files |
16359 '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE" | 16375 '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE" |
16360 "/ftp@@ftp.some-where:/pub/score/")) | 16376 "/ftp@@ftp.some-where:/pub/score/")) |
16361 @end lisp | 16377 @end lisp |
16362 | 16378 |
16363 @findex gnus-score-search-global-directories | 16379 @findex gnus-score-search-global-directories |
16380 @noindent | |
16364 Simple, eh? Directory names must end with a @samp{/}. These | 16381 Simple, eh? Directory names must end with a @samp{/}. These |
16365 directories are typically scanned only once during each Gnus session. | 16382 directories are typically scanned only once during each Gnus session. |
16366 If you feel the need to manually re-scan the remote directories, you can | 16383 If you feel the need to manually re-scan the remote directories, you can |
16367 use the @code{gnus-score-search-global-directories} command. | 16384 use the @code{gnus-score-search-global-directories} command. |
16368 | 16385 |
17412 | 17429 |
17413 To be slightly more formal, here's a definition of what a valid split | 17430 To be slightly more formal, here's a definition of what a valid split |
17414 may look like: | 17431 may look like: |
17415 | 17432 |
17416 @example | 17433 @example |
17417 split = frame | horizontal | vertical | buffer | form | 17434 split = frame | horizontal | vertical | buffer | form |
17418 frame = "(frame " size *split ")" | 17435 frame = "(frame " size *split ")" |
17419 horizontal = "(horizontal " size *split ")" | 17436 horizontal = "(horizontal " size *split ")" |
17420 vertical = "(vertical " size *split ")" | 17437 vertical = "(vertical " size *split ")" |
17421 buffer = "(" buffer-name " " size *[ "point" ] *[ "frame-focus"] ")" | 17438 buffer = "(" buf-name " " size *[ "point" ] *[ "frame-focus"] ")" |
17422 size = number | frame-params | 17439 size = number | frame-params |
17423 buffer-name = group | article | summary ... | 17440 buf-name = group | article | summary ... |
17424 @end example | 17441 @end example |
17425 | 17442 |
17426 The limitations are that the @code{frame} split can only appear as the | 17443 The limitations are that the @code{frame} split can only appear as the |
17427 top-level split. @var{form} should be an Emacs Lisp form that should | 17444 top-level split. @var{form} should be an Emacs Lisp form that should |
17428 return a valid split. We see that each split is fully recursive, and | 17445 return a valid split. We see that each split is fully recursive, and |
17514 One common desire for a multiple frame split is to have a separate frame | 17531 One common desire for a multiple frame split is to have a separate frame |
17515 for composing mail and news while leaving the original frame intact. To | 17532 for composing mail and news while leaving the original frame intact. To |
17516 accomplish that, something like the following can be done: | 17533 accomplish that, something like the following can be done: |
17517 | 17534 |
17518 @lisp | 17535 @lisp |
17519 (message (frame 1.0 | 17536 (message |
17520 (if (not (buffer-live-p gnus-summary-buffer)) | 17537 (frame 1.0 |
17521 (car (cdr (assoc 'group gnus-buffer-configuration))) | 17538 (if (not (buffer-live-p gnus-summary-buffer)) |
17522 (car (cdr (assoc 'summary gnus-buffer-configuration)))) | 17539 (car (cdr (assoc 'group gnus-buffer-configuration))) |
17523 (vertical ((user-position . t) (top . 1) (left . 1) | 17540 (car (cdr (assoc 'summary gnus-buffer-configuration)))) |
17524 (name . "Message")) | 17541 (vertical ((user-position . t) (top . 1) (left . 1) |
17525 (message 1.0 point)))) | 17542 (name . "Message")) |
17543 (message 1.0 point)))) | |
17526 @end lisp | 17544 @end lisp |
17527 | 17545 |
17528 @findex gnus-add-configuration | 17546 @findex gnus-add-configuration |
17529 Since the @code{gnus-buffer-configuration} variable is so long and | 17547 Since the @code{gnus-buffer-configuration} variable is so long and |
17530 complicated, there's a function you can use to ease changing the config | 17548 complicated, there's a function you can use to ease changing the config |
21468 | 21486 |
21469 (defvoo nndir-nov-is-evil nil | 21487 (defvoo nndir-nov-is-evil nil |
21470 "*Non-nil means that nndir will never retrieve NOV headers." | 21488 "*Non-nil means that nndir will never retrieve NOV headers." |
21471 nnml-nov-is-evil) | 21489 nnml-nov-is-evil) |
21472 | 21490 |
21473 (defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group) | 21491 (defvoo nndir-current-group "" |
21492 nil | |
21493 nnml-current-group nnmh-current-group) | |
21474 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) | 21494 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) |
21475 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) | 21495 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) |
21476 | 21496 |
21477 (defvoo nndir-status-string "" nil nnmh-status-string) | 21497 (defvoo nndir-status-string "" nil nnmh-status-string) |
21478 (defconst nndir-version "nndir 1.0") | 21498 (defconst nndir-version "nndir 1.0") |
21486 (or (cadr (assq 'nndir-directory defs)) | 21506 (or (cadr (assq 'nndir-directory defs)) |
21487 server)) | 21507 server)) |
21488 (unless (assq 'nndir-directory defs) | 21508 (unless (assq 'nndir-directory defs) |
21489 (push `(nndir-directory ,server) defs)) | 21509 (push `(nndir-directory ,server) defs)) |
21490 (push `(nndir-current-group | 21510 (push `(nndir-current-group |
21491 ,(file-name-nondirectory (directory-file-name nndir-directory))) | 21511 ,(file-name-nondirectory |
21512 (directory-file-name nndir-directory))) | |
21492 defs) | 21513 defs) |
21493 (push `(nndir-top-directory | 21514 (push `(nndir-top-directory |
21494 ,(file-name-directory (directory-file-name nndir-directory))) | 21515 ,(file-name-directory (directory-file-name nndir-directory))) |
21495 defs) | 21516 defs) |
21496 (nnoo-change-server 'nndir server defs)) | 21517 (nnoo-change-server 'nndir server defs)) |
21625 @end lisp | 21646 @end lisp |
21626 | 21647 |
21627 BNF definition of a score file: | 21648 BNF definition of a score file: |
21628 | 21649 |
21629 @example | 21650 @example |
21630 score-file = "" / "(" *element ")" | 21651 score-file = "" / "(" *element ")" |
21631 element = rule / atom | 21652 element = rule / atom |
21632 rule = string-rule / number-rule / date-rule | 21653 rule = string-rule / number-rule / date-rule |
21633 string-rule = "(" quote string-header quote space *string-match ")" | 21654 string-rule = "(" quote string-header quote space *string-match ")" |
21634 number-rule = "(" quote number-header quote space *number-match ")" | 21655 number-rule = "(" quote number-header quote space *number-match ")" |
21635 date-rule = "(" quote date-header quote space *date-match ")" | 21656 date-rule = "(" quote date-header quote space *date-match ")" |
21636 quote = <ascii 34> | 21657 quote = <ascii 34> |
21637 string-header = "subject" / "from" / "references" / "message-id" / | 21658 string-header = "subject" / "from" / "references" / "message-id" / |
21638 "xref" / "body" / "head" / "all" / "followup" | 21659 "xref" / "body" / "head" / "all" / "followup" |
21639 number-header = "lines" / "chars" | 21660 number-header = "lines" / "chars" |
21640 date-header = "date" | 21661 date-header = "date" |
21641 string-match = "(" quote <string> quote [ "" / [ space score [ "" / | 21662 string-match = "(" quote <string> quote [ "" / [ space score [ "" / |
21642 space date [ "" / [ space string-match-t ] ] ] ] ] ")" | 21663 space date [ "" / [ space string-match-t ] ] ] ] ] ")" |
21643 score = "nil" / <integer> | 21664 score = "nil" / <integer> |
21644 date = "nil" / <natural number> | 21665 date = "nil" / <natural number> |
21645 string-match-t = "nil" / "s" / "substring" / "S" / "Substring" / | 21666 string-match-t = "nil" / "s" / "substring" / "S" / "Substring" / |
21646 "r" / "regex" / "R" / "Regex" / | 21667 "r" / "regex" / "R" / "Regex" / |
21647 "e" / "exact" / "E" / "Exact" / | 21668 "e" / "exact" / "E" / "Exact" / |
21648 "f" / "fuzzy" / "F" / "Fuzzy" | 21669 "f" / "fuzzy" / "F" / "Fuzzy" |
21649 number-match = "(" <integer> [ "" / [ space score [ "" / | 21670 number-match = "(" <integer> [ "" / [ space score [ "" / |
21650 space date [ "" / [ space number-match-t ] ] ] ] ] ")" | 21671 space date [ "" / [ space number-match-t ] ] ] ] ] ")" |
21651 number-match-t = "nil" / "=" / "<" / ">" / ">=" / "<=" | 21672 number-match-t = "nil" / "=" / "<" / ">" / ">=" / "<=" |
21652 date-match = "(" quote <string> quote [ "" / [ space score [ "" / | 21673 date-match = "(" quote <string> quote [ "" / [ space score [ "" / |
21653 space date [ "" / [ space date-match-t ] ] ] ] ")" | 21674 space date [ "" / [ space date-match-t ] ] ] ] ")" |
21654 date-match-t = "nil" / "at" / "before" / "after" | 21675 date-match-t = "nil" / "at" / "before" / "after" |
21655 atom = "(" [ required-atom / optional-atom ] ")" | 21676 atom = "(" [ required-atom / optional-atom ] ")" |
21656 required-atom = mark / expunge / mark-and-expunge / files / | 21677 required-atom = mark / expunge / mark-and-expunge / files / |
21657 exclude-files / read-only / touched | 21678 exclude-files / read-only / touched |
21658 optional-atom = adapt / local / eval | 21679 optional-atom = adapt / local / eval |
21659 mark = "mark" space nil-or-number | 21680 mark = "mark" space nil-or-number |
21660 nil-or-number = "nil" / <integer> | 21681 nil-or-number = "nil" / <integer> |
21661 expunge = "expunge" space nil-or-number | 21682 expunge = "expunge" space nil-or-number |
21662 mark-and-expunge = "mark-and-expunge" space nil-or-number | 21683 mark-and-expunge = "mark-and-expunge" space nil-or-number |
21663 files = "files" *[ space <string> ] | 21684 files = "files" *[ space <string> ] |
21664 exclude-files = "exclude-files" *[ space <string> ] | 21685 exclude-files = "exclude-files" *[ space <string> ] |
21665 read-only = "read-only" [ space "nil" / space "t" ] | 21686 read-only = "read-only" [ space "nil" / space "t" ] |
21666 adapt = "adapt" [ space "ignore" / space "t" / space adapt-rule ] | 21687 adapt = "adapt" [ space "ignore" / space "t" / space adapt-rule ] |
21667 adapt-rule = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")" | 21688 adapt-rule = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")" |
21668 local = "local" *[ space "(" <string> space <form> ")" ] | 21689 local = "local" *[ space "(" <string> space <form> ")" ] |
21669 eval = "eval" space <form> | 21690 eval = "eval" space <form> |
21670 space = *[ " " / <TAB> / <NEWLINE> ] | 21691 space = *[ " " / <TAB> / <NEWLINE> ] |
21671 @end example | 21692 @end example |
21672 | 21693 |
21673 Any unrecognized elements in a score file should be ignored, but not | 21694 Any unrecognized elements in a score file should be ignored, but not |
21674 discarded. | 21695 discarded. |
21675 | 21696 |
22032 | 22053 |
22033 Here's a pseudo-BNF definition of this file: | 22054 Here's a pseudo-BNF definition of this file: |
22034 | 22055 |
22035 @example | 22056 @example |
22036 active = *group-line | 22057 active = *group-line |
22037 group-line = group space high-number space low-number space flag <NEWLINE> | 22058 group-line = group spc high-number spc low-number spc flag <NEWLINE> |
22038 group = <non-white-space string> | 22059 group = <non-white-space string> |
22039 space = " " | 22060 spc = " " |
22040 high-number = <non-negative integer> | 22061 high-number = <non-negative integer> |
22041 low-number = <positive integer> | 22062 low-number = <positive integer> |
22042 flag = "y" / "n" / "m" / "j" / "x" / "=" group | 22063 flag = "y" / "n" / "m" / "j" / "x" / "=" group |
22043 @end example | 22064 @end example |
22044 | 22065 |