diff --git a/src/FsYacc.Core/fsyaccast.fs b/src/FsYacc.Core/fsyaccast.fs index 1af148e..55c2f22 100644 --- a/src/FsYacc.Core/fsyaccast.fs +++ b/src/FsYacc.Core/fsyaccast.fs @@ -47,7 +47,7 @@ type Symbols = Symbol list let StringOfSym sym = match sym with - | Terminal s -> "'" ^ s ^ "'" + | Terminal s -> String.Concat("'", s, "'") | NonTerminal s -> s let OutputSym os sym = fprintf os "%s" (StringOfSym sym) @@ -461,7 +461,9 @@ 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 = "#" @@ -620,7 +622,7 @@ let CompilerLalrParserSpec logf (spec: ProcessedParserSpec) : CompiledSpec = let StringOfSym sym = match sym with - | PTerminal s -> "'" ^ termTab.OfIndex s ^ "'" + | PTerminal s -> String.Concat("'", termTab.OfIndex s, "'") | PNonTerminal s -> ntTab.OfIndex s let OutputSym os sym = fprintf os "%s" (StringOfSym sym)