Π ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ, 20 ΡΠ»ΠΈ, Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° re2c β Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π·Π° Π±ΡΡΠ·ΠΈ Π»Π΅ΠΊΡΠΈΠΊΠ°Π»Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° Go
(Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ΅ ΠΈΠ»ΠΈ Ρ ΠΎΠΏΡΠΈΡΡΠ° βlang go Π·Π° re2c, ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° re2go).
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π·Π° C ΠΈ Go ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΡΠ΅ΠΊΡΡ, Π½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ
ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΊΠΎΠ΄. ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π² re2c Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°, ΠΊΠΎΠ΅ΡΠΎ
ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅.-
ΠΠΏΠΈΡΠΈ Π·Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° re2c Π½Π° CMake ΡΠ° ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΎΡΠ΄Π°Π²Π½Π°, Π½ΠΎ Π΄ΠΎ ligfx Π½ΠΈΠΊΠΎΠΉ Π½Π΅
Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΡΠ»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π‘ΡΠ°ΡΠΈΡΡ ΡΠ±ΠΎΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π½Π° Autotools ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°,
ΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΠΎ Π±ΡΠ΄Π΅ΡΠ΅ Π½ΡΠΌΠ° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°Π·Π²Π°ΠΌΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ (ΠΎΡΡΠ°ΡΡΠΈ Π·Π° Π΄Π° Π½Π΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, ΠΎΡΡΠ°ΡΡΠΈ Π·Π°ΡΠΎΡΠΎ ΡΡΠ°ΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅
Π΅ ΠΏΠΎ-ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ΅Π½ ΠΎΡ Π½ΠΎΠ²ΠΈΡ).
Π Π΄Π²Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ²Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Travis CI. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅Π½ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π°
ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΎ ΠΠΠ (generic API). ΠΡΠ΅Π΄ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΠΠ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ° Π½Π°
ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ. Π‘Π΅Π³Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ
Π½ΠΈΠ·ΠΎΠ²Π΅ Ρ ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΎΡ Π²ΠΈΠ΄Π° @@{name} ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ @@ (Π°ΠΊΠΎ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Π΅ Π΅Π΄ΠΈΠ½ ΠΈ Π½ΡΠΌΠ° Π½Π΅ΡΡΠ½ΠΎΡΠ°). Π‘ΡΠΈΠ»ΡΡ Π½Π° ΠΠΠ ΡΠ΅ Π·Π°Π΄Π°Π²Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°
re2c:api:style (ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° functions ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΡΡΠΈΠ», Π° free-form β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈΡ).ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° -c, βstart-conditions, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ
Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΡΠ·Π°Π½ΠΈ Π»Π΅ΠΊΡΠ΅ΡΠ° Π² Π΅Π΄ΠΈΠ½ re2c-Π±Π»ΠΎΠΊ. Π‘Π΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π°ΡΠ΅Π΄ Ρ ΡΡΠ»ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΈ
Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ».
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° -r, βreuse (ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΎΡ Π΅Π΄ΠΈΠ½ Π±Π»ΠΎΠΊ
Π² Π΄ΡΡΠ³ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅) Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΎΠΏΡΠΈΠΈΡΠ΅ -c, βstart-conditions ΠΈ -f, βstorable-state
(Π»Π΅ΠΊΡΠ΅Ρ ΡΡΡ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ
ΠΈ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ).ΠΡΡΡΡΠ°Π½Π΅Π½Π° Π΅ Π³ΡΠ΅ΡΠΊΠ° Π² Π½Π°ΡΠΊΠΎΡΠΎ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΡΠ°Ρ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ
(ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° EOF), ΠΊΠΎΡΡΠΎ Π² ΡΠ΅Π΄ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ Π²ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
Π½Π° ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠΈ ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°.ΠΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π΅ ΠΎΠΏΡΠΎΡΡΠ΅Π½. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ Π²Π΅ΡΠ΅
ΡΡΠ±ΡΠ°Π½ΠΈΡΡ re2c, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΡΠ΅Π±Π΅ ΡΠΈ.
Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΡΡΠΉ ΠΊΠ°ΡΠΎ Π³ΡΠ°ΡΠΈΠΊΡΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠ°Π²Π°ΡΠ΅
Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π΅ Ρ Π°ΡΠ΅ΡΠ²Π°Ρ).
Π‘Π΅Π³Π° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π»Π΅ΠΊΡΠ΅ΡΠΈΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ
Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° RE2C_FOR_BUILD.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ°ΡΡΠ²Π°Ρ Π° Π² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
