A JSON parser
Your first contact with lexers and grammars. Tokenize, build the tree and fail with useful errors.
TypeScript · Python · Go · Java
De la expresión al autómata. Backtracking, grupos y clases de caracteres sin usar la regex de tu lenguaje.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Las expresiones regulares parecen un lenguaje esotérico hasta que construyes el motor que las ejecuta. Entonces se convierten en lo que son: un árbol pequeño y una máquina que lo recorre.
Parsearás la expresión, la convertirás en un autómata y la ejecutarás contra un texto. Implementarás grupos, cuantificadores y clases de caracteres, y verás en primera persona por qué ciertas expresiones tardan una eternidad.
8 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Literales, el punto, anclas y el primer motor recursivo mínimo.
Parser de cuantificadores, alternancia, clases de caracteres y grupos.
Grupos capturados, cuantificadores perezosos y sustitución.
Simulación de NFA y comparación de rendimiento con el motor por backtracking.
Your first contact with lexers and grammars. Tokenize, build the tree and fail with useful errors.
TypeScript · Python · Go · Java
Tokenizer, parser, evaluator and closures. Discover how a language runs your code, step by step.
Python · JavaScript · TypeScript
From source code to runnable bytecode. Lexing, AST, semantic analysis, code generation and a VM that runs it.
Rust · C++ · TypeScript