vojaq_parser 0.4.0

Parser of the Vojaq file format
Documentation
# Parsing

## Exemple

`Moi | Toi {Nous} 私 | 僕 | あなた \# Commentaire`

* Champ n° 0 :
  * Variante n° 0.0 : `Moi`
  * Variante n° 0.1 : `Toi`
* Champ n° 1 :
  * Variante n° 1.0 : `Nous`
* Champ n° 2 :
  * Variante n° 2.0 : `私`
  * Variante n° 2.1 : `僕`
  * Variante n° 2.2 : `あなた`

## État initial

Au départ :

* Un seul champ : le champ n° 0, contenant la variante n° 0.0, vide.
* La variante actuelle est la n° 0.0.

## Étape récursive

La variante actuelle est la numéro i.j :

* si on rencontre `\\`, `\{`, `\}` ou `\|`, on ajoute `\`, `{`, `}`, ou `|`.
* si on rencontre U+0000, U+FEFF, `\t`, `\n`, `\r` ou `\s` : TODO !
* si on rencontre `|`, on ferme la variante actuelle et on ouvre la variante n° i.(j+1).
* si on rencontre `{` :
  * si i est pair, on ferme le champ actuel et on ouvre la champ n° (i+1).0.
  * si i est impair : ERREUR !
* si on rencontre `}` :
  * si i est pair : ERREUR !
  * si i est impair, on ferme le champ actuel et on ouvre la champ n° (i+1).0.
* si on rencontre `\#` ou EOL :
  * si i est pair : on ferme la ligne et on renvoie le tout.
  * si i est impair : ERREUR !
* si on rencontre tout autre caractère, on ajoute le caractère en question.