diff --git a/src/FsYacc.Core/fsyaccdriver.fs b/src/FsYacc.Core/fsyaccdriver.fs index 2ff89ba..b66c651 100644 --- a/src/FsYacc.Core/fsyaccdriver.fs +++ b/src/FsYacc.Core/fsyaccdriver.fs @@ -120,11 +120,12 @@ type Writer(outputFileName, outputFileInterface) = member x.WriteUInt16(i: int) = fprintf os "%dus;" i member x.WriteCode(code, pos) = - x.WriteLine "# %d \"%s\"" pos.pos_lnum pos.pos_fname - x.WriteLine "%s" code - let codeLines = code.Replace("\r", "").Split([| '\n' |]).Length - outputLineCount <- outputLineCount + codeLines - x.WriteLine "# %d \"%s\"" outputLineCount outputFileName + if code <> "" then + x.WriteLine "# %d \"%s\"" pos.pos_lnum pos.pos_fname + x.WriteLine "%s" code + let codeLines = code.Replace("\r", "").Split([| '\n' |]).Length + outputLineCount <- outputLineCount + codeLines + x.WriteLine "# %d \"%s\"" outputLineCount outputFileName member x.OutputLineCount = outputLineCount diff --git a/tests/LexAndYaccMiniProject/Parser.fsy b/tests/LexAndYaccMiniProject/Parser.fsy index 85d7e81..11c51a5 100644 --- a/tests/LexAndYaccMiniProject/Parser.fsy +++ b/tests/LexAndYaccMiniProject/Parser.fsy @@ -1,9 +1,4 @@ -%{ - - -%} - -// The start token becomes a parser function in the compiled code: +// The start token becomes a parser function in the compiled code: %start start // Regular tokens