ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΠ΅Π»ΠΈΠ·Π° Π·Π°Π½ΡΠ»Π° ΠΏΠΎΡΡΠΈ ΡΠ΅Π»ΡΠΉ Π³ΠΎΠ΄. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, ΡΡΠ»ΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΡΡΠ°ΡΡΠΈ «
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΡΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ libre2c
(ΡΠ±ΠΎΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ configure-ΠΎΠΏΡΠΈΠ΅ΠΉ «—enable-libs»). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄ΡΠΌΠ°Π½Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ RE2, Π° ΠΊΠ°ΠΊ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² re2c ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
). Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·ΡΠΊΠ°ΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² Π²Π΅ΡΡΠΈΠΈ re2c 1.2:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ° Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
(«EOF rule»). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ «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»
(hex-ΠΊΠΎΠ΄Ρ), ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²ΡΡΡΠ½ΡΡ:
«\\u2200x \\u2203y». ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΠΎ ΡΡΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ Π±Π°Π³ ΡΠ΅ΠΏΠΎΡΡΡ). ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ
re2c ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΡΠΈΡ «—input-encoding {ascii | utf8}»,
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ «∀x ∃y» ΠΊΠ°ΠΊ
«2200 78 20 2203 79». - Re2c ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ re2c-Π±Π»ΠΎΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ «-r —reuse».
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΎΠ², ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΈΠ· Π½ΠΈΡ
Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. - ΠΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ «—location-format {gnu | msvc}». GNU-ΡΠΎΡΠΌΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ
ΠΊΠ°ΠΊ «filename:line:column:», Π° MSVC-ΡΠΎΡΠΌΠ°Ρ — ΠΊΠ°ΠΊ «filename(line,column)».
ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π»ΡΠ±ΠΈΡΠ΅Π»ΡΠΌ IDE.
Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—verbose», ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°. - ΠΠΎΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ΅ΠΆΠΈΠΌ «ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ» Ρ flex — ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°Π·Π±ΠΎΡΠ° ΠΈ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ .
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠΈΡ «-F —flex-suppor» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄
Π²ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΊΡ Π² ΡΡΠΈΠ»Π΅ flex ΠΈ Π² ΡΡΠΈΠ»Π΅ re2c, ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ.
Π Π΅ΠΆΠΈΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ flex ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅,
Π½ΠΎ re2c ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. - ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² «/» ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
Π΄ΠΎ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΌ ΡΠΈΡΠ»Π΅ ΡΠ»ΡΡΠ°Π΅Π²,
Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ UTF8). - ΠΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ: re2c ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»
ΠΈ ΠΏΠΈΡΠ΅Ρ Π² Π½Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ
ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ. - ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π΄ΠΎΠΏΠΈΡΠ°Π½Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π°; Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅
Π³Π»Π°Π²Ρ ΠΏΡΠΎhttp://re2c.org/manual/manual.html#buffer-refilling Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°
ΠΈΠΏΡΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΊΠΎΠ½Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ²Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΠ°Π½Π° Π² Π²ΠΈΠ΄Π΅
ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΉΠ³ΠΎ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°
Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ (ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² manpage ΠΈ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ).
ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ ΡΠ»Π°Π±ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΡΠ°ΠΉΡΠ° Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ . - Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², re2c ΠΎΠ±Π·Π°Π²ΡΠ»ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ
ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΡΠ½ Π² ΡΠ΅Π»ΠΈΠ·Π½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΈ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ configure-ΠΎΠΏΡΠΈΠΈ «—enable-debug».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru