Difference between revisions of "SwNodesBNF"

From Apache OpenOffice Wiki
Jump to: navigation, search
m
Line 1: Line 1:
 +
{{Writer Project}}
 
Let us describe a "well-formed" SwNodes array of a Writer document in Backus-Naur form.
 
Let us describe a "well-formed" SwNodes array of a Writer document in Backus-Naur form.
  

Revision as of 11:02, 25 March 2010

Writer Icon.png

Writer Project

Please view the guidelines
before contributing.

Popular Subcategories: <DPL> category=+**Writer namespace=Category ordermethod=counter order=descending count=5 </DPL>

Internal Documentation: <DPL> category=+Writer/CoreDoc ordermethod=counter order=descending count=5 namespace= </DPL>

API Documentation:

Ongoing Efforts: <DPL> category=+Writer/Effort ordermethod=counter order=descending count=5 namespace= </DPL>

Sw.OpenOffice.org

Let us describe a "well-formed" SwNodes array of a Writer document in Backus-Naur form.

There are the following node types used as "terminal" symbols:

StartNd = SwNormalStartNode
EndNd = SwEndNode
TextNd = SwTxtNode
GraphicNd = SwGrfNode
OLENd = SwOLENode
TableNd = SwTableNode
SectionNd = SwSectionNode
CellNd = SwTableBoxStartNode
FlyNd = SwFlyStartNode
FootnoteNd = SwFootnoteStartNode
HeaderNd = SwHeaderStartNode
FooterNd = SwFooterStartNode

And now we get:

<Document> ::= <Empty> <Footnote content> <Special content> <Change tracking> <Body content>
<Empty> ::= StartNd EndNd
<Body content> ::= StartNd <Content> EndNd
<Content> ::= TextNd | <'Table> | <Section> | <Content> <Content>
<'Table> ::= TableNd <Cells> EndNd
<Cells> ::= <Cell> | <Cell> <Cells>
<Cell> ::= CellNd <Content> EndNd
<Section> ::= SectionNd <Content> EndNd
<Special content> ::= <Empty> | StartNd <Special> EndNd
<Special> ::= <Special> <Special> | HeaderNd <Content> EndNd | FooterNd <Content> EndNd | FlyNd <Fly content> EndNd
<Fly content> ::= OLENd | GraphicNd | <Content>
<Footnote content> ::= <Empty> | StartNd <Footnotes> EndNd
<Footnotes> ::= <Footnote> | >Footnote> <Footnotes>
<Footnote> ::= FootnoteNd <Content> EndNd
<Change tracking> ::= <Empty> | StartNd <Changes> EndNd
<Changes> ::= <Body content> | <Changes> <Changes>
Personal tools