ΠΠΎ ΠΏΠ΅ΡΠΎΠΊΠΎΡ, 2 Π°Π²Π³ΡΡΡ, Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° re2c, Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° Π»Π΅ΠΊΡΠΈΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π·Π° C ΠΈ C++ ΡΠ°Π·ΠΈΡΠΈΡΠ΅. Re2c Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ 1993 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΠ΄ ΠΠΈΡΠ΅Ρ ΠΠ°ΠΌΠ±ΡΠ»ΠΈΡ ΠΊΠ°ΠΊΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΌΠ½ΠΎΠ³Ρ Π±ΡΠ·ΠΈ Π»Π΅ΠΊΡΠΈΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ, ΠΊΠΎΡ ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π° ΠΎΠ΄ Π΄ΡΡΠ³ΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ ΠΏΠΎ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π½Π΅Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΊΠΎΡ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈΡΠ΅ Π»Π΅ΡΠ½ΠΎ ΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²Π³ΡΠ°Π΄Π°Ρ Π²ΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ. ΠΡΡΠΎΠ³Π°Ρ, ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ ΡΠ°Π·Π²ΠΈΠ΅Π½ ΠΎΠ΄ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΠΈ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ° Π²ΠΎ ΠΎΠ±Π»Π°ΡΡΠ° Π½Π° ΡΠΎΡΠΌΠ°Π»Π½ΠΈΡΠ΅ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½Π΅ΡΠ½ΠΈ ΡΠΎΡΡΠΎΡΠ±ΠΈ.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° 1.2:
-
ΠΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π½ΠΎΠ² (ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½) Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΡΠ°ΡΠΎΡ Π½Π° Π²Π»Π΅Π·Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
(ΠΠ½Π³Π»ΠΈΡΠΊΠΈ βΠΡΠ°Π²ΠΈΠ»ΠΎ Π½Π° ΠΠΠ€β).
ΠΠ° ΠΎΠ²Π°, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° re2c:eof,
Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΈΠΎΡ Π·Π½Π°ΠΊ,
ΠΈ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ $ ΠΊΠΎΠ΅ ΠΏΡΠΊΠ° Π°ΠΊΠΎ Π»Π΅ΠΊΡΠ΅ΡΠΎΡ
ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠΈΠ³Π½Π° Π΄ΠΎ ΠΊΡΠ°ΡΠΎΡ Π½Π° Π²Π»Π΅Π·Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΡΡΠΎΡΠΈΡΠΊΠΈ Π³Π»Π΅Π΄Π°Π½ΠΎ, re2c ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΈΠ·Π±ΠΎΡ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π·Π°
ΠΊΡΠ°ΡΠΎΡ Π½Π° Π²Π»Π΅Π·ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ ΠΏΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅, Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎΡΡ ΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΡΡ
Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΠ²ΠΈΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΠΈ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΊΠΎΠ΄, Π΄ΠΎΠ΄Π΅ΠΊΠ°
Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΎΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. Π‘ΡΠ°ΡΠΈ Π½Π°ΡΠΈΠ½ΠΈ
ΡΓ¨ ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ° Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ. -
ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
/*!include:re2c "file.re" */ ΠΊΠ°Π΄Π΅ file.re
ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π°. Re2c Π±Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΎ Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅,
ΠΊΠ°ΠΊΠΎ ΠΈ Π²ΠΎ Π»ΠΈΡΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΠ΅ΠΊΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΎΠΏΡΠΈΡΠ°ΡΠ° -I.
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΠΈ Π΄ΡΡΠ³ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
Re2c ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° βΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈβ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ include/
ΠΏΡΠΎΠ΅ΠΊΡ - ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π° ΡΠ°ΠΌΡ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°Π°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ
ΡΠ΅Π³ΡΠ»Π°ΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ, Π½Π΅ΡΡΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
ΠΠΎΡΠ΅Π³Π°, Π½Π° Π±Π°ΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ Π΅Π΄Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ Π·Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π½Π° Π£Π½ΠΈΠΊΠΎΠ΄. -
ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΎ Π·Π°Π³Π»Π°Π²ΠΈΡΠ° ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ
ΡΠΎΠ΄ΡΠΆΠΈΠ½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ -t --type-header (ΠΈΠ»ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ) ΠΈ Π½ΠΎΠ²ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ /*!header:re2c:on*/ ΠΈ
/*!header:re2c:off*/. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΎ Π²ΠΎ ΡΠ»ΡΡΠ°ΠΈ ΠΊΠΎΠ³Π°
ΠΊΠΎΠ³Π° re2c ΡΡΠ΅Π±Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΠ°,
ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°ΡΠΊΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ. -
Re2c ΡΠ΅Π³Π° ΡΠ°Π·Π±ΠΈΡΠ° UTF8 Π±ΡΠΊΠ²Π°Π»ΠΈ ΠΈ ΠΊΠ»Π°ΡΠΈ Π½Π° Π·Π½Π°ΡΠΈ Π²ΠΎ ΡΠ΅Π³ΡΠ»Π°ΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, re2c Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ββx βyβ ΠΊΠ°ΠΊΠΎ.
Π½ΠΈΠ·Π° ΠΎΠ΄ 1-Π±ΠΈΡΠ½ΠΈ ASCII Π·Π½Π°ΡΠΈ e2 88 80 78 20 e2 88 83 79
(Ρ Π΅ΠΊΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ), Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΡΡΠ΅Π±Π° ΡΠ°ΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅ Π½Π° Π£Π½ΠΈΠΊΠΎΠ΄:
"u2200x u2203y". ΠΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΎ ΠΈ Π½Π΅ΠΎΡΠ΅ΠΊΡΠ²Π°Π½ΠΎ Π·Π° ΠΌΠ½ΠΎΠ³ΡΠΌΠΈΠ½Π°
ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ (ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΠΎΡΠ²ΡΠ΄Π΅Π½ΠΎ ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ). ΠΠ° ΡΠ΅Π³Π°
re2c ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΎΠΏΡΠΈΡΠ° Π·Π° ---Π²Π»Π΅Π·-ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ,
ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΈ Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ββx βyβ ΠΊΠ°ΠΊΠΎ
2200 78 20 2203 79. -
Re2c ΡΠ΅Π³Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ re2c Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ -r --reuse.
ΠΠ²Π° Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π°ΠΊΠΎ Π²Π»Π΅Π·Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΈ ΡΠ°ΠΌΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ²
ΡΡΠ΅Π±Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΡΠ΅Π±ΠΈ. -
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΎΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ°ΡΠ° ΠΈ ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ
ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° Π½ΠΎΠ²Π°ΡΠ° ΠΎΠΏΡΠΈΡΠ° --location-format . Π‘Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° GNU ΡΠΎΡΠΌΠ°Ρ
ΠΊΠ°ΠΊΠΎ ΠΈΠΌΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°: Π»ΠΈΠ½ΠΈΡΠ°: ΠΊΠΎΠ»ΠΎΠ½Π°:, ΠΈ ΡΠΎΡΠΌΠ°Ρ MSVC ΠΊΠ°ΠΊΠΎ ΠΈΠΌΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° (Π»ΠΈΠ½ΠΈΡΠ°, ΠΊΠΎΠ»ΠΎΠ½Π°).
ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΊΠΎΡΠΈΡΠ½Π° Π·Π° ΡΡΠ±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° IDE.
ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΈ ΠΎΠΏΡΠΈΡΠ° --verbose, ΠΊΠΎΡΠ° ΠΏΠ΅ΡΠ°ΡΠΈ ΠΊΡΠ°ΡΠΊΠ° ΠΏΠΎΠ±Π΅Π΄Π½ΠΈΡΠΊΠ° ΠΏΠΎΡΠ°ΠΊΠ° Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΡΡΠΏΠ΅ΡΠ½Π°. -
Π Π΅ΠΆΠΈΠΌΠΎΡ βΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡβ ΡΠΎ ΡΠ»Π΅ΠΊΡ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ - ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ΅ Π½Π΅ΠΊΠΎΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π²ΠΎ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΈ
Π½Π΅ΡΠΎΡΠ½Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΡ Π²ΠΎ ΡΠ΅ΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ.
ΠΡΡΠΎΡΠΈΡΠΊΠΈ Π³Π»Π΅Π΄Π°Π½ΠΎ, ΠΎΠΏΡΠΈΡΠ°ΡΠ° -F --flex-support Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄
ΠΈΠ·ΠΌΠ΅ΡΠ°Π½ΠΎ Π²ΠΎ ΡΠ»Π΅ΠΊΡ ΡΡΠΈΠ» ΠΈ ΡΡΠΈΠ» re2c, ΡΡΠΎ Π³ΠΎ ΠΎΡΠ΅ΠΆΠ½ΡΠ²Π° ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ.
Π Π΅ΠΆΠΈΠΌΠΎΡ Π½Π° ΡΠ»Π΅ΠΊΡ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΡΠ΅ΡΠΊΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Π½ΠΎΠ²ΠΈΠΎΡ ΠΊΠΎΠ΄,
Π½ΠΎ re2c ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ Π½Π°Π½Π°Π·Π°Π΄. -
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΡ Π·Π° ΠΎΠ΄Π·Π΅ΠΌΠ°ΡΠ΅ ΠΊΠ»Π°ΡΠ° Π½Π° Π·Π½Π°ΡΠΈ / ΡΠ΅Π³Π° ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°
ΠΏΡΠ΅Π΄ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΈ,
Π°ΠΊΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΡΠΎ Π΄ΠΎΠ»ΠΆΠΈΠ½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π½Π°ΡΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ UTF8). -
ΠΠ·Π»Π΅Π·Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅Π³Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ° Π°ΡΠΎΠΌΡΠΊΠΈ: re2c ΠΏΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π° ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°
ΠΈ Π³ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ Π²ΠΎ Π½Π΅Π³ΠΎ, Π° ΠΏΠΎΡΠΎΠ° ΡΠ° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π° ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π²ΠΎ ΠΈΠ·Π»Π΅Π·ΠΎΡ
Π΅Π΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°. -
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°Π½Π° ΠΈ ΠΏΡΠ΅ΠΏΠΈΡΠ°Π½Π°; ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π±Π΅Π° Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ
ΠΏΠΎΠ³Π»Π°Π²ΡΠ° Π·Π° ΠΏΠΎΠ»Π½Π΅ΡΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ
ΠΈ Π·Π° Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΡΠ°ΡΠΎΡ Π½Π° Π²Π»Π΅Π·Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΠΎΠ²Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ° Π²ΠΎ ΠΎΠ±ΡΠ°Π·Π΅ΡΠΎΡ
ΡΠ΅ΠΎΠΏΡΠ°ΡΠ΅Π½ ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΊ Π½Π° Π΅Π΄Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°
ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ (ΠΈΡΡΠΈΡΠ΅ ΠΈΠ·Π²ΠΎΡΠΈ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ Π²ΠΎ manpage ΠΈ Π²ΠΎ ΠΎΠ½Π»Π°ΡΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ°).
ΠΠ΅Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π»ΠΎΡΠΈ ΠΎΠ±ΠΈΠ΄ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΡΠΈΡΠ»ΠΈΠ²ΠΎΡΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈΡΠ΅. -
ΠΠ΄ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅, re2c ΡΠ΅ Π·Π΄ΠΎΠ±ΠΈ ΡΠΎ ΠΏΠΎΡΠ΅Π»ΠΎΡΠ΅Π½ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ
Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ ΠΠΎΠ΄ΠΎΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³Π° Π΅ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° ΠΈ
ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΎΠΏΡΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ --enable-debug.
ΠΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ - ΡΠΊΠΎΡΠΎ ΡΠ΅Π»Π° Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ, Π±Π΅ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ΅Π½ΠΎ Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΡΠΊΠ° ΡΠ°ΠΌΠΊΠ° ΠΈ ΠΏΠΈΡΡΠ²Π°ΡΠ΅
Π§Π»Π΅Π½ βΠΡΠΈΠΊΠ°ΡΠ½ΠΎ POSIX ΠΏΠΎΠ΄Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅ Π½Π° NFAβ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libre2c
(Π³ΡΠ°Π΄Π΅ΡΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ ΠΎΠ΄ΡΠ΅Π΄Π½ΠΈΡΠΈΡΠ΅ Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΠΈ Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΡΠΎ ΠΎΠΏΡΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅
--ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ-libs). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π΅ Π΅ Π·Π°ΠΌΠΈΡΠ»Π΅Π½Π° ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ°ΡΠ°
ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΠΊΠΎ RE2, Π½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ°Π·Π²ΠΎΡ Π½Π° Π½ΠΎΠ²ΠΈ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ (ΠΊΠΎΠΈ ΠΏΠΎΡΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ re2c ΠΈΠ»ΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ).
ΠΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅, ΠΎΠ΄ΡΠ΅Π΄Π½ΠΈΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΠ° Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΠΈΡΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡ ΠΎΠ΄ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈΡΠ΅ Π½Π° re2c Π΄ΠΎ ΡΠΈΡΠ΅ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π° Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅,
ΠΈ ΠΎΠΏΡΡΠΎ Π΄ΠΎ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ΄Π΅ΠΈ, ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ, Π·Π°ΠΊΡΠΏΠΈ, ΠΌΠΎΡΠ°Π» ΠΈΡΠ½. ;]
ΠΠ·Π²ΠΎΡ: linux.org.ru