Skip to content
Back to the catalog
Project json-parserLanguagesBeginnerBeta

Un parser de JSON

Construye un parser desde cero: tokeniza JSON, crea su árbol y reporta errores útiles.

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.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

JSON está presente en APIs, archivos de configuración y herramientas de desarrollo. En este proyecto aprenderás a leerlo desde cero, paso a paso y sin asumir conocimientos de compiladores.

Primero entenderás el mapa completo en una lección de lectura. Después construirás el parser en incrementos pequeños: valores simples, números, cadenas, arrays, objetos y errores útiles. Cada etapa explica el vocabulario, los casos límite y una forma concreta de comprobar tu avance.

Roadmap

7 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 13 stages

    Del texto a los tokens

    Recorre la entrada carácter a carácter y emite tokens: llaves, comas, literales.

    1. 01Antes de empezar: el mapa del parser
    2. 02Los tres valores literales
    3. 03Números sin atajos
  2. Phase 22 stages

    Del token al árbol

    Parser recursivo descendente para objetos, arrays y valores anidados.

    1. 01Cadenas, escapes y Unicode
    2. 02La primera estructura recursiva
  3. Phase 32 stages

    La especificación completa

    Escapes Unicode, números en notación científica y errores con línea y columna.

    1. 01Objetos y documentos completos
    2. 02Errores útiles y endurecimiento

Before you start

Una librería que convierte texto JSON en estructuras de datos de tu lenguaje: tokenizador, parser recursivo descendente, soporte completo de la especificación (números, strings con escapes y \uXXXX, anidamiento) y errores con línea, columna y contexto.

  • lisp-interpreter
    Beta

    A Lisp interpreter

    Tokenizer, parser, evaluator and closures. Discover how a language runs your code, step by step.

    Advanced11 stages~16 hLanguages
    parsingastclosures+1

    Python · JavaScript · TypeScript

  • regex-engine
    Beta

    A regular expression engine

    From the expression to the automaton. Backtracking, groups and character classes without your language's regex.

    Advanced8 stages~11 hLanguages
    autómatasparsingbacktracking

    TypeScript · Python · Rust

  • mini-compiler
    Beta

    A mini compiler to bytecode

    From source code to runnable bytecode. Lexing, AST, semantic analysis, code generation and a VM that runs it.

    Expert16 stages~30 hLanguages
    lexerastbytecode+1

    Rust · C++ · TypeScript