αα αααααα»ααα ααΈ 2 ααααΈα αΆ ααΆαα ααααααΆααα re2c αααααΆα’ααααααααΎααααα₯ααα·αααααααααΆααα·ααΆα lexical αααααΆααααΆααΆ C αα·α C ++ ααααΌαααΆαα ααααααΆαα Re2c ααααΌαααΆαααααααααα»αααααΆα 1993 ααα Peter Bamboulis ααΆαααΆαααΈααα·αααααααααΆααα·ααΆα lexical ααΏαααααΆαα ααααααααΆααααΈαααΆαααΈαααααΎααααααααααααααααΏαααααΌααααααΆααααααΎα αα·αα ααα»α αααααΆααα’αααααααΎαααα’αΆα αααααααα»αααΈααααααΆ αααα’αα»ααααΆαα±ααα’ααααα·ααΆαααΆααααα½α αα·αααΆαααααα·αααααΆααααααααα αααα»αααΌαααααΆαααΌααααααΆαααααΆααα α αΆααααΆααααΈαααααααα αααααααααααααΌαααΆααααααΎαα‘αΎαααααα αααα α αΎαααααααααΆαααΆαααα·ααΆαααααΆααααΆααα·ααααα αα·αααααΆαααααΆααααα»ααα·αααααααααΆααααααααΌαααΆα αα·ααααΆαααΈααααααααααα
ααΆαα αααααααα·αααααΆααααα αααα»ααααα 1.2α
-
ααΆααααααααα·ααΈααααΈ (ααΆαααα) ααΎααααΈαα·αα·αααααΎαααΆααααα αααααα·αααααααααα αΌα
(EOF rule ααΆααΆααΆα’ααααααα)α
αααααΆααααΆαααα ααΆαααααααα ααΆαααααααα re2c:eof ααααΌαααΆαααααααα
α’αα»ααααΆαα±ααα’αααααααΎαααΎααα½α’ααααααααΆααΈα,
αα·αα αααΆαα $ αα·ααααααααΆααααααα·αααΎ lexer
ααΆαααΆααααα α»ααααα αααααα·αααααααααα αΌααααααααααα
ααΆαααααααα·ααΆααααα re2c αααααααΌααααααΎααααα·ααΈααΆααααααααααααααΆααααΆα αααΎααααααΆαα
α α»ααααα ααααααΆαα»α αΌαααΆαααΆααα»ααααααααααΆαααα»αααΆαααααα ααααα·αααααΆα αα·αααΆαααΆαααα
αααααα·ααΈα αα·ααΈααΆαααααααααΈαααααααΌαααΆααα ααΆα‘αΎαααΎααααΈααααα½αααΆααααααααΌα ααα
ααααααααααα ααααΆαααααα·αααααΆα αα·αα’αΆα α’αα»ααααααΆααααΆαααΌααααΌααΆαα αα·ααΈα αΆαα
αα ααααααΎαααΆα α αΎαα’αΆα ααααΌαααΆααααααα α·ααααα αααα»αααααΈααααα -
ααΆααααααααααααααΆααααα»αααΆααααα αΌαα―αααΆαααΆααααα αααααααΎααΆαααααΆα
/*!include:re2c "file.re" */ ααα file.re
αααααΊααΆαααααα―αααΆααα½ααααα αΌαα Re2c ααααΎαα―αααΆααα αααα»αααα―αααΆααα½αααΆαα,
ααααΌα ααΆαα αααα»ααααααΈααααΌααααααΆααααααΆαααααααααΎαααααΎα -I α
α―αααΆαααααα½ααααα αΌαα’αΆα αα½ααααα αΌαα―αααΆαααααααααα
Re2c αααααα―αααΆα "αααααααΆα" αα αααα»ααα½ααααα αΌα/αα
αααααα - ααΆααααΌαααΆαααααααΉαααΆαα·αααααααΆαααααααααααΉααααα»ααα ααΈααα
ααααααααααααΆ α’αααΈαα½αααΌα ααΆαααααΆααααααααααΆαα
αα αΌαααααααααααα ααΆαααααΎαααααααααα α―αααΆααα½ααααααΆααα·αααααααααααααααΌααΈααΌαααααΌαααΆαααααααα -
ααΆααααααααααααααΆααααα»αααΆααααααΎαα―αααΆαααααααΆαααααααΆα
ααΆαα·ααΆαααααααΎαααααΎα -t --type-header (α¬αααααα
ααΆαααααααα ααΆαααααααα) αα·αααΆαααααΆαααααΈ /*!header:re2c:on*/ αα·α
/*!header:re2c:off*/ α ααΆα’αΆα ααΆααααααααααααα»αααααΈααα
αα αααααα re2c ααααΌαααΆααααααΎααα·αααααααα’ααα αα ααΆαααααααα αα·ααααΆααααΌα
ααααΎαααα»αα―αααΆααααααααααααααα -
α₯α‘αΌαααα Re2c αααα’αααα UTF8 αα·αααααΆαααα½α’αααααα αααα»αααααααααααααΆα
ααΆαααααΆαααΎα re2c αααααααααααΌα ααΆ "βx βy" ααΆα
ααααΆαααααα½α’αααα ASCII 1 αααΈα e2 88 80 78 20 e2 88 83 79
(αααααΌαααααααααααΆααα½α) α αΎαα’αααααααΎααααΆααααααΌαααα α ααααΈαα½α’ααααααΌααΈααΌααααααα
"u2200x u2203y" α αααααΊααΆααΆααα’αΆαααα’α½αααααΆαα αα·αααΉαααααΆααα·αααααααααΆααααα»αααααΆα αααΎα
α’αααααααΎααααΆαα (αααα αΆαααααααΆαααΆαααααα α»αααα)α ααΌα ααααβα₯α‘αΌαααα
re2c ααααααααααΎα --input-encoding ,
αααα’αα»ααααΆαα±ααα’αααααααΆααααααΌαα₯αα·ααΆαα αα·αααα "β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