జూలై 20, సోమవారం, ఫాస్ట్ లెక్సికల్ ఎనలైజర్ జనరేటర్ అయిన re2c విడుదల చేయబడింది.
ప్రధాన మార్పులు:
-
గో భాషకు మద్దతు జోడించబడింది
(re2c కోసం --lang go ఎంపికతో లేదా స్వతంత్ర re2go ప్రోగ్రామ్గా ప్రారంభించబడింది).
C మరియు Go కోసం డాక్యుమెంటేషన్ ఒకే వచనం నుండి రూపొందించబడింది, కానీ విభిన్నమైనది
కోడ్ ఉదాహరణలు. re2cలోని కోడ్ జనరేషన్ సబ్సిస్టమ్ పూర్తిగా రీడిజైన్ చేయబడింది, ఇది
భవిష్యత్తులో కొత్త భాషలకు మద్దతు ఇవ్వడాన్ని సులభతరం చేయాలి. -
CMakeలో ప్రత్యామ్నాయ బిల్డ్ సిస్టమ్ జోడించబడింది (ధన్యవాదాలు ligfx!).
Re2cని CMakeకి అనువదించే ప్రయత్నాలు చాలా కాలంగా జరిగాయి, కానీ ligfxకి ముందు ఎవరూ లేరు
పూర్తి పరిష్కారాన్ని అందించింది.
Autotoolsలో పాత బిల్డ్ సిస్టమ్కు మద్దతు ఇవ్వడం మరియు ఉపయోగించడం కొనసాగుతోంది,
మరియు భవిష్యత్తులో దీనిని విడిచిపెట్టే ప్రణాళికలు లేవు (పాక్షికంగా సృష్టించకూడదు
డిస్ట్రిబ్యూషన్ డెవలపర్లకు సమస్యలు, పాక్షికంగా పాత నిర్మాణ వ్యవస్థ కారణంగా
కొత్తదాని కంటే స్థిరంగా మరియు సంక్షిప్తంగా).
ట్రావిస్ CI ఉపయోగించి రెండు వ్యవస్థలు సమానంగా నిరంతరం పరీక్షించబడతాయి. -
ఉపయోగిస్తున్నప్పుడు ఇంటర్ఫేస్ కోడ్ను కాన్ఫిగరేషన్లలో సెట్ చేసే సామర్థ్యం జోడించబడింది
సాధారణ API (సాధారణ API). గతంలో, చాలా APIలు ఫారమ్లో పేర్కొనబడాలి
విధులు లేదా ఫంక్షన్ మాక్రోలు. ఇప్పుడు వాటిని ఏకపక్ష రూపంలో అమర్చవచ్చు
@@{name} ఫారమ్ యొక్క టెంప్లేట్ పారామీటర్లతో కూడిన స్ట్రింగ్లు లేదా కేవలం @@ (అయితే
ఒక పరామితి మాత్రమే ఉంది మరియు అస్పష్టత లేదు). API శైలి కాన్ఫిగర్ చేయదగినది
re2c:api:style (ఫంక్షన్ల విలువ ఫంక్షనల్ శైలిని నిర్దేశిస్తుంది, అయితే ఫ్రీ-ఫారమ్ విలువ ఏకపక్షంగా ఉంటుంది). -
-c, --start-conditions ఐచ్ఛికం యొక్క మెరుగైన ఆపరేషన్, ఇది అనేక మిళితం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది
ఒక re2c బ్లాక్లో ఇంటర్కనెక్టడ్ లెక్సర్లు. ఇప్పుడు మీరు ఉపయోగించవచ్చు
సాధారణ బ్లాక్లు షరతులతో సమానంగా ఉంటాయి మరియు అనేక సంబంధం లేని షరతులను సెట్ చేయండి
ఒక ఫైల్లో బ్లాక్లు.
మెరుగుపరచబడిన -r, --reuse ఎంపికలు (ఒక బ్లాక్ నుండి కోడ్ యొక్క పునర్వినియోగం
ఇతర బ్లాక్లలో) -c, --start-conditions మరియు -f, --storeable-state ఎంపికలతో కలిపి
(ఏకపక్ష ప్రదేశంలో అంతరాయం కలిగించే స్టేట్ఫుల్ లెక్సర్
మరియు తరువాత అమలును కొనసాగించండి). -
ఇన్పుట్ డేటా ముగింపును నిర్వహించడానికి కొత్తగా జోడించిన అల్గారిథమ్లో బగ్ పరిష్కరించబడింది
(EOF నియమం), ఇది అరుదైన సందర్భాల్లో తప్పు ప్రాసెసింగ్కు దారితీసింది
అతివ్యాప్తి నియమాలు. -
సరళీకృత బూట్స్ట్రాప్ ప్రక్రియ. గతంలో, బిల్డ్ సిస్టమ్ ఇప్పటికే డైనమిక్గా కనుగొనడానికి ప్రయత్నించింది
పునర్నిర్మాణానికి ఉపయోగించబడే re2cని నిర్మించారు.
ఇది తప్పు డిపెండెన్సీలకు దారితీసింది (ఎందుకంటే డిపెండెన్సీ గ్రాఫ్ మారినది
డైనమిక్, ఇది చాలా బిల్డ్ సిస్టమ్లకు నచ్చదు).
ఇప్పుడు, లెక్సర్లను పునర్నిర్మించడానికి, ఇది స్పష్టంగా అవసరం
బిల్డ్ సిస్టమ్ను కాన్ఫిగర్ చేయండి మరియు RE2C_FOR_BUILD వేరియబుల్ను సెట్ చేయండి.
ఈ విడుదలకు సహకరించిన ప్రతి ఒక్కరికీ ధన్యవాదాలు!
మూలం: linux.org.ru