@@ -45,37 +45,37 @@ NEXTFLOW_TS_LIB=lib/<platform>/libnextflow.<ext> \
4545| 2026-07-03 | 98.9% (2047/2070) | destructuring assignment, bare << statements |
4646| 2026-07-03 | 99.1% (2052/2070) | index on paren/interp, pipe-op closures, error """…""", typed closure params |
4747| 2026-07-03 | 99.3% (2056/2070) | method calls on triple strings ("""…""".stripIndent()); """ unified to one rule |
48- | 2026-07-03 | ** 99.4% (2058/2070)** | lenient string escapes (\\ + any char) |
48+ | 2026-07-03 | 99.4% (2058/2070) | lenient string escapes (\\ + any char) |
49+ | 2026-07-03 | 99.5% (2059/2070) | whitespace in section markers (stub :) |
50+ | 2026-07-03 | ** 99.6% (2062/2070)** | ; terminates before } / after comment; typed function defs (String f(String a){}) |
4951
50- ## Remaining failures (12 files, 0.6 %) — categorised
52+ ## Remaining failures (8 files, 0.4 %) — categorised
5153
5254Each was attempted and reverted with the measured cost; these are genuine
5355LR/lexer limits or non-idiomatic source:
5456
5557- ** ` | ` as boolean-or in conditions** (4): ` if (a == b | c == d) ` . Adding ` | `
56- as a binary operator reaches 99.5 % but deterministically reparses every
58+ as a binary operator reaches 99.7 % but deterministically reparses every
5759 channel pipe ` ch | map ` as a ` binary_expression ` instead of
5860 ` pipe_expression ` (2 corpus tests fail) — ` binary_expression ` 's static
5961 precedence wins and ` prec.dynamic ` does not apply (no real GLR conflict).
6062 Breaking the core channel-op node that lint rules read is not worth 4 files
6163 whose source should use ` || ` .
62- - ** ` stmt; /* comment */ ` then more statements** (3): even with the scanner
63- emitting a terminator at the explicit ` ; ` , tree-sitter attaches the trailing
64- inline block comment as an extra * after* the prelude repeat reduces, ending
65- the script section early. Needs external-scanner control over the
66- comment/terminator boundary.
67- - ** exotic single-file syntax** (5): ` stub : ` with a space before the colon
68- (section markers are atomic tokens); ` ( cond ? """a""" : "" ) << """b""" ` as
69- a process script body (a binary expression producing the script string);
70- IIFE ` { … }() ` ; ` stdout emit: x ` without a comma; ` log.debug "msg" `
71- (dotted-receiver no-paren command — a dedicated fix regressed other files).
72-
73- ** Resolved this round** (was in the prior 18/29): the whole
74- ` """…""".stripIndent() ` cluster (~ 7 files) via routing all ` """…""" ` through
75- one ` interpolated_triple_quoted_string ` rule + a dedicated ` string_method_call `
76- that requires a ` .method(...) ` ; try/catch/finally; chained pipes;
64+ - ** exotic / conflict-prone single-file syntax** (4):
65+ - ` ( cond ? """a""" : "" ) << """b""" ` as a process script body — a binary
66+ expression * producing* the script string (rungx).
67+ - IIFE ` { … }() ` — adding a closure-call rule introduces an unresolved
68+ grammar conflict for one file (scan).
69+ - ` stdout emit: x ` without a comma — comma-optional ` emit_declaration `
70+ conflicts with ` input_declaration ` (download).
71+ - ` log.debug "msg" ` — a dotted-receiver no-paren command; a dedicated rule
72+ regressed other files (subsample).
73+
74+ ** Resolved since the prior 12/18** : ` """…""".stripIndent() ` cluster (~ 7 files,
75+ via one ` """ ` rule + ` string_method_call ` ); try/catch/finally; chained pipes;
7776destructuring assignment; index on parenthesized/interpolated expressions;
78- lenient escapes.
77+ lenient escapes; ` ; ` terminating before ` } ` and after an inline comment; typed
78+ function definitions (` String f(String a){} ` ); ` stub : ` whitespace.
7979
8080Known structural (error-free, not counted as failures): with terminators in
8181workflow sections, an LALR reduction can place a trailing ` take: ` identifier
0 commit comments