lezer

https://lezer.codemirror.net/

Lezer (the Dutch word for reader, pronounced like “laser”) provides a parser generator that outputs JavaScript modules, which can be loaded to parse code into a non-abstract syntax tree. This tree can then be used to do highlighting and basic semantic analysis.

Voir aussi tree-sitter.


Journaux liées à cette note :

Journal du lundi 05 août 2024 à 22:57 #codemirror, #JeMeDemande

« #JeMeDemande si lezer sera un jour remplacé par tree-sitter compilé en WASM 🤔. » -- from

Je viens de lire le thread suivant : [Question: difference between Lezer and tree-sitter](# Question: difference between Lezer and tree-sitter).

This system's approach is heavily influenced by tree-sitter, a similar system written in C and Rust, and several papers by Tim Wagner and Susan Graham on incremental parsing (1, 2). It exists as a different system because it has different priorities than tree-sitter—as part of a JavaScript system, it is written in JavaScript, with relatively small library and parser table size. It also generates more compact in-memory trees, to avoid putting too much pressure on the user's machine. -- from

Journal du lundi 05 août 2024 à 15:20 #JeMeDemande

Je regarde le site web de lezer https://lezer.codemirror.net/ et je constate qu'il a le même look que CodeMirror.
J'en déduis qu'il est sans doute développé par les mêmes développeur que CodeMirror.

#JeMeDemande si lezer sera un jour remplacé par tree-sitter compilé en WASM 🤔.

Journal du lundi 05 août 2024 à 14:52 #JeMeDemande

Dans le cadre du Projet 8 - "CodeMirror, conceal, Svelte", j'essaie de m'inspirer du code source de SilverBullet.mb.

#JeMeDemande si l'implémentation de la fonctionnalité conceal sur les wikilink se trouve ici 🤔.

Je constate ici que l'implémentation ne prend pas en charge directement la recherche des de la syntax [[wikilink]] via, par exemple, une regex, mais l'implémentation semble utiliser un parser Markdown.

Je constate ici que SilverBullet.mb est basé sur la lib lezer. Ce qui me semble normal, parce que le plugin lang-markdown utilise aussi lezer.

Je ne trouve aucune mention de wikilink dans le code source de /lezer-parser/markdown/, par conséquent, je pense que ce type d'élément a été implémenté dans le code source de SilverBullet.mb.

Le parser le wikilink semble être implémenté ici.