เชธเซ‹เชฎเชตเชพเชฐ, 20 เชœเซเชฒเชพเชˆเชจเชพ เชฐเซ‹เชœ, เชเชกเชชเซ€ เชฒเซ‡เช•เซเชธเชฟเช•เชฒ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชœเชจเชฐเซ‡เชŸเชฐ, re2c เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เชฅเชฏเซเช‚.
เชฎเซเช–เซเชฏ เชซเซ‡เชฐเชซเชพเชฐเซ‹:

  • เช—เซ‹ เชญเชพเชทเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚
    (เช•เชพเช‚ เชคเซ‹ re2c เชฎเชพเชŸเซ‡ --lang go เชตเชฟเช•เชฒเซเชช เชธเชพเชฅเซ‡ เช…เชฅเชตเชพ เชเช•เชฒ re2go เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชคเชฐเซ€เช•เซ‡ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‡เชฒ เช›เซ‡).
    C เช…เชจเซ‡ Go เชฎเชพเชŸเซ‡เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชเช• เชœ เชŸเซ‡เช•เซเชธเซเชŸเชฎเชพเช‚เชฅเซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฒเช— เชธเชพเชฅเซ‡
    เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃเซ‹. re2c เชฎเชพเช‚ เช•เซ‹เชก เชœเชจเชฐเซ‡เชถเชจ เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชซเชฐเซ€เชฅเซ€ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡
    เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชจเชตเซ€ เชญเชพเชทเชพเช“เชจเซ‡ เชŸเซ‡เช•เซ‹ เช†เชชเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชตเซเช‚ เชœเซ‹เชˆเช.

  • CMake เชชเชฐ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เช‰เชฎเซ‡เชฐเชพเชˆ (เช†เชญเชพเชฐ ligfx!).
    re2c เชจเซ‡ CMake เชฎเชพเช‚ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเชตเชพเชจเชพ เชชเซเชฐเชฏเชพเชธเซ‹ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡, เชชเชฐเช‚เชคเซ ligfx เชชเชนเซ‡เชฒเชพเช‚ เช•เซ‹เชˆ
    เชธเช‚เชชเซ‚เชฐเซเชฃ เช‰เช•เซ‡เชฒ เช†เชชเซเชฏเซ‹.
    Autotools เชชเชฐ เชœเซ‚เชจเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡,
    เช…เชจเซ‡ เชจเชœเซ€เช•เชจเชพ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชคเซ‡เชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชจเซ€ เช•เซ‹เชˆ เชฏเซ‹เชœเชจเชพ เชจเชฅเซ€ (เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เชœเซ‡เชฅเซ€ เชจ เชฌเชจเซ‡
    เชตเชฟเชคเชฐเชฃ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชธเซเชฏเชพเช“, เช†เช‚เชถเชฟเช• เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‚เชจเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ
    เชจเชตเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเซเชฅเชฟเชฐ เช…เชจเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชค).
    เชŸเซเชฐเซ‡เชตเชฟเชธ CI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเช‚เชจเซ‡ เชธเชฟเชธเซเชŸเชฎเซ‹ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เชธเชคเชค เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

  • เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹เชฎเชพเช‚ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช•เซ‹เชก เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชพเชˆ
    generic API (เชธเชพเชฎเชพเชจเซเชฏ API). เชชเชนเซ‡เชฒเชพเช‚, เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ API เชจเซ‹ เชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเซ‹ เชชเชกเชคเซ‹ เชนเชคเซ‹
    เช•เชพเชฐเซเชฏเซ‹ เช…เชฅเชตเชพ เช•เชพเชฐเซเชฏ เชฎเซ‡เช•เซเชฐเซ‹. เชนเชตเซ‡ เชคเซ‡เช“ เชฎเชจเชธเซเชตเซ€ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡
    เชซเซ‹เชฐเซเชฎ @@{name} เช…เชฅเชตเชพ เชซเช•เซเชค @@ (เชœเซ‹
    เชคเซเชฏเชพเช‚ เชฎเชพเชคเซเชฐ เชเช• เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เช…เชธเซเชชเชทเซเชŸเชคเชพ เชจเชฅเซ€). API เชถเซˆเชฒเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช›เซ‡
    re2c:api:style (เชซเช‚เช•เซเชถเชจ เชตเซ‡เชฒเซเชฏเซ เชซเช‚เช•เซเชถเชจเชฒ เชธเซเชŸเชพเช‡เชฒเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชซเซเชฐเซ€-เชซเซ‹เชฐเซเชฎ เชตเซ‡เชฒเซเชฏเซ เชฎเชจเชธเซเชตเซ€ เช›เซ‡).

  • -c, --start-conditions เชตเชฟเช•เชฒเซเชชเชจเซ€ เชธเซเชงเชพเชฐเซ‡เชฒ เช•เชพเชฎเช—เซ€เชฐเซ€, เชœเซ‡ เชคเชฎเชจเซ‡ เช…เชจเซ‡เช•เชจเซ‡ เชœเซ‹เชกเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡
    เชเช• re2c เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เช‡เชจเซเชŸเชฐเช•เชจเซ‡เช•เซเชŸเซ‡เชก เชฒเซ‡เช•เซเชธเชฐเซเชธ. เชนเชตเซ‡ เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹
    เชถเชฐเชคเซ€ เชธเชพเชฅเซ‡ เชธเชฎเชพเชจเชคเชพ เชชเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชฌเซเชฒเซ‹เช•เซเชธ เช…เชจเซ‡ เช˜เชฃเชพ เช…เชธเช‚เชฌเช‚เชงเชฟเชค เชถเชฐเชคเซ€ เชธเซ‡เชŸ เช•เชฐเซ‹
    เชเช• เชซเชพเช‡เชฒเชฎเชพเช‚ เชฌเซเชฒเซ‹เช•เซเชธ.
    เชธเซเชงเชพเชฐเซ‡เชฒ -r, --เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เชตเชฟเช•เชฒเซเชชเซ‹ (เชเช• เชฌเซเชฒเซ‹เช•เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชกเชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช—
    เช…เชจเซเชฏ เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚) -c, --start-conditions เช…เชจเซ‡ -f, --storable-state เชตเชฟเช•เชฒเซเชชเซ‹ เชธเชพเชฅเซ‡ เชธเช‚เชฏเซ‹เชœเชจเชฎเชพเช‚
    (เชเช• เชธเซเชŸเซ‡เชŸเชซเซเชฒ เชฒเซ‡เช•เซเชธเชฐ เชœเซ‡ เชฎเชจเชธเซเชตเซ€ เชธเซเชฅเชพเชจ เชชเชฐ เชตเชฟเช•เซเชทเซ‡เชชเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡
    เช…เชจเซ‡ เชชเช›เซ€เชฅเซ€ เช…เชฎเชฒ เชšเชพเชฒเซ เชฐเชพเช–เซ‹).

  • เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพเชจเชพ เช…เช‚เชคเชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชตเชพ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒเชพ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชฎเชพเช‚ เชฌเช—เชจเซ‡ เช เซ€เช• เช•เชฐเซเชฏเซ‹
    (EOF เชจเชฟเชฏเชฎ), เชœเซ‡ เชญเชพเช—เซเชฏเซ‡ เชœ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚ เช–เซ‹เชŸเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡
    เช“เชตเชฐเชฒเซ‡เชชเชฟเช‚เช— เชจเชฟเชฏเชฎเซ‹.

  • เชธเชฐเชณ เชฌเซเชŸเชธเซเชŸเซเชฐเซ‡เชช เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ. เชชเชนเซ‡เชฒเชพเช‚, เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชถเซ‹เชงเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชคเซ€ เชนเชคเซ€
    re2c เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซ‹เชคเชพเชจเซ‡ เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.
    เช†เชจเชพเชฅเซ€ เช–เซ‹เชŸเซ€ เช…เชตเชฒเช‚เชฌเชจ เชฅเชˆ (เช•เชพเชฐเชฃ เช•เซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพ เช—เซเชฐเชพเชซ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซ‹
    เช—เชคเชฟเชถเซ€เชฒ, เชœเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเซ‹เชจเซ‡ เชชเชธเช‚เชฆ เชจเชฅเซ€).
    เชนเชตเซ‡, เชฒเซ‡เช•เซเชธเชฐเซเชธเชจเซ‡ เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡
    เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เช—เซ‹เช เชตเซ‹ เช…เชจเซ‡ RE2C_FOR_BUILD เชšเชฒ เชธเซ‡เชŸ เช•เชฐเซ‹.

เช† เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เชซเชพเชณเซ‹ เช†เชชเชจเชพเชฐ เชฆเชฐเซ‡เช•เชจเซ‹ เช†เชญเชพเชฐ!

เชธเซ‹เชฐเซเชธ: linux.org.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹