re2c เชฒเซ‡เช•เซเชธเชฐ เชœเชจเชฐเซ‡เชŸเชฐ 2.0 เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ

เชธเซเชฅเชพเชจ เชฒเซ€เชงเซเช‚ เชชเซเชฐเช•เชพเชถเชจ re2c 2.0, C เช…เชจเซ‡ C++ เชญเชพเชทเชพเช“ เชฎเชพเชŸเซ‡ เชฎเชซเชค เชฒเซ‡เช•เซเชธเชฟเช•เชฒ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชœเชจเชฐเซ‡เชŸเชฐ. re2c เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเซ‚เชณ เชฐเซ‚เชชเซ‡ 1993 เชฎเชพเช‚ เชชเซ€เชŸเชฐ เชฌเชฎเซเชฌเซ‹เชฒเชฟเชธ เชฆเซเชตเชพเชฐเชพ เช–เซ‚เชฌ เชœ เชเชกเชชเซ€ เชฒเซ‡เช•เซเชธเชฟเช•เชฒ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹เชจเชพ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชœเชจเชฐเซ‡เชŸเชฐ เชคเชฐเซ€เช•เซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒเชพ เช•เซ‹เชกเชจเซ€ เชเชกเชช เช…เชจเซ‡ เช…เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฒเชตเชšเซ€เช• เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เช…เชจเซเชฏ เชœเชจเชฐเซ‡เชŸเชฐเชฅเซ€ เช…เชฒเช— เช›เซ‡ เชœเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹เชจเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เช…เชจเซ‡ เช…เชธเชฐเช•เชพเชฐเช• เชฐเซ€เชคเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เชคเซ‡เชฎเชพเช‚ เชเชฎเซเชฌเซ‡เชก เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช•เซ‹เชก เชฌเซ‡เช. เชคเซเชฏเชพเชฐเชฅเซ€, เช† เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชฎเซเชฆเชพเชฏ เชฆเซเชตเชพเชฐเชพ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เช”เชชเชšเชพเชฐเชฟเช• เชตเซเชฏเชพเช•เชฐเชฃ เช…เชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชฐเชพเชœเซเชฏ เชฎเชถเซ€เชจเซ‹เชจเชพ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชชเซเชฐเชฏเซ‹เช—เซ‹ เช…เชจเซ‡ เชธเช‚เชถเซ‹เชงเชจ เชฎเชพเชŸเซ‡เชจเซเช‚ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฌเชจเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡.

เชฎเซเช–เซเชฏ เชซเซ‡เชฐเชซเชพเชฐเซ‹:

  • เช—เซ‹ เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ (เช•เชพเช‚ เชคเซ‹ re2c เชฎเชพเชŸเซ‡ เช…เชฅเชตเชพ เช…เชฒเช— re2go เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชคเชฐเซ€เช•เซ‡ โ€œ--lang goโ€ เชตเชฟเช•เชฒเซเชช เชฆเซเชตเชพเชฐเชพ เชธเช•เซเชทเชฎ). C เช…เชจเซ‡ Go เชฎเชพเชŸเซ‡เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชเช• เชœ เชŸเซ‡เช•เซเชธเซเชŸเชฎเชพเช‚เชฅเซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชฟเชตเชฟเชง เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชธเชพเชฅเซ‡. re2c เชฎเชพเช‚ เช•เซ‹เชก เชœเชจเชฐเซ‡เชถเชจ เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชซเชฐเซ€เชฅเซ€ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชจเชตเซ€ เชญเชพเชทเชพเช“เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ‡.
  • CMake เชชเชฐ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เช‰เชฎเซ‡เชฐเชพเชˆ (เช†เชญเชพเชฐ ligfx!). re2c เชจเซ‡ CMake เชฎเชพเช‚ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเชตเชพเชจเชพ เชชเซเชฐเชฏเชพเชธเซ‹ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡, เชชเชฐเช‚เชคเซ ligfx เชธเซเชงเซ€ เช•เซ‹เชˆเช เชธเช‚เชชเซ‚เชฐเซเชฃ เช‰เช•เซ‡เชฒเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช•เชฐเซ€ เชจเชฅเซ€. เชœเซ‚เชจเซ€ เช“เชŸเซ‹เชŸเซ‚เชฒเซเชธ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชจเซเช‚ เชšเชพเชฒเซ เช›เซ‡, เช…เชจเซ‡ เชจเชœเซ€เช•เชจเชพ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชคเซ‡เชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชจเซ€ เช•เซ‹เชˆ เชฏเซ‹เชœเชจเชพ เชจเชฅเซ€ (เช…เช‚เชถเชคเชƒ เชตเชฟเชคเชฐเชฃ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เช•เชฐเชตเชพเชจเซเช‚ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เช…เช‚เชถเชคเชƒ เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‚เชจเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เชจเชตเซ€ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเซเชฅเชฟเชฐ เช…เชจเซ‡ เชตเชงเซ เชธเช‚เช•เซเชทเชฟเชชเซเชค เช›เซ‡. ). เชŸเซเชฐเซ‡เชตเชฟเชธ CI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเช‚เชจเซ‡ เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซเช‚ เชธเชคเชค เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เชธเชพเชฎเชพเชจเซเชฏ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹เชฎเชพเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช•เซ‹เชกเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชพเชˆ. เชชเชนเซ‡เชฒเชพเช‚, เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ API เชจเซ‡ เชซเช‚เช•เซเชถเชจ เช…เชฅเชตเชพ เชซเช‚เช•เซเชถเชจ เชฎเซ‡เช•เซเชฐเซ‹เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเซเช‚ เชชเชกเชคเซเช‚ เชนเชคเซเช‚. เชนเชตเซ‡ เชคเซ‡เช“ โ€œ@@{name}โ€ เช…เชฅเชตเชพ เชซเช•เซเชค โ€œ@@โ€ (เชœเซ‹ เชคเซเชฏเชพเช‚ เชฎเชพเชคเซเชฐ เชเช• เชชเชฐเชฟเชฎเชพเชฃ เชนเซ‹เชฏ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เช…เชธเซเชชเชทเซเชŸเชคเชพ เชจ เชนเซ‹เชฏ เชคเซ‹) เชจเชพเชฎเชจเชพ เชจเชฎเซ‚เชจเชพเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชพเชฅเซ‡ เชฎเชจเชธเซเชตเซ€ เชถเชฌเซเชฆเชฎเชพเชณเชพเช“เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. API เชถเซˆเชฒเซ€ re2c:api:เชถเซˆเชฒเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฆเซเชตเชพเชฐเชพ เชธเซเชฏเซ‹เชœเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡ (เชซเช‚เช•เซเชถเชจ เชตเซ‡เชฒเซเชฏเซ เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เชถเซˆเชฒเซ€เชจเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชซเซเชฐเซ€-เชซเซ‹เชฐเซเชฎ เชฎเชจเชธเซเชตเซ€ เชถเซˆเชฒเซ€เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡).
  • โ€œ-cโ€, โ€œโ€”start-conditionsโ€ เชตเชฟเช•เชฒเซเชชเชจเซเช‚ เช‘เชชเชฐเซ‡เชถเชจ เชฌเชนเซ‡เชคเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เชเช• re2c เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เช˜เชฃเชพ เช‡เชจเซเชŸเชฐเช•เชจเซ‡เช•เซเชŸเซ‡เชก เชฒเซ‡เช•เซเชธเชฐเซเชธเชจเซ‡ เชœเซ‹เชกเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชนเชตเซ‡ เชคเชฎเซ‡ เชถเชฐเชคเซ€ เชฌเซเชฒเซ‹เช•เซเชธเชจเซ€ เชธเชพเชฅเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชฌเซเชฒเซ‹เช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชเช• เชซเชพเช‡เชฒเชฎเชพเช‚ เช˜เชฃเชพ เช…เชธเช‚เชฌเช‚เชงเชฟเชค เชถเชฐเชคเซ€ เชฌเซเชฒเซ‹เช•เซเชธเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. "-c", "--start-เชถเชฐเชคเซ‹" เช…เชจเซ‡ "-f", "-- เชธเชพเชฅเซ‡ เชธเช‚เชฏเซ‹เชœเชจเชฎเชพเช‚ "-r", "--เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช—" เชตเชฟเช•เชฒเซเชช (เช…เชจเซเชฏ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เชเช• เชฌเซเชฒเซ‹เช•เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชกเชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช—) เชจเซ€ เชธเซเชงเชพเชฐเซ‡เชฒ เช•เชพเชฎเช—เซ€เชฐเซ€. เชธเซเชŸเซ‹เชฐเซ‡เชฌเชฒ-เชธเซเชŸเซ‡เชŸ" เชตเชฟเช•เชฒเซเชชเซ‹ (เชเช• เชธเซเชŸเซ‡เชŸเชซเซเชฒ เชฒเซ‡เช•เซเชธเชฐ เชœเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเชฎเชฏเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเช›เซ€เชฅเซ€ เช…เชฎเชฒ เชšเชพเชฒเซ เชฐเชพเช–เซ€ เชถเช•เซ‡ เช›เซ‡).
  • เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชเชจเซเชก-เช“เชซ-เช‡เชจเชชเซเชŸ (EOF เชจเชฟเชฏเชฎ) เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชฎเชพเช‚ เชฌเช—เชจเซ‡ เช เซ€เช• เช•เชฐเซเชฏเซ‹, เชœเซ‡ เชญเชพเช—เซเชฏเซ‡ เชœ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚ เช“เชตเชฐเชฒเซ‡เชชเชฟเช‚เช— เชจเชฟเชฏเชฎเซ‹เชจเซ€ เช–เซ‹เชŸเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซ‡ เช›เซ‡.
  • เชฌเซเชŸเชธเซเชŸเซเชฐเซ‡เชช เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เชชเชนเซ‡เชฒเชพเช‚, เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเชจเซ‡เชฒ re2c เชถเซ‹เชงเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชคเซ€ เชนเชคเซ€ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เช†เชจเชพเชฅเซ€ เช–เซ‹เชŸเซ€ เช…เชตเชฒเช‚เชฌเชจ เชฅเชˆ (เช•เชพเชฐเชฃ เช•เซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพ เช—เซเชฐเชพเชซ เช—เชคเชฟเชถเซ€เชฒ เชนเชคเซ‹, เชœเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเซ‹เชจเซ‡ เชชเชธเช‚เชฆ เชจเชฅเซ€). เชนเชตเซ‡, เชฒเซ‡เช•เซเชธเชฐเซเชธเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เช…เชจเซ‡ RE2C_FOR_BUILD เชšเชฒ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

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