S01E23 — 20-08-2024.
Le chantier tout entier.
jour 23.
Je dois me bouffer le crâne, ce n’est pas possible autrement là. Je parviens à analyser les tokens avec la nouvelle implémentation mais je bloque sur la localisation des jetons. C’est chiant de ouf. Pas au point de tout casser mais pas si loin quand même. Il y a un truc que je ne pige pas encore. Je vais aller me prendre une bonne douche, ça va me recâbler le veau-cer en deux-deux tu vas voir.
Le plus dingue, c’est d’entrevoir un début de sortie correcte. En testant l’entrée suivante ::= <div></div>. J’obtiens les jetons suivants :
[
Token { kind: Punctuation(ColonColonEqual), span: Span { lo: 4, hi: 4 } },
Token { kind: Tag(Tag { kind: Opening, name: "div", self_closing: false, attrs: [] }), span: Span { lo: 9, hi: 9 } },
Token { kind: Tag(Tag { kind: Closing, name: "div", self_closing: false, attrs: [] }), span: Span { lo: 15, hi: 15 } },
Token { kind: HtmlCharacter('\n'), span: Span { lo: 16, hi: 16 } }
]
Comme tu le vois, c’est un bon début, le Tokenizer reconnait bien le symbole ::= qui lui fait parti des symboles du langage de programmation. Puis le reste est traité comme des symboles du langage de balisage. C’est exactement ce que je souhaite obtenir. Par contre, niveau Span, c’est la ca-ta-strophe. Je ne suis même pas foutu de récupérer l’emplacement d’un jetons dans le code. Serais-je en train de me transformer en développeur JavaScript ?! Naaaaaaaaaaaaaaaaaaaaaaaaaaaaan !
Hors de question que je reste coincé comme ça. Je dois trouver un remède !