From: Ralph M. <rj...@ir...> - 2022-03-28 12:01:10
|
I am new to using re2c, but I think I have found what might be a minor documentation error. I am using Version 3.0. 1) Under the section, "Regular expressions" of the C User Manual, the documentation reads: "|.| any character except newline" 2) A regular expression which uses the ".", such as: /*!re2c re2c:indent:top = 2; re2c:yyfile:enable = 0; SCHAR = (['] ([\\][']|[\\].|[\001-\377]\[\\'])* [']); SCHAR { // Some C code return 0; } */ will produce the warning message: "warning: sentinel symbol 0 occurs in the middle of the rule (note: if a different sentinel symbol is used, specify it with 're2c:sentinel' configuration) [-Wsentinel-in-midrule]:" 3) The issue is (I think) that the sentinel character \000 is included as well as the newline character. 4) Working code is to add near top (after /*!re2c): > re2c:eof = 0; > > // End of input special rule "$" > $ { > status = retcode_eof; > break; > } 5) I believe the documentation should read something like: "|.| any character except newline or the sentinel character (usually /000)" Thank you, Ralph Moses |