▼ |  | Scribble: PLT Documentation Tool

1 | How to Scribble Documentation
2 | Scribble Layers
3 | @-Reader
4 | Structures And Processing
5 | Renderer
6 | Decoding Text
7 | Document Language
8 | Document Reader
9 | Basic Document Forms
10 | Scheme
11 | Manual Forms
12 | Evaluation and Examples
13 | BNF Grammars
14 | Cross-Reference Utilities
15 | Text Preprocessor
| Index

On this page:

BNF
nonterm
BNF-seq
BNF-group
optional
kleenestar
kleeneplus
kleenerange
BNF-alt
BNF-etc

Version: 4.1.4
top← prev up next →

### 13`` BNF Grammars

(require scribble/bnf)

The scribble/bnf library provides utilities for typesetting grammars.

See also schemegrammar.

(BNF prod ...) → table?
prod : (cons element? (listof element?))

Typesets a grammar table. Each production starts with an element (typically constructed with nonterm) for the non-terminal being defined, and then a list of possibilities (typically constructed with BNF-seq, etc.) to show on separate lines.

(nonterm pre-content ...) → element?
pre-content : any/c

Typesets a non-terminal: italic in angle brackets.

(BNF-seq elem ...) → element?
elem : element?

Typesets a sequence.

(BNF-group pre-content ...) → element?
pre-content : any/c

Typesets a group surrounded by curly braces (so the entire group can be repeated, for example).

(optional pre-content ...) → element?
pre-content : any/c

Typesets an optional element: in square brackets.

(kleenestar pre-content ...) → element?
pre-content : any/c

Typesets a 0-or-more repetition.

(kleeneplus pre-content ...) → element?
pre-content : any/c

Typesets a 1-or-more repetition.

(kleenerange n m pre-content ...) → element?
n : any/c
m : any/c
pre-content : any/c

Typesets a n-to-m repetition. The n and m arguments are converted to a string using (format "~a" n) and (format "~a" m).

(BNF-alt elem ...) → element?
elem : element?

Typesets alternatives for a production’s right-hand side to appear on a single line. The result is normally used as a single possibility in a production list for BNF.

BNF-etc : string?

A string to use for omitted productions or content.

top← prev up next →