Browsable LDF Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: doc/ldf/v23.0-xsd/extracted
Source used for this grammar: Vadim Zaytsev, Software Language Processing Suite, LDF, shared/xsd/ldf.xsd, 2008–2011, Version 43 [Explore]

Summary

Syntax

document ::=
	[metadata]::([body]::([ansi]::ε | [ecma]::ε | [ieee]::ε | [iso]::ε | [iso/iet]::ε | [itu]::ε | [iec]::ε | [ietf]::ε | [oasis]::ε | [omg]::ε | [wsa]::ε | [w3c]::ε)? [number]::string? [author]::person* [topic]::string [status]::([unknown]::ε | [draft]::ε | [candidate]::ε | [proposed]::ε | [approved]::ε | [revised]::ε | [obsolete]::ε | [withdrawn]::ε | [collection]::ε | [trial]::ε | [errata]::ε | [report]::ε) ([version]::string | [edition]::string) [previous]::named-link* [date]::string) [part]::part-type+
named-link ::=
	[title]::string ([version]::string | [edition]::string)? [uri]::string?
part-type ::=
	[metadata]::([id]::string? [role]::([front-matter]::ε | [core-part]::ε | [back-matter]::ε | [annex]::ε) [title]::string? [author]::person*) [section]::section-type+
metainfo ::=
	[id]::string? [title]::string? [author]::string*
person ::=
	[name]::string [affiliation]::string? [email]::string?
section-type ::=
	[metadata]::([id]::string? [role]::([abstract]::ε | [conformance]::ε | [compatibility]::ε | [design-goals]::ε | [document-structure]::ε | [foreword]::ε | [references]::ε | [notation]::ε | [scope]::ε | [what-is-new]::ε | [index]::ε | [full-grammar]::ε | [list-of-tables]::ε | [list-of-authors]::ε | [list-of-contents]::ε | [list-of-references]::ε | [top-section]::ε | [lexical-section]::ε) [type]::([normative]::ε | [informative]::ε)? [title]::string? [author]::person*) ([content]::content-content+ | [placeholder]::α | [subsection]::subsection-type+)
subsection-type ::=
	[metadata]::([id]::string? [role]::([synopsis]::ε | [description]::ε | [syntax]::ε | [constraints]::ε | [relationship]::ε | [semantics]::ε | [default]::ε | [rationale]::ε | [example]::ε | [update]::ε | [subtopic]::ε | [section]::ε) [type]::([normative]::ε | [informative]::ε)? [title]::string? [author]::person*) ([content]::content-content+ | [placeholder]::α | [subsection]::subsection-type+)
content-content ::=
	[para]::mixed-type
	[list]::list-type
	production
any-section ::=
	placeholder
	simple-section
	lexical-section
	structured-section
	composite-section
	list-section
composite-section ::=
	any-section+
placeholder ::=
	[index]::ε
	[full-grammar]::ε
	[list-of-tables]::ε
	[list-of-authors]::ε
	[list-of-contents]::ε
	[list-of-references]::ε
simple-section ::=
	metainfo [content]::textual-content
lexical-section ::=
	[role]::lexical-section-role metainfo [content]::textual-content
lexical-section-role ::=
	[lexical-issue]::ε
	[line-continuations]::ε
	[literals]::ε
	[preprocessor]::ε
	[tokens]::ε
	[whitespace]::ε
list-section ::=
	[role]::list-section-role metainfo [content]::term+
list-section-role ::=
	[abbreviations]::ε
	[definitions]::ε
	[language-overview]::ε
	[normative-references]::ε
term ::=
	[name]::string [definition]::textual-content
structured-section ::=
	metainfo [content]::structured-section-element+
structured-section-element ::=
	[subtopic]::structured-section
	[references]::list-type
	placeholder
	[value]::([key]::string [data]::string)
	(normative-role | informative-role)? simple-section
normative-role ::=
	[synopsis]::ε
	[description]::ε
	[syntax]::ε
	[constraints]::ε
	[relationship]::ε
	[semantics]::ε
	[default]::ε
informative-role ::=
	[example]::ε
	[rationale]::ε
	[update]::ε
anchor ::=
	[id]::string
textual-content ::=
	text-element+
text-element ::=
	[empty]::ε
	code
	[text]::mixed-type
	figure
	table
	[list]::list-type
	[formula]::([math]::anyMath | [mfenced]::anyMath | [mtext]::anyMath | [msub]::anyMath | [msup]::anyMath | [mrow]::anyMath | [mi]::anyMath | [mo]::anyMath | [varepsilon]::α)+
	[sample]::((α | string)* [source]::string)
figure ::=
	metainfo [source]::figure-source+
figure-source ::=
	[type]::figure-type ([local-file]::string | [uri]::string)
figure-type ::=
	[PDF]::ε
	[PostScript]::ε
	[SVG]::ε
	[PNG]::ε
	[GIF]::ε
	[JPEG]::ε
table ::=
	[header]::table-row* [row]::table-row+
table-row ::=
	[table-cell]::textual-content+
list-type ::=
	[item]::mixed-type+
mixed-type ::=
	(α | string)*
formula ::=
	α+
keyword ::=
	string
code ::=
	string
link ::=
	[text]::string? ([nonterminal]::string | [reference]::string | [external]::string)
math ::=
	anyMath
mfenced ::=
	anyMath
mtext ::=
	anyMath
msub ::=
	anyMath
msup ::=
	anyMath
mrow ::=
	anyMath
mi ::=
	anyMath
mo ::=
	anyMath
varepsilon ::=
	ε
anyMath ::=
	(α | string)*

GrammarLabMaintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated in September 2015. []