From f52e61774dde775ec538568a346e96bcab39b48d Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Mon, 15 Dec 2025 14:03:35 +0100 Subject: [PATCH 1/3] Refactor StringOfSym function - remove ML syntax Changing in order to align with https://github.com/dotnet/fsharp/pull/19143 --- src/FsYacc.Core/fsyaccast.fs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/FsYacc.Core/fsyaccast.fs b/src/FsYacc.Core/fsyaccast.fs index 1af148e..93f7d7c 100644 --- a/src/FsYacc.Core/fsyaccast.fs +++ b/src/FsYacc.Core/fsyaccast.fs @@ -45,10 +45,7 @@ type Symbols = Symbol list //--------------------------------------------------------------------- // Output Raw Parser Spec AST -let StringOfSym sym = - match sym with - | Terminal s -> "'" ^ s ^ "'" - | NonTerminal s -> s +let StringOfSym sym = match sym with Terminal s -> String.Concat("'", s, "'") | NonTerminal s -> s let OutputSym os sym = fprintf os "%s" (StringOfSym sym) From 282f539935df133c6dc5a10e9be86e94f9474600 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Mon, 15 Dec 2025 14:18:29 +0100 Subject: [PATCH 2/3] Refactor string concatenation in fsyaccast.fs --- src/FsYacc.Core/fsyaccast.fs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/FsYacc.Core/fsyaccast.fs b/src/FsYacc.Core/fsyaccast.fs index 93f7d7c..a83e2c2 100644 --- a/src/FsYacc.Core/fsyaccast.fs +++ b/src/FsYacc.Core/fsyaccast.fs @@ -458,7 +458,7 @@ let CompilerLalrParserSpec logf (spec: ProcessedParserSpec) : CompiledSpec = stopWatch.Start() // Augment the grammar - let fakeStartNonTerminals = spec.StartSymbols |> List.map (fun nt -> "_start" ^ nt) + let fakeStartNonTerminals = spec.StartSymbols |> List.map(fun nt -> String.Concat("_start", nt)) let nonTerminals = fakeStartNonTerminals @ spec.NonTerminals let endOfInputTerminal = "$$" let dummyLookahead = "#" @@ -615,10 +615,7 @@ let CompilerLalrParserSpec logf (spec: ProcessedParserSpec) : CompiledSpec = let IsKernelItem item0 = (IsStartItem item0 || dotIdx_of_item0 item0 <> 0) - let StringOfSym sym = - match sym with - | PTerminal s -> "'" ^ termTab.OfIndex s ^ "'" - | PNonTerminal s -> ntTab.OfIndex s + let StringOfSym sym = match sym with PTerminal s -> String.Concat("'", termTab.OfIndex s, "'") | PNonTerminal s -> ntTab.OfIndex s let OutputSym os sym = fprintf os "%s" (StringOfSym sym) From 529fc224d3b930a386f64b97d434c942da79120a Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Mon, 15 Dec 2025 13:21:40 +0000 Subject: [PATCH 3/3] fantomas'd --- src/FsYacc.Core/fsyaccast.fs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/FsYacc.Core/fsyaccast.fs b/src/FsYacc.Core/fsyaccast.fs index a83e2c2..55c2f22 100644 --- a/src/FsYacc.Core/fsyaccast.fs +++ b/src/FsYacc.Core/fsyaccast.fs @@ -45,7 +45,10 @@ type Symbols = Symbol list //--------------------------------------------------------------------- // Output Raw Parser Spec AST -let StringOfSym sym = match sym with Terminal s -> String.Concat("'", s, "'") | NonTerminal s -> s +let StringOfSym sym = + match sym with + | Terminal s -> String.Concat("'", s, "'") + | NonTerminal s -> s let OutputSym os sym = fprintf os "%s" (StringOfSym sym) @@ -458,7 +461,9 @@ let CompilerLalrParserSpec logf (spec: ProcessedParserSpec) : CompiledSpec = stopWatch.Start() // Augment the grammar - let fakeStartNonTerminals = spec.StartSymbols |> List.map(fun nt -> String.Concat("_start", nt)) + let fakeStartNonTerminals = + spec.StartSymbols |> List.map (fun nt -> String.Concat("_start", nt)) + let nonTerminals = fakeStartNonTerminals @ spec.NonTerminals let endOfInputTerminal = "$$" let dummyLookahead = "#" @@ -615,7 +620,10 @@ let CompilerLalrParserSpec logf (spec: ProcessedParserSpec) : CompiledSpec = let IsKernelItem item0 = (IsStartItem item0 || dotIdx_of_item0 item0 <> 0) - let StringOfSym sym = match sym with PTerminal s -> String.Concat("'", termTab.OfIndex s, "'") | PNonTerminal s -> ntTab.OfIndex s + let StringOfSym sym = + match sym with + | PTerminal s -> String.Concat("'", termTab.OfIndex s, "'") + | PNonTerminal s -> ntTab.OfIndex s let OutputSym os sym = fprintf os "%s" (StringOfSym sym)