lean4-htt/src
David Thrane Christiansen 74e7886ce7
feat: custom error recovery in parser (#3413)
Adds a simple error-recovery mechanism to Lean's parser, similar to
those used in other combinator parsing libraries.

Lean itself isn't very amenable to error recovery with this mechanism,
as it requires global knowledge of the grammar in question to write
recovery rules that don't break backtracking or `<|>`. I only found a
few opportunities.

But for DSLs, this is really important. In particular, Verso parse
errors interacted very badly with Lean parse errors in a way that
required frequent "restart file" commands, but this mechanism allows me
to both recover from Verso parse errors and to have Lean skip the rest
of the file rather than repeatedly trying to parse it as Lean commands.
2024-02-21 14:29:54 +00:00
..
bin feat: Web Assembly Build (#2599) 2023-10-04 09:04:20 +02:00
cmake
include/lean feat: introduce native functions for Int.ediv / Int.emod (#3376) 2024-02-19 15:04:51 +00:00
Init chore: explicit DecidableEq instance for BitVec (#3438) 2024-02-21 13:37:00 +00:00
initialize chore: fix more typos in comments 2023-10-08 14:37:34 -07:00
kernel feat: add bitwise operations to reduceNat? and kernel (#3134) 2024-01-11 18:12:45 +00:00
lake chore: add missing copyright headers (#3411) 2024-02-20 01:49:55 +00:00
Lean feat: custom error recovery in parser (#3413) 2024-02-21 14:29:54 +00:00
library perf: LLVM backend, put all allocas in the first BB to enable mem2reg (#3244) 2024-02-13 14:54:40 +00:00
runtime feat: introduce native functions for Int.ediv / Int.emod (#3376) 2024-02-19 15:04:51 +00:00
shell feat: Web Assembly Build (#2599) 2023-10-04 09:04:20 +02:00
util fix: remove target triple parameter from FFI that no longer exists in the Lean API 2023-11-02 23:21:47 +01:00
CMakeLists.txt chore: begin development cycle for v4.7.0 (#3243) 2024-02-01 23:29:32 +00:00
config.h.in chore: document simplified object header and remove obsolete cmake options 2021-07-20 10:42:28 -07:00
githash.h.in
Init.lean chore: upstream omega (#3367) 2024-02-19 00:19:55 +00:00
lean-toolchain doc: VS Code dev setup (#2961) 2023-11-30 08:35:03 +00:00
Lean.lean chore: upstream solve_by_elim (#3408) 2024-02-21 01:16:04 +00:00
lean.mk.in feat: LLVM bc separation for CMake 2023-11-02 23:21:47 +01:00
Leanc.lean chore: add missing copyright headers (#3411) 2024-02-20 01:49:55 +00:00
stdlib.make.in chore: set warningAsError in CI only (#3030) 2023-12-06 08:18:39 +00:00
stdlib_flags.h chore: update domain 2023-09-20 15:13:27 -07:00
version.h.in feat: System.Platform.target (#3207) 2024-01-24 12:11:00 +00:00