เปƒเบ™เบงเบฑเบ™เบชเบธเบ, เบงเบฑเบ™เบ—เบต 2 เบชเบดเบ‡เบซเบฒ, เบเบฒเบ™เบ›เปˆเบญเบ re2c, เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบŸเบฃเบตเบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ lexical เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ C เปเบฅเบฐ C ++, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. Re2c เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เปƒเบ™เบ›เบต 1993 เป‚เบ”เบ Peter Bamboulis เป€เบ›เบฑเบ™เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ lexical เบ—เบตเปˆเป„เบงเบซเบผเบฒเบ, เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบญเบทเปˆเบ™เป†เป‚เบ”เบเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบชเบฒเบกเบฒเบ”เบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเป„เบ”เป‰เบ‡เปˆเบฒเบเปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™เบกเบฒ, เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเบŠเบธเบกเบŠเบปเบ™เปเบฅเบฐเบชเบทเบšเบ•เปเปˆเป€เบ›เบฑเบ™เป€เบงเบ—เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปเบฅเบฐเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ‚เบญเบ‡เป„เบงเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ‚เบญเบ‡เบฅเบฑเบ” finite.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบซเบผเบฑเบเปƒเบ™เบฎเบธเปˆเบ™ 1.2:

  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเปƒเปเปˆ (เปเบšเบšเบ‡เปˆเบฒเบ) เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™
    (เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ” โ€œEOF ruleโ€).
    เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, re2c:eof configuration เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก,
    เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฅเบทเบญเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ terminal,
    เปเบฅเบฐเบเบปเบ”เบฅเบฐเบšเบฝเบš $ เบžเบดเป€เบชเบ”เบ—เบตเปˆเป„เบŸเป„เบซเบกเป‰เบ–เป‰เบฒ lexer
    เบกเบฒเบฎเบญเบ”เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง.
    เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, re2c เบชเบฐเบซเบ™เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบš
    เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹, เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹
    เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเบ‡เปˆเบฒเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
    เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฑเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡. เบงเบดเบ—เบตเบเบฒเบ™เป€เบเบปเปˆเบฒ
    เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเปƒเบˆเปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต.

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบกเป„เบŸเบฅเปŒเบžเบฒเบเบ™เบญเบเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡
    /*!include:re2c "file.re" */ เบšเปˆเบญเบ™เบ—เบตเปˆ file.re
    เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบฅเบงเบก. Re2c เบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเปƒเบ™เปเบŸเป‰เบกเบฅเบงเบกเบ—เบฑเบ‡เปเบŸเป‰เบกเป€เบญเบเบฐเบชเบฒเบ™,
    เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ -I.
    เป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบ›เบฐเบเบญเบšเบกเบตเป„เบŸเบฅเปŒเบญเบทเปˆเบ™เป†.
    Re2c เปƒเบซเป‰ "เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™" เป„เบŸเบฅเปŒเปƒเบ™เบ›เบฐเบเบญเบšเบกเบต / เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต
    เป‚เบ„เบ‡เบเบฒเบ™ - เบ„เบฒเบ”เบงเปˆเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบˆเบฐเบชเบฐเบชเบปเบกเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™
    เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด, เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
    เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธ, เบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™, เป„เบŸเบฅเปŒเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” Unicode เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก.

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ header เบ”เป‰เบงเบ arbitrary
    เป€เบ™เบทเป‰เบญเบซเบฒเป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ -t --type-header (เบซเบผเบทเป€เบซเบกเบฒเบฐเบชเบปเบก
    เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ) เปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเบกเปˆ /*!header:re2c:on*/ เปเบฅเบฐ
    /*!header:re2c:off*/. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆ
    เป€เบกเบทเปˆเบญ re2c เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเปเบ›, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบกเบฐเบซเบฒเบžเบฒเบ,
    เปƒเบŠเป‰เปƒเบ™เบซเบปเบงเบซเบ™เปˆเบงเบเบเบฒเบ™เปเบ›เบญเบทเปˆเบ™เป†.

  • เบ”เบฝเบงเบ™เบตเป‰ Re2c เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเปœเบฑเบ‡เบชเบท UTF8 เปเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด.
    เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, re2c parses เป€เบŠเบฑเปˆเบ™ "โˆ€x โˆƒy" เป€เบ›เบฑเบ™.
    เบฅเบณเบ”เบฑเบšเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ ASCII 1-เบšเบดเบ” e2 88 80 78 20 e2 88 83 79
    (เบฅเบฐเบซเบฑเบ” hex), เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบ•เป‰เบญเบ‡เบซเบ™เบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ Unicode เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡:
    "u2200x u2203y". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบเบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเป†เบ„เบปเบ™
    เบœเบนเป‰เปƒเบŠเป‰ (เป€เบ›เบฑเบ™เบซเบผเบฑเบเบ–เบฒเบ™เป‚เบ”เบเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ bug เบ„เบปเบ‡เบ—เบตเปˆ). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™
    re2c เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบ --input-encoding ,
    เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบžเบถเบ”เบ•เบดเบเบณ เปเบฅเบฐเบงเบดเป€เบ„เบฒเบฐ "โˆ€x โˆƒy" เป€เบ›เบฑเบ™
    2200 78 20 2203 79.

  • เบ”เบฝเบงเบ™เบตเป‰ Re2c เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบšเบฅเบฑเบญเบ re2c เบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เป‚เบซเบกเบ” -r --reuse.
    เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ”เบงเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบผเบฒเบเบ•เบฑเบ™เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
    เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆ.

  • เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เปเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
    เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ --location-format เปƒเปเปˆ . เบฎเบนเบšเปเบšเบš GNU เบ–เบทเบเบชเบฐเปเบ”เบ‡
    เป€เบ›เบฑเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ:line:column:, เปเบฅเบฐเบฎเบนเบšเปเบšเบš MSVC เป€เบ›เบฑเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ(เปเบ–เบง,เบ–เบฑเบ™).
    เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบš IDE lovers.
    เบ—เบฒเบ‡เป€เบฅเบทเบญเบ --verbose เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเป„เบŠเบŠเบฐเบ™เบฐเบชเบฑเป‰เบ™เบ–เป‰เบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”.

  • เบฎเบนเบšเปเบšเบš "เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰" เบเบฑเบš flex เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡ - เบšเบฒเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเบฐ
    เบญเบฑเบ™เบ”เบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบซเบฒเบเบฒเบ.
    เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -F --flex-support เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”
    เบ›เบฐเบชเบปเบกเปƒเบ™เบฎเบนเบšเปเบšเบš flex เปเบฅเบฐเปเบšเบš re2c, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เปเบเบเบงเบดเป€เบ„เบฒเบฐเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบฅเบฑเบเบ™เป‰เบญเบ.
    เบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡ Flex เบšเปเปˆเบ„เปˆเบญเบเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ,
    เปเบ•เปˆ re2c เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡.

  • เป‚เบ•เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบซเบฑเบเบฅเบปเบšเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ / เบ•เบญเบ™เบ™เบตเป‰เบ™เบณเปƒเบŠเป‰
    เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเปเบฅเบฐเบ™เบตเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ,
    เบ–เป‰เบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบ•เบปเบงเปเบ› (เบ•เบปเบงเบขเปˆเบฒเบ‡ UTF8).

  • เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™: re2c เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเบเปˆเบญเบ™
    เปเบฅเบฐเบ‚เบฝเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบชเปˆเบกเบฑเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเป„เบ›เบซเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
    เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบซเบ™เบถเปˆเบ‡.

  • เป€เบญเบเบฐเบชเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ; เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก
    เบšเบปเบ” เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบทเปˆเบก buffer เป„เบ”เป‰
    ะธ เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™.
    เป€เบญเบเบฐเบชเบฒเบ™เปƒเบซเบกเปˆเปเบกเปˆเบ™เป€เบเบฑเบšเบเปเบฒเบขเบนเปˆเปƒเบ™เปเบšเบšเบŸเบญเบก
    เบ„เบนเปˆโ€‹เบกเบทโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เปเบšเบšโ€‹
    เบเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡ (เปเบซเบผเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™ manpage เปเบฅเบฐเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒ).
    เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบšเปเปˆเบ”เบตเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบš.

  • เบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, re2c เป„เบ”เป‰เบกเบฒเบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบเบงเปˆเบฒ
    เบเบฒเบ™เบ”เบตเบšเบฑเบ เบฅเบฐเบซเบฑเบ”เบ”เบตเบšเบฑเบเบ•เบญเบ™เบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปƒเบ™เบฅเบธเป‰เบ™เบชเป‰เบฒเบ‡ เปเบฅเบฐ
    เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ --enable-debug.

เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ™เบตเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™ - เป€เบเบทเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ›เบต.
เป€เบงเบฅเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบ•เบฒเบกเป€เบ„เบตเบ, เปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบญเบšเบ—เบดเบ”เบชเบฐเบ”เบตเปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™
เบšเบปเบ”เบ„เบงเบฒเบก "เบเบฒเบ™เบชเบฐเบเบฑเบ”เป€เบญเบปเบฒเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบเปˆเบญเบ POSIX เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™ NFA".
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบปเบ”เบฅเบญเบ‡ libre2c
(เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
--enable-libs). เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบšเปเปˆเป„เบ”เป‰ conceived เป€เบ›เบฑเบ™เบ„เบนเปˆเปเบ‚เปˆเบ‡เบเบฑเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง
เป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบฑเปˆเบ™ RE2, เปเบ•เปˆเป€เบ›เบฑเบ™เป€เบงเบ—เบตเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ
algorithms (เบŠเบถเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ re2c เบซเบผเบทเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†).
เบกเบฑเบ™เบเบฑเบ‡เบชเบฐเบ”เบงเบเบˆเบฒเบเบˆเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†.

เบ‚เปเบ‚เบญเบšเปƒเบˆเบˆเบฒเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ re2c เบเบฑเบšเบ—เบธเบเบ„เบปเบ™เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™,
เปเบฅเบฐโ€‹เบ•เปเปˆโ€‹เบŠเบธเบกโ€‹เบŠเบปเบ™โ€‹เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ™เบงโ€‹เบ„เบงเบฒเบกโ€‹เบ„เบดเบ”โ€‹, เบšเบปเบ”โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™ bugโ€‹, เป€เบžเบตเป‰เบกโ€‹, เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบชเบดเบ™โ€‹เบ—เปเบฒโ€‹, เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹. ;]

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™