አርብ፣ ኦገስት 2፣ ለC እና C++ ቋንቋዎች የቃላተ-ቃላት ተንታኞች ነፃ ጄኔሬተር የሆነው re2c ተለቀቀ። ለማስታወስ ያህል፣ re2c በ 1993 በፒተር ባምቡሊስ የተጻፈው በጣም ፈጣን የቃላት ተንታኞች የሙከራ ጀነሬተር ሆኖ ከሌሎች ጄኔሬተሮች በተፈጠረው ኮድ ፍጥነት እና ተንታኞች በቀላሉ እና በብቃት እንዲካተቱ በሚያስችል ያልተለመደ የተጠቃሚ በይነገጽ ይለያል። ነባር ኮድ መሠረት. ከዚያን ጊዜ ጀምሮ ፕሮጀክቱ በማህበረሰቡ ተዘጋጅቶ በመደበኛ ሰዋሰው እና ውሱን ግዛት ማሽኖች ለሙከራ እና የምርምር መድረክ ሆኖ ቀጥሏል።

በስሪት 1.2 ውስጥ ዋና ፈጠራዎች፡-

  • የግቤት ውሂቡን መጨረሻ ለመፈተሽ አዲስ (ቀላል) መንገድ ታክሏል።
    (እንግሊዝኛ "EOF ደንብ").
    ለዚህም፣ re2c:eof ውቅር ታክሏል፣
    የተርሚናል ቁምፊ እንዲመርጡ ያስችልዎታል ፣
    እና ሌክሰር ከሆነ የሚነድ ልዩ $ ደንብ
    በተሳካ ሁኔታ የግቤት ውሂቡ መጨረሻ ላይ ደርሷል።
    በታሪክ፣ re2c ለመፈተሽ በርካታ መንገዶችን ይሰጣል
    የግብአት መጨረሻ በውስንነት፣ ቅልጥፍና እና ቀላልነት ይለያያል
    መተግበሪያዎች. አዲሱ ዘዴ የአጻጻፍ ኮድን ለማቃለል የተቀየሰ ሲሆን, ሳለ
    ውጤታማ እና በሰፊው የሚተገበር ሆኖ ሳለ. የድሮ መንገዶች
    አሁንም ይሰራል እና በአንዳንድ ሁኔታዎች ሊመረጥ ይችላል.

  • መመሪያውን በመጠቀም ውጫዊ ፋይሎችን የማካተት ችሎታ ታክሏል።
    /*!ያካትተው፡re2c "file.re" */ የት file.re
    ይህ የማካተት ፋይል ስም ነው። Re2c የፋይል ማውጫን ጨምሮ ፋይሎችን ይፈልጋል፣
    እንዲሁም -I አማራጭን በመጠቀም በተገለጹት የመንገዶች ዝርዝር ውስጥ.
    የተካተቱ ፋይሎች ሌሎች ፋይሎችን ሊያካትቱ ይችላሉ።
    Re2c "መደበኛ" ፋይሎችን በማካተት / ማውጫ ውስጥ ያቀርባል
    ፕሮጀክት - ጠቃሚ ትርጓሜዎች እዚያ እንደሚከማቹ ይጠበቃል
    መደበኛ መግለጫዎች, በመደበኛ ቤተ-መጽሐፍት መንፈስ ውስጥ የሆነ ነገር.
    እስካሁን ድረስ፣ በሠራተኞቹ ጥያቄ፣ የዩኒኮድ ምድቦች ፍቺ ያለው አንድ ፋይል ተጨምሯል።

  • የራስጌ ፋይሎችን በዘፈቀደ የማመንጨት ችሎታ ታክሏል።
    ይዘት -t --type-header አማራጮችን በመጠቀም (ወይም ተገቢ
    ውቅሮች) እና አዲስ መመሪያዎች /*! ራስጌ: re2c: ላይ */ እና
    /*!ራስጌ:re2c:ጠፍ*/. ይህ የት ጉዳዮች ላይ ጠቃሚ ሊሆን ይችላል
    re2c ለተለዋዋጮች ፣ መዋቅሮች እና ማክሮዎች ትርጓሜዎችን ማመንጨት ሲያስፈልግ ፣
    በሌሎች የትርጉም ክፍሎች ውስጥ ጥቅም ላይ ይውላል.

  • Re2c አሁን UTF8 ቀጥተኛ ቃላትን እና የቁምፊ ክፍሎችን በመደበኛ አገላለጾች ተረድቷል።
    በነባሪ፣ re2c እንደ "∀x∃y" ያሉ አባባሎችን ይተነትናል።
    የ1-ቢት ASCII ቁምፊዎች ቅደም ተከተል e2 88 80 78 20 e2 88 83 79
    (ሄክስ ኮዶች)፣ እና ተጠቃሚዎች የዩኒኮድ ቁምፊዎችን በእጅ ማምለጥ አለባቸው፡-
    "u2200x u2203y". ይህ ለብዙዎች በጣም የማይመች እና ያልተጠበቀ ነው
    ተጠቃሚዎች (በቋሚ የሳንካ ሪፖርቶች እንደተረጋገጠው)። እና አሁን
    re2c --የግቤት-ኢኮዲንግ አማራጭን ያቀርባል ,
    ባህሪውን እንዲቀይሩ እና "∀x ∃y" እንደ እንዲተነተኑ ያስችልዎታል
    2200 78 20 2203 79.

  • Re2c አሁን መደበኛ re2c ብሎኮችን በ -r --reuse mode ውስጥ መጠቀም ያስችላል።
    የግቤት ፋይሉ ብዙ ብሎኮችን እና የተወሰኑትን ብቻ ከያዘ ይህ ምቹ ነው።
    እንደገና ጥቅም ላይ መዋል አለበት.

  • አሁን የማስጠንቀቂያዎችን እና የስህተት መልዕክቶችን ቅርጸት ማዘጋጀት ይችላሉ
    አዲሱን --location-format አማራጭን በመጠቀም . የጂኤንዩ ቅርጸት ታይቷል።
    እንደ ፋይል ስም: መስመር: አምድ: እና የ MSVC ቅርጸት እንደ ፋይል ስም (መስመር, አምድ).
    ይህ ባህሪ ለ IDE አፍቃሪዎች ጠቃሚ ሊሆን ይችላል።
    የተሳካ ከሆነ አጭር የድል መልእክት ያትማል --የቃላት ምርጫም ተጨምሯል።

  • ከተለዋዋጭ ጋር ያለው "ተኳሃኝነት" ሁነታ ተሻሽሏል - አንዳንድ የመተንተን ስህተቶች ተስተካክለዋል እና
    አልፎ አልፎ ውስጥ ትክክል ያልሆነ ኦፕሬተር ቅድሚያ.
    ከታሪክ አንጻር የ -F --flex-support አማራጭ ኮድ እንዲጽፉ ፈቅዶልዎታል።
    በተለዋዋጭ ዘይቤ እና በ re2c ዘይቤ የተቀላቀለ፣ ይህም ለመተንተን ትንሽ አስቸጋሪ ያደርገዋል።
    Flex ተኳኋኝነት ሁነታ በአዲሱ ኮድ ውስጥ እምብዛም ጥቅም ላይ አይውልም,
    ግን re2c ለኋላ ተኳኋኝነት መደገፉን ቀጥሏል።

  • የቁምፊ ክፍል ቅነሳ ኦፕሬተር / አሁን ተፈጻሚ ይሆናል።
    በብዙ ጉዳዮች ላይ ጥቅም ላይ እንዲውል የሚያስችለውን ኢንኮዲንግ ከመክፈቱ በፊት ፣
    ተለዋዋጭ ርዝመት ኢንኮዲንግ ጥቅም ላይ ከዋለ (እንደ UTF8)።

  • የውጤት ፋይል አሁን በአቶሚክ ተፈጥሯል፡ re2c በመጀመሪያ ጊዜያዊ ፋይል ይፈጥራል
    እና ውጤቱን ለእሱ ይጽፋል, እና ከዚያ ጊዜያዊውን ፋይል ወደ ውፅዓት ይለውጠዋል
    አንድ ቀዶ ጥገና.

  • ሰነዶች ተጨምረዋል እና እንደገና ተጽፈዋል; በተለይ አዲስ
    ምዕራፎች መያዣውን ስለ መሙላት
    и የግቤት ውሂብ መጨረሻን ስለመፈተሽ መንገዶች.
    አዲሱ ሰነድ እንደ የተጠናቀረ ነው።
    አጠቃላይ ባለ አንድ ገጽ መመሪያ
    ከምሳሌዎች ጋር (ተመሳሳይ ምንጮች በማንፔጅ እና በኦንላይን ሰነዶች ውስጥ ቀርበዋል).
    በስልኮች ላይ የጣቢያውን ተነባቢነት ለማሻሻል ጥቂት ሙከራዎች ተደርገዋል።

  • ከገንቢው እይታ፣ re2c የበለጠ የተሟላ ንዑስ ስርዓት አግኝቷል
    ማረም. የማረሚያ ኮድ አሁን በመልቀቂያ ግንባታዎች እና ውስጥ ተሰናክሏል።
    የማዋቀር አማራጭን --enable-debugን በመጠቀም ማንቃት ይቻላል።

ይህ ልቀት ብዙ ጊዜ ወስዷል - አንድ ዓመት ሙሉ ማለት ይቻላል።
አብዛኛው ጊዜ፣ እንደ ሁልጊዜው፣ የንድፈ ሃሳባዊ ማዕቀፍ ለማዘጋጀት እና ለመፃፍ ነበር ያሳለፈው።
መጣጥፎች "በኤንኤፍኤ ላይ ቀልጣፋ የPOSIX ንዑስ ተዛማጅ ማውጣት".
በአንቀጹ ውስጥ የተገለጹት ስልተ ቀመሮች በሙከራ ሊብሬ2c ቤተ-መጽሐፍት ውስጥ ተተግብረዋል።
(ላይብረሪውን እና ቤንችማርኮችን መገንባት በነባሪነት ተሰናክሏል እና በማዋቀር አማራጩ የነቃ ነው።
--enable-libs)። ቤተ መፃህፍቱ ለነባር ተፎካካሪ ሆኖ አልተፀነሰም።
እንደ RE2 ያሉ ፕሮጀክቶች፣ ግን እንደ አዲስ ልማት የምርምር መድረክ
አልጎሪዝም (ከዚያም በ re2c ወይም በሌሎች ፕሮጀክቶች ውስጥ ጥቅም ላይ ሊውል ይችላል).
እንዲሁም ከሙከራ፣ ከማመሳከሪያዎች እና ከሌሎች ቋንቋዎች ጋር ትስስር ለመፍጠር ምቹ ነው።

ይህ ልቀት እንዲከሰት ለረዱት ሁሉ ከ re2c ገንቢዎች እናመሰግናለን፣
እና በአጠቃላይ ለማህበረሰቡ ለሀሳቦች፣ የሳንካ ዘገባዎች፣ መጠገኛዎች፣ ሞራል ወዘተ. ;]

ምንጭ: linux.org.ru

አስተያየት ያክሉ