2012-04-06 9 views
2

Ich benutze Ragel mit C als Host-Sprache.Passen Sie den Anfang der Datei oder einen Zeilenumbruch (Ragel)

Ich kann einen Newline einfach mit '\ n' erkennen, aber ich muss den Anfang der Datei als Alternative erkennen.

In anderen Implementierungen von regex dies durch \A oder $ gegeben werden könnte, aber $ für andere Zwecke reserviert, '\A' Karten zu etwas anderem (Alarm?) Und \A gibt einen Parser-Fehler.

Antwort

5

Ich glaube nicht, dass es eine Escape-Sequenz dafür gibt. Sie können jedoch durch die Überprüfung feststellen, ob Ragel der ts Variable 0.

0

im Textformat entspricht Sie haben 3 Wahl:

  • Alt mac 9 \n\r NR (und Commodore, Apple II, Microware OS- 9)

  • Unices und neue Mac OS X \n (und BeOS, AmigaOS, MorphOS, RISC OS, Multics)

  • Windows verwendet \r\n (und DOS, OS/2 , Symbian, DEC RT-11)

in Ragel definiere Zeilenende

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

Zeilenanfang wird begining (any - endline)

Verwandte Themen