]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/www/lambdadelta/web/home/implementation.ldw.xml
- initial description of OSN
[helm.git] / helm / www / lambdadelta / web / home / implementation.ldw.xml
index bd3f4e23bddfed69aca5d4499473a22f4057e8cb..6d0237d98ee59cb6b686a070d0aa5248b3895572 100644 (file)
       </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>
+      &lt;symbol&gt; a non-empty sequence of the 66 characters + - . 0..9 A..Z _ a..z <newline/>
+      this sequence can represents the identifiers and the numerical constants of most programming languages 
+   </item><item>
+      &lt;string&gt; a sequence of characters wrapped with the delimiter " <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 &lt;two hexadecimal digits&gt; and \u &lt;four hexadecimal digits&gt;
+      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>
+      &lt;qualifier&gt; the character :
+   </item><item>
+      &lt;left&gt; each of the characters ( &lt; [ { <newline/>
+      this token starts a compound symbolic expression
+   </item><item>
+      &lt;right&gt; each of the characters ) &gt; ] } <newline/>
+      this token ends a compound symbolic expression
+   </item><item>
+      &lt;ignored&gt; each of the characters U+0009..U+000D U+0020 , ; = <newline/>
+      these characters are ignored and separate the other tokens
+   </item><item>
+      &lt;reserved&gt; any character not starting any other token <newline/>
+      these characters are not allowed,
+      and those in the range U+0021..U+007E are
+      ! # $ % &amp; ' * / ? @ \ ^ ` | ~
+   </item></list>
+
    <footer/>
 </page>