We first require that the first character after a /// not be a newline, in addition to it not being another /. Then we make the whole contents of the line optional, so we can handle empty lines.
@@ -105,7 +105,7 @@ HEXDIGIT [a-fA-F0-9]
%%
;
{SPACE}+ { }
-("///"[^/][^\n\r]*[\n\r]*)+ { return(Sc_ScanDocBlock()); }
+("///"([^/\n\r][^\n\r]*)?[\n\r]+)+ { return(Sc_ScanDocBlock()); }
"//"[^\n\r]* ;
[\r] ;
[\n] {lineIndex++;}