匹配文件的开头或换行符(Ragel)

时间:2012-04-06 20:15:23

标签: ragel

我正在使用ragel和C作为主语。

我只能使用'\ n'识别换行符,但我需要识别文件的开头作为替代。

在正则表达式的其他实现中,这可以由\A$给出,但$保留用于其他目的,'\A'映射到其他内容(闹钟?)并且\A给出了解析器错误。

2 个答案:

答案 0 :(得分:5)

我认为没有逃脱序列。但是,您可以通过检查Ragel的ts变量是否等于0来检测它。

答案 1 :(得分:0)

在文本格式中您有3个选择:

  • 旧mac到9 \n\r(和Commodore,Apple II,Microware OS-9)

  • Unices和新的Mac OS X \n(以及BeOS,AmigaOS,MorphOS,RISC OS,Multics)

  • Windows使用\r\n(以及DOS,OS / 2,Symbian,DEC RT-11)

在Ragel中定义行尾

endline = ( "\r" | "\n" )+ @{ increase_line_number; };

行的开头是(any - endline)