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

匹配文件的开头或换行符(Ragel),ragel,Ragel,我使用ragel和C作为宿主语言 我可以简单地用“\n”识别换行符,但我需要识别文件的开头作为替代 在regex的其他实现中,这可能是由\A或$给出的,但是$是为其他目的保留的,'\A'映射到其他东西(报警?),而\A给出了一个解析器错误。我不认为有转义序列。但是,您可以通过检查Ragel的ts变量是否等于0来检测它。在文本格式中,您有3种选择: 旧mac到nr 9\n\r(以及Commodore、Apple II、Microware OS-9) Unices和新的Mac OS X\n(以及B

我使用ragel和C作为宿主语言

我可以简单地用“\n”识别换行符,但我需要识别文件的开头作为替代


在regex的其他实现中,这可能是由
\A
$
给出的,但是
$
是为其他目的保留的,
'\A'
映射到其他东西(报警?),而
\A
给出了一个解析器错误。

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

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

  • 旧mac到nr 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,2011年12月)

在Ragel中定义行的结尾

endline = ( "\r" | "\n" )+ @{ increase_line_number; };
行的开始是开始
(任意-结束行)