README: Add progress

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2023-01-12 21:45:48 +01:00
parent 6bdc20bc53
commit ab24ddf14c

View file

@ -7,3 +7,39 @@ Parser for the [Scansion project][Scansion] DSL.
# License # License
SPDX: MPL-2.0. See LICENSE file. 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.