diff --git a/README.md b/README.md index 66f5b3d..073df20 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,39 @@ Parser for the [Scansion project][Scansion] DSL. # License SPDX: MPL-2.0. See LICENSE file. + +# Parsing support + +Language features are more or less defined here: +https://matthewwild.co.uk/projects/scansion/usage/script-basics/ + +This library supports parsing the following: + +- [ ] Metadata +- [x] Client + * [x] Attributes + Following lines beginning with at least a tab (`\t`) character, in the + form `attr: value`, and ending with a newline (`\n`). Any line that + matches this format will be parsed and will be discarded if it doesn't + match an actual client attribute. + - [x] jid: Expects a bare jid or a full jid. Will be converted to + `jid::Jid`. + - [x] password + - [x] custom\_host + - [x] custom\_port: Expect a u16 +- [-] Actions + * [x] 'connects' + * [x] 'disconnects' + * [-] 'sends:' / 'receives:' + - [x] A block of lines each starting with a tab (`\t`) after the + action will be converted to a `minidom::Element`. + - [ ] `nothing` as the absence of stanza. +- [x] Comments + Optional lines starting with a `#` or `//` and ending with a newline + (`\n`). They get discarded in the output + +## minidom::Element + +Minidom `Element`s require every element to be namespaced. This parser adds +`jabber:client` as a default namespace. It also adds a `scansion` namespace +that is used for the `scansion:strict` XML parameter.