tree-sitter-tcode
v0.2.0
Published
Gramática de Tcode para tree-sitter
Readme
tree-sitter-tcode
Gramática de tree-sitter para Tcode. Es un
espejo del parser del compilador (ejemplos/lexer/lib/sintaxis.t): las reglas
y los nombres de nodo son los que el compilador ya usa (nombre_de_clase).
Generar y probar
npm install # trae tree-sitter-cli
npx tree-sitter generate # src/parser.c desde grammar.js
npx tree-sitter test # el corpus en test/corpus/Probar contra el compilador real
npx tree-sitter parse ../../ejemplos/compilador/tcodec.tTodo el compilador, el lexer, std/ y programas/ parsean sin errores ni
nodos MISSING.
Qué hay
grammar.js— la gramática (el DSL de tree-sitter).queries/highlights.scm— resaltado de sintaxis.test/corpus/— casos de prueba con su árbol esperado.src/— el parser C generado, listo para consumir.
Limitaciones conocidas
comoybloqueson palabras de contexto en Tcode (el lexer las trata como identificadores); aquí se lexan como palabras clave, así que un programa que las use como nombre de variable se resaltará raro. Es un caso poco común.- El
bloque<T>de los tipos es indistinguible de un genéricoPar<A, B>: ambos sonident <...>. Se resuelve igual que en el compilador.
