FSinfo grammar
==============
FSinfo has a relatively simple grammar. Distinct syntactic
constructs exist for each of the different types of data, though they
share a common flavor. Several conventions are used in the grammar
fragments below.
The notation, list(xxx), indicates a list of zero or more xxx's.
The notation, opt(xxx), indicates zero or one xxx. Items in double
quotes, eg "host", represent input tokens. Items in angle brackets, eg
<HOSTNAME>, represent strings in the input. Strings need not be in
double quotes, except to differentiate them from reserved words.
Quoted strings may include the usual set of C "\" escape sequences with
one exception: a backslash-newline-whitespace sequence is squashed into
a single space character. To defeat this feature, put a further
backslash at the start of the second line.
At the outermost level of the grammar, the input consists of a
sequence of host and automount declarations. These declarations are
all parsed before they are analyzed. This means they can appear in any
order and cyclic host references are possible.
fsinfo : list(fsinfo_attr) ;
fsinfo_attr : host | automount ;