Π ΠΏΠ΅ΡΡΠΊ, 2 Π°Π²Π³ΡΡΡ, Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° re2c, Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° Π»Π΅ΠΊΡΠΈΠΊΠ°Π»Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π·Π° Π΅Π·ΠΈΡΠΈΡΠ΅ C ΠΈ C++. Re2c Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΡΠ΅Π· 1993 Π³. ΠΎΡ Peter Bamboulis ΠΊΠ°ΡΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΈ Π»Π΅ΠΊΡΠΈΠΊΠ°Π»Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ, ΠΎΡΠ»ΠΈΡΠ°Π²Π°Ρ ΡΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΎ Π³ΡΠ²ΠΊΠ°Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ Π»Π΅ΡΠ½ΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°. ΠΡΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΠΈ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° ΡΠΎΡΠΌΠ°Π»Π½ΠΈΡΠ΅ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 1.2:
-
ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² (ΠΎΠΏΡΠΎΡΡΠ΅Π½) Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΡΠ°Ρ Π½Π° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ
(Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎ βΠΏΡΠ°Π²ΠΈΠ»ΠΎ EOFβ).
ΠΠ° ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° re2c:eof,
Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π·Π½Π°ΠΊΠ° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°,
ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ $ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°, Π°ΠΊΠΎ Π»Π΅ΠΊΡΠ΅ΡΡΡ
ΡΡΠΏΠ΅ΡΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π° ΠΊΡΠ°Ρ Π½Π° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ re2c ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ·Π±ΠΎΡ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π°
ΠΊΡΠ°ΠΉ Π½Π° Π²Ρ ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅, Π²Π°ΡΠΈΡΠ°ΡΠΈ ΠΏΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ°
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄, Π΄ΠΎΠΊΠ°ΡΠΎ
ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΠ°Π²Π°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ. Π‘ΡΠ°ΡΠΈ Π½Π°ΡΠΈΠ½ΠΈ
Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ. -
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
/*!include:re2c "file.re" */ ΠΊΡΠ΄Π΅ΡΠΎ file.re
ΡΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈΡ ΡΠ°ΠΉΠ». Re2c ΡΡΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΠ² Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ,
ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΏΡΡΠΈΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° -I.
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
Re2c ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ "ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ" ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° include/
ΠΏΡΠΎΠ΅ΠΊΡ - ΠΎΡΠ°ΠΊΠ²Π° ΡΠ΅ ΡΠ°ΠΌ Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΏΠ°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ, Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
ΠΠΎΡΠ΅Π³Π° ΠΏΠΎ ΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈ Π½Π° Unicode ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ. -
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ
ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ -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
(ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅) ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·Π±ΡΠ³Π²Π°Ρ Unicode Π·Π½Π°ΡΠΈΡΠ΅:
"u2200x u2203y". Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎ Π·Π° ΠΌΠ½ΠΎΠ·ΠΈΠ½Π°
ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ Π²ΠΈΠΆΠ΄Π° ΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ). Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ΅Π³Π°
re2c ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΠΏΡΠΈΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ --input ,
ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ "βx βy" ΠΊΠ°ΡΠΎ
2200 78 20 2203 79. -
Re2c Π²Π΅ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ re2c Π² ΡΠ΅ΠΆΠΈΠΌ -r --reuse.
Π’ΠΎΠ²Π° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ
ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. -
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ° ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ
ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½ΠΎΠ²Π°ΡΠ° ΠΎΠΏΡΠΈΡ --location-format . ΠΠΎΠΊΠ°Π·Π²Π° ΡΠ΅ GNU ΡΠΎΡΠΌΠ°Ρ
ΠΊΠ°ΡΠΎ ΠΈΠΌΠ΅ Π½Π° ΡΠ°ΠΉΠ»:ΡΠ΅Π΄:ΠΊΠΎΠ»ΠΎΠ½Π°: ΠΈ ΡΠΎΡΠΌΠ°ΡΠ° MSVC ΠΊΠ°ΡΠΎ ΠΈΠΌΠ΅ Π½Π° ΡΠ°ΠΉΠ»(ΡΠ΅Π΄,ΠΊΠΎΠ»ΠΎΠ½Π°).
Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° Π»ΡΠ±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° IDE.
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΈ ΠΎΠΏΡΠΈΡ --verbose, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈ ΡΡΠΏΠ΅Ρ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΊΡΠ°ΡΠΊΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΠ±Π΅Π΄Π°. -
Π Π΅ΠΆΠΈΠΌΡΡ "ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ" Ρ flex Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ - Π½ΡΠΊΠΎΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΡΠ° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ ΠΈ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠ΅Π΄ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ.
Π ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ»Π°Π½ ΠΎΠΏΡΠΈΡΡΠ° -F --flex-support Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄
ΡΠΌΠ΅ΡΠ΅Π½ΠΈ Π² ΡΡΠΈΠ» flex ΠΈ re2c ΡΡΠΈΠ», ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ΄Π½ΠΎ.
Π Π΅ΠΆΠΈΠΌΡΡ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Flex ΡΡΠ΄ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π½ΠΎΠ² ΠΊΠΎΠ΄,
Π½ΠΎ re2c ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π·Π° ΠΎΠ±ΡΠ°ΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. -
Π‘Π΅Π³Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Π·Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»Π°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ /
ΠΏΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΈ,
Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ UTF8). -
ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Π²Π΅ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ: re2c ΠΏΡΡΠ²ΠΎ ΡΡΠ·Π΄Π°Π²Π° Π²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΡΠ°ΠΉΠ»
ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² Π½Π΅Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π°
Π΅Π΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. -
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΠΎΠΏΡΠ»Π½Π΅Π½Π° ΠΈ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½Π°; ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π±ΡΡ Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ
Π³Π»Π°Π²Π° ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΠ»Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΡΡΠ΅ΡΠ°
ΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΠΊΡΠ°Ρ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΠΎΠ²Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ ΡΡΠ±ΠΈΡΠ° Π²ΡΠ² ΡΠΎΡΠΌΡΠ»ΡΡΠ°
ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°
Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΈ (Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΈ Π² ΠΎΠ½Π»Π°ΠΉΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°).
ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΡΠ»Π°Π±ΠΈ ΠΎΠΏΠΈΡΠΈ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠ°ΠΉΡΠ° Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈ. -
ΠΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, re2c ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈ ΠΏΠΎ-ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΠΎΠ΄ΡΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΠ΅ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ Π² Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° ΠΈ
ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ --enable-debug.
Π’ΠΎΠ²Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ ΠΎΡΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ - ΠΏΠΎΡΡΠΈ ΡΡΠ»Π° Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠ°ΠΊΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ, Π±Π΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½Π° ΡΠ°ΠΌΠΊΠ° ΠΈ ΠΏΠΈΡΠ°Π½Π΅
ΡΡΠ°ΡΠΈΠΈ βΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° POSIX ΠΏΡΠΈ NFAβ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ°ΡΠΈΡΡΠ°, ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libre2c
(ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ²Π΅ΡΠ΅ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΎΡ ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅
--enable-libs). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π΅ Π΅ Π·Π°ΠΌΠΈΡΠ»Π΅Π½Π° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ°
ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ RE2, Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ (ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² re2c ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ).
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ²Π΅ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° re2c Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ
Π° ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ,
ΠΈ ΠΊΡΠΌ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ Π·Π° ΠΈΠ΄Π΅ΠΈ, Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΡΡΠΏΠΊΠΈ, ΠΌΠΎΡΠ°Π» ΠΈ Ρ.Π½. ;]
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru