Svelte-Compiler-Handbuch
(lihautan.com)- Erläutert die Kompilierungsschritte von Svelte leicht verständlich
#1 .svelte-Datei einlesen und in AST umwandeln
→ HTML wird intern geparst, für Script wird Acorn verwendet, für CSS css-tree
#2 AST durchlaufen und Referenzen sowie Abhängigkeiten nachverfolgen
→ Component-Instanz erstellen und Variablen finden und markieren
#3 Codeblöcke und Fragmente erzeugen
→ DOM-/SSR-Renderer
#4 Code generieren
2 Kommentare
Vor ein paar Tagen wurde hier der Toast UI Editor (https://de.news.hada.io/topic?id=1823) vorgestellt, und auch beim Language Server Protocol (https://en.wikipedia.org/wiki/Language_Server_Protocol) gibt es immer mehr Projekte, die ASTs nutzen. Ich meine, ich hätte früher auch einmal den Vorschlag gesehen, JS-Dateien nicht als Text, sondern als AST auszuliefern, damit die Browser-Engine sie schneller interpretieren kann; dieser Artikel (https://blog.cloudflare.com/binary-ast) war es zwar nicht, aber die Idee geht in eine ähnliche Richtung.
Wenn man statt eines implizit erzeugten ASTs einen AST mit mehr Bedeutung von Hand erstellt, landet man irgendwann bei einer funktionalen Sprache aus der S-Expression-Familie. Es wäre interessant, wenn sich beides irgendwo in der Mitte träfe.
Wenn man das einmal gelesen hat, dürfte es für externe Mitwirkende einfacher sein, zum Svelte-Code beizutragen.