PEGO

Design Records

Each record explains a decision in the design of PEGO and the alternatives that were considered.

Record Status Date
000. Design Record Template Template 2026-10-09
001. Grammar JSON Marshalling Final 2025-06-29
002: Transparent Choice by Default Implemented 2025-06-29
003. SCC-Based Memoization and Left-Recursion Support Implemented 2025-06-30
004. Stabilizing Left Recursion in the VM Superseded 2025-06-30
005. Operators Rule Implemented 2026-10-07
006. Syntax Error Reporting and Error Recovery Implemented 2026-10-07
007. Stream Parsing and Incremental Parsing Implemented 2026-10-07
008. Generating Go Parsers Implemented 2026-10-07
009. Saving and Loading Compiled Grammars (.Pegoc) Implemented 2026-10-07
010. Bytecode VM Accepted 2026-10-07
011. Source Formatting That Keeps Comments Implemented 2026-10-07
012. Typed Values in Generated Parsers Implemented 2026-10-08
013. Generating TypeScript Parsers Implemented 2026-10-08
014. Tracing and Profiling Implemented 2026-10-08
015. Grammar-Based Input Generation Implemented 2026-10-08
016. Web Site and Playground Implemented 2026-10-08
017. A Language Server for PEGO Grammars Implemented 2026-10-08
018. Grammar Linting Implemented 2026-10-08
019. Incremental Document Storage and Tree Tooling Proposed 2026-10-09
020. Wide Repetition Bounds Implemented 2026-10-09
021. Structural Validation of Grammar ASTs Implemented 2026-10-10
022. Configurable Depth Limits in Generated Parsers Implemented 2026-10-10
023. Playground Asset Retention Across Deploys Implemented 2026-10-10
024. Reproducible Controls for Optimization Mechanisms Partially Implemented 2026-10-10
026. Bounded Stream Text Snapshots Implemented 2026-10-11
028. Strict Grammar JSON Intake Implemented 2026-10-11
029. Parse Named Rules as Typed Values Implemented 2026-10-11
030. Generate Typed TypeScript Values from Parse Trees Implemented 2026-10-11
031. Iterative Tree Traversal and JSON Output Partially Implemented 2026-10-11
032. Versioned Document Snapshots and Atomic Edit Batches Implemented 2026-10-11
033. Cancellable Parses and Work Budgets Implemented 2026-10-11
034. Typed Output Liveness and Alias-Safe Cleanup Proposed 2026-10-11
035. Incremental Cache Controls Implemented 2026-10-11
036. Stream Iteration and Bounded Diagnostics Implemented 2026-10-11
037. Replayable Edit Fuzzing Implemented 2026-10-11
038. Versioned Structured Output Schemas Implemented 2026-10-11
039. Conservative Document Change Notifications Accepted 2026-10-11
040. Structural Queries and Target-Language Highlighting Partially Implemented 2026-10-11
041. Opt-In Missing Literal Recovery Accepted for the Closure whole-input Node/recognition slice; other backends and APIs remain proposed 2026-10-11
042. Responsive LSP Analysis and Code Actions Accepted 2026-10-11
043. Generated Parser Tracing and Profiling Proposed 2026-10-11
044. Standalone Generated Document and Stream Parsers Partially Implemented 2026-10-11
045. Serialized Recognition Programs for Compiled Grammars Superseded 2026-10-11
046. Position Maps and Fragment Parsing Partially Implemented 2026-10-12
047. Diagnostic Expectation Names Proposed 2026-10-12
048. Inline Grammar Actions Accepted 2026-10-12
049. Rule Attribute Prefixes Superseded 2026-10-12
050. Controlling Implicit Operators Rule Whitespace Skips Draft 2026-10-12
051. Chunked Input for Document Edits Accepted 2026-10-13
052. Multi-Statement Predicate Actions Implemented 2026-10-13
053. Variable Declarations Implemented 2026-10-13
054. Generated Grammar Source Parser Proposed 2026-10-13
055. Typed Node Lists and Filtering Implemented 2026-10-14
056. Simplified Grammar Syntax View Implemented 2026-10-14
057. Source Metadata and Declaration Comments Proposed 2026-10-14
058. Positional Terminal Constructors Superseded 2026-10-14
059. Grammar Fixture Runner Accepted 2026-10-14
060. Value Types and Generic Nodes Implemented 2026-10-17
061. Explicit Start Rules Implemented 2026-10-22
062. Backend-Independent Optimization IR Accepted 2026-10-22
063. Configurable Optimization Pass Pipeline Accepted 2026-10-25
064. Grammar Complexity: a Cost Model, a Classifier and Safeguards Proposed 2026-10-28