ื‘ื™ื•ื ืฉื ื™, 20 ื‘ื™ื•ืœื™, ืฉื•ื—ืจืจ re2c, ืžื—ื•ืœืœ ืžื ืชื— ืžื™ืœื•ื ื™ ืžื”ื™ืจ.
ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉืคืช Go
    (ืžื•ืคืขืœ ืื• ืขืœ ื™ื“ื™ ื”ืืคืฉืจื•ืช --lang go ืขื‘ื•ืจ re2c, ืื• ื›ืชื•ื›ื ื™ืช re2go ื ืคืจื“ืช).
    ืชื™ืขื•ื“ ืขื‘ื•ืจ C ื•-Go ื ื•ืฆืจ ืžืื•ืชื• ื˜ืงืกื˜, ืืš ืขื ื˜ืงืกื˜ ืฉื•ื ื”
    ื“ื•ื’ืžืื•ืช ืงื•ื“. ืชืช-ืžืขืจื›ืช ื™ืฆื™ืจืช ื”ืงื•ื“ ื‘-re2c ืขื•ืฆื‘ื” ืžื—ื“ืฉ ืœื—ืœื•ื˜ื™ืŸ, ืืฉืจ
    ืืžื•ืจ ืœื”ืงืœ ืขืœ ื”ืชืžื™ื›ื” ื‘ืฉืคื•ืช ื—ื“ืฉื•ืช ื‘ืขืชื™ื“.

  • ื ื•ืกืคื” ืžืขืจื›ืช ื‘ื ื™ื™ื” ื—ืœื•ืคื™ืช ืขื‘ื•ืจ CMake (ืชื•ื“ื” ligfx!).
    ื ื™ืกื™ื•ื ื•ืช ืœืชืจื’ื re2c ืœ- CMake ื ืขืฉื• ื›ื‘ืจ ื–ืžืŸ ืจื‘, ืื‘ืœ ืœืคื ื™ ligfx ืืฃ ืื—ื“
    ื”ืฆื™ืข ืคืชืจื•ืŸ ืžืœื.
    ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื”ื™ืฉื ื” ื‘-Autotools ืžืžืฉื™ื›ื” ืœื”ื™ื•ืช ื ืชืžื›ืช ื•ืœื”ืฉืชืžืฉ,
    ื•ื‘ืขืชื™ื“ ื”ื ืจืื” ืœืขื™ืŸ ืื™ืŸ ืชื•ื›ื ื™ื•ืช ืœื ื˜ื•ืฉ ืื•ืชื• (ื‘ื™ืŸ ื”ืฉืืจ ื›ื“ื™ ืœื ืœื™ืฆื•ืจ
    ื‘ืขื™ื•ืช ืขื‘ื•ืจ ืžืคืชื—ื™ ื”ืคืฆื”, ื‘ื™ืŸ ื”ืฉืืจ ื‘ื’ืœืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื”ื™ืฉื ื”
    ื™ืฆื™ื‘ ื™ื•ืชืจ ื•ืชืžืฆื™ืชื™ ื™ื•ืชืจ ืžื”ื—ื“ืฉ).
    ืฉืชื™ ื”ืžืขืจื›ื•ืช ื ื‘ื“ืงื•ืช ื‘ืื•ืคืŸ ืจืฆื™ืฃ ื‘ืืžืฆืขื•ืช Travis CI.

  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืงื•ื“ ืžืžืฉืง ื‘ืชืฆื•ืจื•ืช ื‘ืขืช ื”ืฉื™ืžื•ืฉ
    API ื’ื ืจื™. ื‘ืขื‘ืจ, ืจื•ื‘ ืžืžืฉืงื™ ื”-API ื”ื™ื• ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืžื•ื’ื“ืจื™ื ื‘ื˜ื•ืคืก
    ืคื•ื ืงืฆื™ื•ืช ืื• ืคืงื•ื“ื•ืช ืžืืงืจื• ืฉืœ ืคื•ื ืงืฆื™ื•ืช. ื›ืขืช ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืื•ืชื ื‘ืฆื•ืจื” ืฉืจื™ืจื•ืชื™ืช
    ืฉื•ืจื•ืช ืขื ืคืจืžื˜ืจื™ ืชื‘ื ื™ืช ื‘ืขืœื™ ืฉื ื›ืžื• @@{name} ืื• ืจืง @@ (ืื
    ื™ืฉ ืจืง ืคืจืžื˜ืจ ืื—ื“ ื•ืื™ืŸ ืื™ ื‘ื”ื™ืจื•ืช). ืกื’ื ื•ืŸ ื”-API ืžื•ื’ื“ืจ ืขืœ ื™ื“ื™ ื”ืชืฆื•ืจื”
    re2c:api:style (ืขืจืš ื”ืคื•ื ืงืฆื™ื•ืช ืžืฆื™ื™ืŸ ืกื’ื ื•ืŸ ืคื•ื ืงืฆื™ื•ื ืœื™, ื•-free-form ืžืฆื™ื™ืŸ ืกื’ื ื•ืŸ ืฉืจื™ืจื•ืชื™).

  • ื”ืคืขื•ืœื” ืฉืœ ืืคืฉืจื•ืช -c, --start-conditions ืฉื•ืคืจื”, ื•ืžืืคืฉืจืช ืœืฉืœื‘ ื›ืžื”
    lexers ืžื—ื•ื‘ืจื™ื ื‘ื‘ืœื•ืง re2c ืื—ื“. ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ
    ื‘ืœื•ืงื™ื ืจื’ื™ืœื™ื ื™ื—ื“ ืขื ืžื•ืชื ื™ื ื•ืฆื™ื™ืŸ ืžืกืคืจ ืžื•ืชื ื™ื ืœื ืงืฉื•ืจื™ื
    ื‘ืœื•ืงื™ื ื‘ืงื•ื‘ืฅ ืื—ื“.
    ืคืขื•ืœื” ืžืฉื•ืคืจืช ืฉืœ ื”ืืคืฉืจื•ืช -r, --reuse (ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืงื•ื“ ืžื‘ืœื•ืง ืื—ื“
    ื‘ื‘ืœื•ืงื™ื ืื—ืจื™ื) ื‘ืฉื™ืœื•ื‘ ืขื ื”ืืคืฉืจื•ื™ื•ืช -c, --start-conditions ื•-f, --storable-state
    (ืœืงืกืจ ืžืžืœื›ืชื™ ืฉื ื™ืชืŸ ืœื”ืคืจื™ืข ื‘ื›ืœ ื ืงื•ื“ื”
    ื•ืœื”ืžืฉื™ืš ื‘ื‘ื™ืฆื•ืข ืžืื•ื—ืจ ื™ื•ืชืจ).

  • ืชื™ืงืŸ ื‘ืื’ ื‘ืืœื’ื•ืจื™ืชื ืกื•ืฃ ื”ืงืœื˜ ืฉื”ืชื•ื•ืกืฃ ืœืื—ืจื•ื ื”
    (ื—ื•ืง EOF), ืฉื‘ืžืงืจื™ื ื ื“ื™ืจื™ื ื”ื•ื‘ื™ืœ ืœืขื™ื‘ื•ื“ ืฉื’ื•ื™
    ื—ื•ืงื™ื ื—ื•ืคืคื™ื.

  • ืชื”ืœื™ืš ื”ืืชื—ื•ืœ ืคื•ืฉื˜. ื‘ืขื‘ืจ, ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื ื™ืกืชื” ืœืžืฆื•ื ื›ื‘ืจ ื‘ืื•ืคืŸ ื“ื™ื ืžื™
    ืžื‘ื ื” re2c ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื‘ื ื•ืช ืืช ืขืฆืžื• ืžื—ื“ืฉ.
    ื–ื” ื”ื‘ื™ื ืœืชืœื•ืช ืฉื’ื•ื™ื” (ืฉื›ืŸ ื’ืจืฃ ื”ืชืœื•ืช ื”ื™ื”
    ื“ื™ื ืžื™, ืฉืจื•ื‘ ืžืขืจื›ื•ืช ื”ื‘ื ื™ื™ื” ืœื ืื•ื”ื‘ื•ืช).
    ืขื›ืฉื™ื•, ื›ื“ื™ ืœื‘ื ื•ืช ืžื—ื“ืฉ lexers, ืืชื” ืฆืจื™ืš ื‘ืžืคื•ืจืฉ
    ื”ื’ื“ืจ ืืช ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื•ื”ื’ื“ืจ ืืช ื”ืžืฉืชื ื” RE2C_FOR_BUILD.

ืชื•ื“ื” ืœื›ืœ ืžื™ ืฉื”ืฉืชืชืฃ ื‘ื”ื›ื ืช ื”ืžื”ื“ื•ืจื” ื”ื–ื•!

ืžืงื•ืจ: linux.org.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”