</item></list>
</topitem>
+ <subsection name="osn"><osn-icon/>Open Symbolic Notation</subsection>
+ <body>
+ Open Symbolic Notation (OSN) is an easy data-interchange textual format
+ based on <link to="https://en.wikipedia.org/wiki/S-expression">symbolic expressions</link>.
+ OSN is completely language independent but uses widely accepted conventions.
+ These features make OSN ideal for storing and exchanging tree-like data structures
+ in a lightweight manner.
+ </body>
+ <body>
+ An OSN text uses the <link to="http://www.utf-8.com/">UTF-8</link> character set
+ and contains the next tokens:
+ </body>
+ <list><item>
+ <ebnf>
+ <prod of="symbol"/> <def/>
+ <prod of="symbol_char"/> <prod of="symbol_char"/> <star/>
+ <stop/> <newline/>
+ <prod of="symbol_char"/> <def/>
+ <chr of="+"/> <or/> <chr of="-"/> <or/> <chr of="."/> <or/>
+ <chr of="0"/> <or/> <etc/> <or/> <chr of="9"/> <or/>
+ <chr of="A"/> <or/> <etc/> <or/> <chr of="Z"/> <or/>
+ <chr of="_"/> <or/> <chr of="a"/> <or/> <etc/> <or/> <chr of="z"/>
+ <stop/>
+ </ebnf> <newline/>
+ this token can represent the identifiers and the numerical constants of most programming languages;
+ </item><item>
+ <ebnf>
+ <prod of="string"/> <def/>
+ <chr of="""/> <open/>
+ <prod of="string_char"/> <or/>
+ <chr of="\"/> <prod of="escape"/>
+ <close/> <star/> <chr of="""/>
+ <stop/>
+ </ebnf> <newline/>
+ every valid UTF-8 character whose code point is greater than U+001F is accepted eccept " \ <newline/>
+ the next commonly accepted escape sequences are recognized: \0 \a \b \t \n \v \f \r \e \" \\ <newline/>
+ morover, the escape sequences \x <two hexadecimal digits> and \u <four hexadecimal digits>
+ allow to specify a character by its code point <newline/>
+ finally the escape sequences \( for U+0002 and \) for U+0003 are available
+ </item><item>
+ <ebnf>
+ <prod of="qualifier"/> <def/> <chr of=":"/> <stop/>
+ </ebnf>
+ </item><item>
+ <ebnf>
+ <prod of="left"/> <def/>
+ <chr of="("/> <or/> <chr of="<"/> <or/> <chr of="["/> <or/> <chr of="{"/>
+ <stop/>
+ </ebnf> <newline/>
+ this token starts a compound symbolic expression;
+ </item><item>
+ <ebnf>
+ <prod of="right"/> <def/>
+ <chr of=")"/> <or/> <chr of=">"/> <or/> <chr of="]"/> <or/> <chr of="}"/>
+ <stop/>
+ </ebnf> <newline/>
+ this token ends a compound symbolic expression;
+ </item><item>
+ <ignored> each of the characters U+0009..U+000D U+0020 , ; = <newline/>
+ these characters are ignored and separate the other tokens
+ </item><item>
+ <reserved> any character not starting any other token <newline/>
+ these characters are not allowed,
+ and those in the range U+0021..U+007E are
+ ! # $ % & ' * / ? @ \ ^ ` | ~
+ </item></list>
+
<footer/>
</page>