Repository navigation
v0.2.0
M1 complete: a Go port of JuliaSyntax (the version julia 1.12.6 ships) that returns the same Expr trees as Meta.parseall.
syntax.ParseAll/ParseAllLimits: Julia source toexpr.Expr, including julia's own error result for code that does not parse (the statements before the first error, thenExpr(:error)/Expr(:incomplete)with the formattedParseError);syntax.GreenDump: the lossless green tree and its diagnostics;- bounded parsing (64 MiB input, 4000 nesting levels by default), fuzzed (
FuzzLex,FuzzGreen,FuzzParse).
Parity with julia 1.12.6: tokens, green trees and Expr identical on 1191 / 1191 files of the release's share/julia tree (base, Compiler, stdlib, test — 18.5 MB) and on 976 / 976 golden snippets, error messages included.
Known gap: on a few malformed inputs JuliaSyntax itself throws (found by fuzzing: import. .., import. ...x, 0:0:<) and julia falls back to its older flisp parser, which is not ported; there ParseAll returns Expr(:error) and ParseAllLimits an error wrapping syntax.ErrParserFailed.
Speed, one core each: the corpus parses in 0.98 s against 1.39 s for julia's Meta.parseall (0.70×).
100% coverage, race-clean, tested natively on amd64/arm64/386 and under qemu on riscv64, loong64, ppc64le, s390x and arm, compiled for every GOOS/GOARCH, tested as wasip1 under wazero.
Next: M2, lowering (JuliaLowering → CodeInfo).