# 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.