ç§ãçŽ7幎åã«PEG.jsãå§ãããšãããããããã»ã©æåãããããžã§ã¯ãã§ããããããšã®é¢ãããããã»ã©é·ãç¶ããšã¯æã£ãŠããŸããã§ããã ã»ãšãã©ã®å Žåãç§ã¯ããã«åãçµãã§æºè¶³ããŠããŸããããæšå¹Žããããã§ç§ã®ã¢ãããŒã·ã§ã³ã¯äœäžãå§ããŸããã å®éã«åº§ã£ãŠåé¡ã解決ããããã³ãŒããæžãããããããã«èªåãçŽåŸãããå¿ èŠãããããšã«æ°ã¥ããŸããã PEG.jsã¯ããã¯ãèªåã®æéãè²»ãããããªããã®ã§ããããšã«åŸã ã«æ°ã¥ããŸããã ãã®çµæãç§ã¯æ°ããPEG.jsã¡ã³ãããŒãæ¢ããŠããŸãã
ããŒãµãžã§ãã¬ãŒã¿ãšããŒãµãžã§ãã¬ãŒã¿ãã©ã®ããã«æ©èœããããæ·±ãç解ãã匷ãã¢ãããŒã·ã§ã³ãæã¡ããªãŒãã³ãœãŒã¹éçºã®çµéšããããPEG.jséçºãã©ãã§ãªãŒããããïŒçŸåšã®ããŒãããããšäžèŽããå ŽåãšäžèŽããªãå ŽåãããïŒãæ確ã«ç解ããŠãã人ãæ¢ããŠããŸãã ãããã¯ããããå³å¯ãªèŠä»¶ã§ã¯ãããŸãããããããã®é åãå€§å¹ ã«äžè¶³ããŠãã人ã«PEG.jsãæž¡ãããšã¯ã»ãšãã©ãããŸããã
PEG.jsã®åŒãç¶ãã«èå³ãããå Žåã¯ããã®åé¡ã«ã³ã¡ã³ããè¿œå ããããªããé©åãªäººç©ã§ãããšç§ã«çŽåŸããããšæããããã®ããã¹ãŠå«ããŠãã ãã:-)ã³ã¡ã³ãã確èªãã5æã®é±æ«ã«æ°ããã¡ã³ãããçºè¡šããŸã13â14ã ãããŸã§ã«é©åãªã¡ã³ããã衚瀺ãããªãå ŽåãPEG.jsã¯å ¬åŒã«ã¡ã³ããã³ã¹ãããªããªããŸãã
ã¡ã³ããã·ããã®è²æž¡ã«ã¯ã次ã®è³ç£ã®è²æž¡ãå«ãŸããŸãã
æ°ããã¡ã³ããã¯ãçŸåšç§ã®å人çšVPSã§å®è¡ãããŠããPEG.jsWebãµã€ãã®ãã¹ãã£ã³ã°ãšå®è¡ãæ åœããå¿ èŠããããŸãã æ°ããã¡ã³ããã¯ãèªåã®ç®¡çäžã§ãã¹ãã£ã³ã°ãã»ããã¢ããããã¡ã³ããã·ãããè²æž¡ããçŽåŸã«ãpegjs.orgãã¡ã€ã³ããããæãããã«DNSã¬ã³ãŒããåæ§æããããšãæåŸ ããŠããŸãã æ°ããã¡ã³ããã¯ç§ã®å人çãªVPSã«ã¢ã¯ã»ã¹ã§ããªããªããPEG.jsWebãµã€ããç¡æéã«ãã¹ããç¶ããããšããããŸããã
äžèšã§æžããããšã«ã€ããŠè³ªåãã¡ã¢ãããå Žåã¯ããã®åé¡ã«ã³ã¡ã³ããè¿œå ããŠãã ããã
ããæ°ãæã§PEG.jsã䜿ãå§ããã°ããã§ããšãŠãæ°ã«å ¥ã£ãŠããŸãã ææ³ã¯ç¿åŸãããããæŠå¿µã®æ°ã¯ããªãå°ãªãã§ãã ããã¥ã¡ã³ãã¯å°ã軜ãã§ãããå¿ èŠãªãã®ã¯ãã¹ãŠèŠã€ãããŸããã ãŸããjavascript.pegjsã®äŸããªããã°ãJavaScriptãã€ã¢ã¬ã¯ãã䜿ãå§ããããšã¯ã§ããªãã£ãã§ãããã ããã«ãããã¯ãŒã¯ããŒããå€§å¹ ã«åæžãããŸããã
çŸåšã®ç¶æ ã§ã¯ãã©ã®ãããªã¡ãªããããããŸããïŒ ç§ã«ãšã£ãŠã¯ããããã¿ã€ããäœæããã®ã¯éåžžã«ç°¡åã§ãã æ¬ ç¹ã¯ã倧éã®ããŒã¿ã®å Žåã¯é ããªãå¯èœæ§ãããããšã§ãããä»ã¯æ°ã«ããŸããã 競åä»ç€Ÿã¯äœã§ããïŒ ãããæé·ãç¶ããã®ãèŠããã§ããããããšã誰ãã«ããŒãžã§ã³2.0ãäœæããŠãããããã§ããïŒ çŸåšå®å®ããŠããå Žåã¯ãããå°ãããã¥ã¡ã³ããè¿œå ããŠããã®ãŸãŸã«ããŠãããŠãã ããã
ããŒããããã®å Žåãã³ãŒãã®ææ°åã«ãã£ãŠäœãåŸãããŸããïŒ ãã£ãšæ©ãïŒ ã¡ã³ããã³ã¹ãç°¡åã§ããïŒ ãããšãåã«ãææ°ãã§ããïŒ ã¡ã³ããã³ã¹ãç°¡åã«ããããã«ãMakeã®ä»£ããã«Gulpã䜿çšããããšã¯ç解ã§ããŸãã ã¯ãªãŒã³ã¢ããã¯é«äŸ¡ã«èãããã»ãŒ1.5ã§ãããçŸåšã®1.0ãšåŒã°ããŸãã ãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšããã®ã¯ã1.0ã®ç®æšãšããŠã¯å€§ãããããšæããŠããŸãã é»æµã¯1.0ã ãšæããŸãã ããã¯éåžžã«å®å®ããŠããŠãè¯ããšã©ãŒã¡ãã»ãŒãžããã¹ãŠã®æ©èœã®åäœãªã©ã§ãããœãããŠã§ã¢ã®1.0ã¯ã1ã€ãã§ããå¿ èŠã¯ãããŸããã ããã¯ãã£ãš2.0ã3.0ãªã©ã§ãã
ã¡ã³ããã³ã¹ã®ãæäŒããã§ãããããããŸãããããµã€ããã°ãŒã°ã«ã°ã«ãŒããªã©ãã©ã€ãã§èŠããã§ãã
@mikeaustinã³ã¡ã³ãããããšãããããŸãã ããªãã®è³ªåã«ããã«çããããŠãã ããïŒããã¯ãããããã®åé¡ãèŠãŠããä»ã®äººã«ã圹ç«ã€ã§ãããïŒã
çŸåšã®ç¶æ ã§ã¯ãã©ã®ãããªã¡ãªããããããŸããïŒ ç§ã«ãšã£ãŠã¯ããããã¿ã€ããäœæããã®ã¯éåžžã«ç°¡åã§ãã
ãããã¿ã€ãã³ã°ã¯ãæ£èŠè¡šçŸãããŸããŸãªã€ã³ã¿ã©ã¯ãã£ãããŒã«ã«ã¯è€éãããå°ããªèšèª/ DSLã®è§£æãšãšãã«ãäž»èŠãªãŠãŒã¹ã±ãŒã¹ã§ããã ããšããšãPEG.jsãäœæããã®ã¯ãPEGãåªããææ³æ§æãæäŸããããã䜿çšããJavaScriptããŒãµãŒãžã§ãã¬ãŒã¿ãŒããªããé©åãªãšã©ãŒã¡ãã»ãŒãžãçæã§ããããã§ãã
æ¬ ç¹ã¯ã倧éã®ããŒã¿ã®å Žåã¯é ããªãå¯èœæ§ãããããšã§ãããä»ã¯æ°ã«ããŸããã
å€ãã®äººãããããŸãããããããã©ãŒãã³ã¹äœæ¥ãããŒããããã«ããçç±ã§ãã
競åä»ç€Ÿã¯äœã§ããïŒ
ãããæé·ãç¶ããã®ãèŠããã§ããããããšã誰ãã«ããŒãžã§ã³2.0ãäœæããŠãããããã§ããïŒ çŸåšå®å®ããŠããå Žåã¯ãããå°ãããã¥ã¡ã³ããè¿œå ããŠããã®ãŸãŸã«ããŠãããŠãã ããã
ããã¯æ°ããã¡ã³ãã次第ã§ãã ããããç§ã¯PEG.jsãçŸåšã®æ©èœã»ããã§æ°žä¹ ã«åæ»ããããšãæãã§ããŸããã ãããããå¯èœæ§ããããŸãã
ã³ã¢ãå€æŽããã«æ¯èŒçç°¡åã«è¿œå ã§ãã䟿å©ãªæ©èœããããããããŸãïŒïŒ30ãïŒ38ãïŒ107ãïŒ45ãããã³ïŒ285ïŒã 次ã«ãã³ã¢ã®æŠå¿µïŒïŒ11ãïŒ217ïŒãåèããããAPIïŒïŒ327ãïŒ430ïŒãå€æŽããå¿ èŠããããé·å¹Žã®åé¡/ãŠãŒã¹ã±ãŒã¹ãããã€ããããŸãã ãããã¯ãã¹ãŠäžèŠã®äŸ¡å€ããããšæããŸãã
ããŒããããã®å Žåãã³ãŒãã®ææ°åã«ãã£ãŠäœãåŸãããŸããïŒ ãã£ãšæ©ãïŒ ã¡ã³ããã³ã¹ãç°¡åã§ããïŒ ãããšãåã«ãææ°ãã§ããïŒ
ä¿å®ãšææ°åã容æã§ãïŒããã¯ç¢ºãã«éšåçã«PRã®æ±ºå®ã§ããå€ãæè¡ãšæ°ããæè¡ã®éã«ããããªçç£æ§ã®éããããªãå Žåã§ãããããžã§ã¯ããæè¡çã«å€ãèŠããå Žåã¯æªãããšã§ãïŒã
é»æµã¯1.0ã ãšæããŸãã ããã¯éåžžã«å®å®ããŠããŠãè¯ããšã©ãŒã¡ãã»ãŒãžããã¹ãŠã®æ©èœã®åäœãªã©ã§ãããœãããŠã§ã¢ã®1.0ã¯ã1ã€ãã§ããå¿ èŠã¯ãããŸããã ããã¯ãã£ãš2.0ã3.0ãªã©ã§ãã
å¯èœæ§ããããŸã:-) 1.0ã®å®çŸ©ã¯åžžã«ãæºè¶³ããŠãããšããã§ããããããã¯ã©ãããããã決ããŠå®çŸããŸããã§ãããå®äžçã§PEG.jsã䜿çšããããã«å¿ èŠã§ãã ç§ã®å®ç§äž»çŸ©ã®æ§è³ªã圹ã«ç«ã¡ãŸããã§ããã
1.0ãå®çŸ©ããã®ã¯ãæ°ããã¡ã³ãã次第ã§ãã
https://github.com/futagoza/epeg.jsð ïŒãªã¹ããããŠãããããŠããŸããããããæç¹ã§ãããã€ãã®ãã©ãŒã¯ãŸãã¯ç¡é¢ä¿ã®ãããžã§ã¯ãã«å«ãŸããŠããããšã«æ³šæããŠãã ããã GitHubã«é 眮ãããããšã¯ãããŸããïŒ
ç§ã¯ãã¹ãŠåé¡ãããŸããããç§ãæ±ããŠããå¯äžã®åé¡ã¯ãã¹ããç¶æããããšã§ãð
@dmajdaã¯PEG.jsã«æè¬ããŸãã ãšãŠã䟿å©ã§ãã ãã®ãããžã§ã¯ããåç¶ããããšãé¡ã£ãŠããŸãã
@futagozaæ確ã«ããããã«ãããªãã®ã³ã¡ã³ãã¯ãPEG.jsã®ä¿å®ã«èå³ãããããšãæå³ããŸããïŒ ãããšããæªæ¥ã¯ä»ã®å Žæã«ãããšæããŸããïŒ :-)
ç§ã¯ãã¹ãŠåé¡ãããŸããããç§ãæ±ããŠããå¯äžã®åé¡ã¯ãã¹ããç¶æããããšã§ã
æ£ç¢ºã«ã¯ã©ã®ãããªåé¡ã§ããïŒ
@dmajdaã¯ããç§ã¯ãããç¶æããããšã«èå³ããããŸãð
ç§ã¯ãã¹ãŠåé¡ãããŸããããç§ãæ±ããŠããå¯äžã®åé¡ã¯ãã¹ããç¶æããããšã§ã
æ£ç¢ºã«ã¯ã©ã®ãããªåé¡ã§ããïŒ
ã€ãŸããç§ã¯éåžžãã³ãŒãã£ã³ã°ãšãããã°ãè¡ã£ãŠããŸãããããã«ããããã«ãã¹ããå®è¡ããããšãããšããããã®ä¿å®ã«åé¡ãçºçãå§ãããããéåžžãæçµçµæã確èªã§ãããã¹ããå®è¡ãããããã®ãŸãŸã«ããŸããã¹ããã¯ãšãã³ãããŒã¯ãã¹ããä»ã®äººã«æäŸããŸãããåŸããèãããšãããã«ããäžéšã®ãããžã§ã¯ãã®éçºæéãé·ããªããŸãð
@dmajdaçŸåšãMScãããžã§ã¯ãã®äžéšãšããŠPEG.jsã䜿çšããŠããŸãã 䟿å©ãªã ãã§ãªããé¢çœââããŠãã£ãããã§ãã 誰ãã䟡å€ã®ããPEG.jsã®çžç¶äººã§ãããšã¿ãªããŠãããããšãå¿ããé¡ã£ãŠããŸãã
@futagozaåé¡ã®èª¬æã§ãç§ã¯æ¬¡ã®ããã«æžããŠããŸãã
ããŒãµãžã§ãã¬ãŒã¿ãšããŒãµãžã§ãã¬ãŒã¿ãã©ã®ããã«æ©èœããããæ·±ãç解ãã匷ãã¢ãããŒã·ã§ã³ãæã¡ããªãŒãã³ãœãŒã¹éçºã®çµéšããããPEG.jséçºãã©ãã§ãªãŒããããïŒçŸåšã®ããŒãããããšäžèŽããå ŽåãšäžèŽããªãå ŽåãããïŒãæ確ã«ç解ããŠãã人ãæ¢ããŠããŸãã
ããªãã®ã³ã¡ã³ãã§ã¯ãePEG.jsãžã®ãªã³ã¯ã®ã¿ãæäŸããŸããããããã ãã§ã¯ãäžèšã®èª¬æã«åœãŠã¯ãŸããã©ããã確èªããã®ã«ååã§ã¯ãããŸããïŒePEG.jsã®TODOãªã¹ãã¯ãããããã©ãã«è¡ãã°ãããã瀺ããŠããããšãé€ããŠïŒ PEG.jséçºããªãŒãããïŒã
ããªãã®ä»äºãšãŠã§ããã¬ãŒã³ã¹ãèªåã§èªãããããšæã£ãã®ã§ãããªãã®ãŠã§ããµã€ããèŠãŠãTwitterãšLinkedInã®ãªã³ã¯ãã¯ãªãã¯ããŸããããã©ã¡ããæ»ãã§ããŸãããæ³åã ãã®åŸããããããŸããã ePEG.jsã«é¢ããŠã¯ãçŸæ®µéã§ã¯ãŠã£ãã·ã¥ãªã¹ã以äžã®ãã®ãšããŠæ±ãã®ã¯é£ããã§ãã
ããã§ãç§ã«ããã€ãã®å ·äœçãªè³ªåããããŠãã ããïŒ
ããªãã®çµæŽã¯äœã§ããïŒ ç¹ã«ãããŒãµãŒãšããŒãµãŒãžã§ãã¬ãŒã¿ãŒã«ã€ããŠã®ããªãã®ç¥èã®ã¬ãã«ã¯äœã§ããïŒ ãã®ç¥èã¯ã©ãã§åŸãŸãããïŒ
PEG.jsã«åãçµãåæ©ã¯äœã§ããïŒ ç¹ã«ãå人ãŸãã¯ä»äºã®ãããžã§ã¯ãã§PEG.jsïŒãŸãã¯ePEG.jsïŒã䜿çšããŠããŸããïŒ PEG.jsãç¶æããããšã¯ããªãã®æ¥åžžæ¥åã®äžéšã§ããããããšãããªãã¯ããªãã®èªç±ãªæéã«ãããããŸããïŒ
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®çµéšã¬ãã«ã¯ã©ããããã§ããïŒ ç¹ã«ãPEG.jsïŒäž»ã«ãŠãŒã¶ãŒæ°ïŒã«å¹æµãããªãŒãã³ãœãŒã¹ãããžã§ã¯ããç¶æããŠããŸããïŒ
ããªãã®æèŠã§ã¯ãPEG.jsãçŸåšæ¬ ããŠããããŸãã¯æ£ããæ©èœããŠããªãäžäœ5ã€ã®ããšã¯äœã§ããïŒ ãŸãããããžã§ã¯ããã©ãã«æã¡ããã説æããŠããã ããŸããïŒ 1幎ã§ã©ãã§èŠããã§ããïŒ
ãããã®è³ªåã«çããŠãããŠããããšãã 圌ãã¯ããªããPEG.jsã®æ£ããå°æ¥ã®ã¡ã³ãããŒã«ãªããã©ããã決ããã®ã«åœ¹ç«ã¡ãŸãã
ã ããç§ã¯ããªãã®ãŠã§ããµã€ããèŠãŠTwitterãšLinkedInã®ãªã³ã¯ãã¯ãªãã¯ããŸããããã©ã¡ããæ»ãã§ããŸãã
ãã®ãµã€ãã¯ã2010幎ã«å€ããšã€ãªã¢ã¹ã§ããVitron Princeãè¡ã£ããšãã«äœæããå€ããŠã§ããµã€ãã®ã³ããŒ/貌ãä»ãã§ããããããªã³ã¯ã¯ã»ãšãã©æå¹ã§ãªããªã£ãŠããããç¶æããŠããªããµã€ã/ãããã¡ã€ã«ã«ã€ãªãã£ãŠããŸãããµã€ããé©åã«çµäºããããšã¯ãããŸããã§ããã ç§ãæè¿å®éã«æã£ãŠããå¯äžã®ãªã³ã©ã€ã³ãã¬ãŒã³ã¹ã¯ãGitHubãšPlayStationðã§ããããã¯äž»ã«ãç§ããã«ã¿ã€ã ã®ä»è·è ã§ãããšããäºå®ã«ãããã®ã§ãã
ããªãã®çµæŽã¯äœã§ããïŒ ç¹ã«ãããŒãµãŒãšããŒãµãŒãžã§ãã¬ãŒã¿ãŒã«ã€ããŠã®ããªãã®ç¥èã®ã¬ãã«ã¯äœã§ããïŒ ãã®ç¥èã¯ã©ãã§åŸãŸãããïŒ
èŠçŽãããšãç§ã¯éå»5幎éãæååãšãããã¡ãŒã®ããŒã¯ã³åãã¡ã¢åãå®è¡ããªããASTãé«éãã€æ£ç¢ºã«çæããããŸããŸãªæ¹æ³ãåŠã³ãäž»ã«ä»ã®ã³ã³ãã¥ãŒã¿ãŒèšèªãæé©ã«ãã©ã³ã¹ãã€ã«ããããã®ããŸããŸãªæ¹æ³ãç 究ããŸããã JavaScriptãšC ++ãåäžã®ãã¹ã«æŒãã€ã¶ããŠã³ã³ãã€ã«ãé«éåããããŸããŸãªãã¹ã«ããŸããŸãªASTããžã¿ãŒã䜿çšããŠæé«ã®ããã©ãŒãã³ã¹ãå®çŸã§ãããã¹ãèå¥ããŸãã
ããŒãµãŒãžã§ãã¬ãŒã¿ãŒã«é¢ããŠã¯ãPEG.jsã®ããŒãµãŒãžã§ãã¬ãŒã¿ãŒãç 究ããæ°å€ã®æ¯èŒã¯æååã®æ¯èŒãããé«éã§ãããšããç¥èã身ã«ä»ããŠåŠãã ã®ã§ã String#charAt
ãããString#charCodeAt
ãåªå
ããŸãããé床ãèŠå ã§ãªãéãã String#charAt
ã options.optimize = "size"
ã䜿çšããŠããŒãµãŒãçæããããšã«é¢é£ããéšåãç解ããã®ã«ãŸã èŠåŽããŠããŸããã speed with accuracy
ã«çŠç¹ãåãããŠãããããããŒãµãŒçæã®ãã®éšåãç 究ããåæ©ãå®éã«åŸãããšã¯ã§ããŸããã§ããã
ãŸãã泚æããŠãã ããïŒç§ã¯ããªãã®ããšãåŠã³ãŸããããçšèªãèŠããã®ã«èŠåŽããŠããŸãð
PEG.jsã«åãçµãåæ©ã¯äœã§ããïŒ ç¹ã«ãå人ãŸãã¯ä»äºã®ãããžã§ã¯ãã§PEG.jsïŒãŸãã¯ePEG.jsïŒã䜿çšããŠããŸããïŒ PEG.jsãç¶æããããšã¯ããªãã®æ¥åžžæ¥åã®äžéšã§ããããããšãããªãã¯ããªãã®èªç±ãªæéã«ãããããŸããïŒ
PEG.jsã«äœæ¥ããããã®ç§ã®ã¢ãããŒã·ã§ã³ãéçºããŠããCXLangãç§ã¯ãç§ã¯äž¡æ¹ã®å人ãšä»äºã®ãããžã§ã¯ãã®ããã«ããã䜿çšããŠãããšèšãã ããã®ã§ãã ãã§ãªããã«ã¹ã¿ã ããŒãµã®ç§ã¯ç§ã®ã²ãŒã ã§äœ¿çšãããããŸããŸãªããã¹ãããŒã¹ã®ãªãœãŒã¹ãã¡ã€ã«ã®ãããäœããŸãePEG.jsãšåãããã«ãPEG.jsãç¶æããããšã¯ãã»ãšãã©ç§ã®èªç±ãªæéã«ãããŸãã
ç§ãçŸåšéçºã«äž»ã«çŠç¹ãåœãŠãŠããã®ã¯ãïŒæ©èœããå¿ èŠããããã®ã®é ã«ïŒæ¬¡ã®ãšããã§ãã
CXLangãRoxbyãXrossã§PEG.jsã䜿çšããŠããããšã«æ³šæããŠãã ãããããã«ããããã¬ãŒã³ããã¹ãã§ããŸããŸãªã¢ã»ãããäœæããŠããPEG.jsã䜿çšã§ãããããçŸåšPEG.jsã¯ã²ãŒã éçºã®éåžžã«éèŠãªéšåã«ãªã£ãŠããŸããããã³ã«ã¹ã¿ã ã³ã³ãã€ã©ã¯ãã²ãŒã ãä»ã®ããã°ã©ã /ããŒã«ããŸãã¯ã©ã€ãã©ãªã³ãŒãã®ããããã§äœ¿çšããããã€ãã£ãã³ãŒãã«å€æããŸãã
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®çµéšã¬ãã«ã¯ã©ããããã§ããïŒ ç¹ã«ãPEG.jsïŒäž»ã«ãŠãŒã¶ãŒæ°ïŒã«å¹æµãããªãŒãã³ãœãŒã¹ãããžã§ã¯ããç¶æããŠããŸããïŒ
ããããç§ã¯2013幎ããäžè©±ãããŠããã®ã§ããããªã²ãŒã ãéåœãã©ãããŸãã¯ããŸããŸãªC ++ / Node.jsãããžã§ã¯ãïŒäž»ã«äžèšã®ãã®ïŒã®ããããã«èªç±ãªæéãè²»ãããŸãããã³ãŒããå ±æãããã®ã§ãããä»ã®ã³ãŒãã«ã¯ãå°æ¥åçšè£œåãäœæããããã«éçºããŠããå人çãªãããžã§ã¯ãã®ã³ãŒããå«ãŸããŠãããããã©ãããããã«ä¿æããŠããŸãã
CXLangã¯ãã§ã«ãªãŒãã³ãœãŒã¹ã§ããïŒãã¡ãã¡ã§ãã¹ããã»ãšãã©è¡ãããŠããªããããããŸããŸãªéšåããŸã GitHubã«å°éããŠããªãããïŒãRoxbyãšXrossã®ãªãŒãã³ãœãŒã¹ãèšç»ããŠããã®ã¯ãç§ã®ã²ãŒã ã
ããªãã®æèŠã§ã¯ãPEG.jsãçŸåšæ¬ ããŠããããŸãã¯æ£ããæ©èœããŠããªãäžäœ5ã€ã®ããšã¯äœã§ããïŒ ãŸãããããžã§ã¯ããã©ãã«æã¡ããã説æããŠããã ããŸããïŒ 1幎ã§ã©ãã§èŠããã§ããïŒ
<strong i="27">@returns</strong> ...
ãŸãã¯[returns = ...]
ïŒçŸåšãïŒWebãµã€ããŸãã¯GitHubãªããžããªã§ïŒPEG.jsã«ã€ããŠæåã«èªãããšã¯æ¬¡ã®ãšããã§ãã
PEG.jsã¯ãJavaScriptçšã®ã·ã³ãã«ãªããŒãµãŒãžã§ãã¬ãŒã¿ãŒã§ãããåªãããšã©ãŒã¬ããŒããåããé«éããŒãµãŒãçæããŸãã ããã䜿çšããŠãè€éãªããŒã¿ãã³ã³ãã¥ãŒã¿ãŒèšèªãåŠçãããã©ã³ã¹ãã©ãŒããŒãã€ã³ã¿ãŒããªã¿ãŒãã³ã³ãã€ã©ãŒããã®ä»ã®ããŒã«ãç°¡åã«æ§ç¯ã§ããŸãã
äžèšã®çç±ã解決ããããšã¯ããã®æ®µèœãçŽæããããšããµããŒãããã ãã§ãªããéçºè ãããŒãµãŒãéçºããéã®ããå€ãã®èªç±ãäžãããšç§ã¯ä¿¡ããŠããŸãã
æ£çŽãªãšãããçŸåšã®ã¹ã±ãžã¥ãŒã«ã§ã¯ã1幎åŸã®äºå®ã¯ããããŸããããPEG.jsã®ããŒããããã¯æ¬¡ã®ããã«ãªããŸãã
ãã®ããŒããããã®çç±ã¯ãã¿ã¹ã¯ãšãŠãŒã¶ãŒã®åé¡ãããç°¡åã«åå²ã§ããããã«ãããšåæã«ãããŒãµãŒãžã§ãã¬ãŒã¿ãŒã«ã€ããŠããã«åŠç¿ããäœå°ãäžããããè¯ããã©ã°ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ãèšç»ãã__ PEG.jsv4.x__ãš__PEGã«åããããã§ãã .js v6.x__
ãŸãã @ dmajdaã«æ³šæããŠãã ãããç§ãã¡ã³ãããŒãåŒãç¶ãå Žåãæçµçã«ã¯ããããžã§ã¯ãã®éçºã«éäžã§ããããã«ãããŸããŸãªåŽé¢ã管çããã®ã«åœ¹ç«ã€ã¡ã³ãããŒãå¯çš¿è ãã¢ãã¬ãŒã¿ãŒãããã«æ¢ãããšã«ãªããŸããçŠç¹ãåããã Twitterã¢ã«ãŠã³ããGoogleã°ã«ãŒããªã©ã®åŽé¢ãã¢ãã¬ãŒã¿ãŒã«ä»»ããå¯çš¿è ã®å©ããåããŠãã³ãããŒã¯ãšãã¹ããæŽçããç¶æããã®ãæäŒã£ãŠãã ãããäžæ¹ãã¡ã³ãããŒã¯LTSãªãªãŒã¹ã®ç®¡çãæäŒã£ãŠãããŸãã
ç§ã¯ããŒã¯ããŠã³ããŒãµãŒãæžãããã«ãã°ã䜿çšããŠããŸããããããšãð
ç§ã¯ããã³ããšã³ãã®éçºè ã§ãããŠã§ããµã€ããæ¹åã§ããŸããããã®çµç¹ã«æåŸ ããŠããããŸããïŒ ããããšãïŒ
@futagozaãŸããè¿ä¿¡ãé ãããšããè©«ã³ããŸããå é±ãããªããæžãããã®ãèªã¿ãèããè¿ä¿¡ãäœæããããã®ç¶ç¶çãªæéãèŠã€ããã®ã¯å°é£ã§ããã
ããªããæžããããšãããããªãã¯ããæ°ããããè³æ Œã¯ãã£ããããŠããããšãããããŸãã PEG.jsã«ã€ããŠã®ããªãã®èãã¯ããŠãŒã¶ãŒãèªèããŠããããã«ãPEG.jsã®æ倧ã®åé¡ã§ãããšç§ãèãããã®ãšãããäžèŽããŠããŸãã ç§ã¯ç¹ã«ãããå€ãã®è²¢ç®è ãå·»ã蟌ã¿ãããšæã£ãŠããŸããããã¯ãç§ãã¡ã³ãããŒãšããŠãã倱æãããšæãåéã®1ã€ã§ãã
ç§ãå°ãå¿é ããŠããããšã®1ã€ã¯ãå€ãã®æ©èœãå°å ¥ãããŠããããšã確èªããããšããããšã§ããããã«ãããæ©èœã®ã¯ãªãŒããçºçããå¯èœæ§ããããŸãã å€ãã®PEG.jsãŠãŒã¶ãŒã¯ããã®ã·ã³ãã«ããé«ãè©äŸ¡ããŠããŸãã
ãããã«ãããäžèšã®ãã¹ãŠãèæ ®ããä»ã®èª°ãPEG.jsãåŒãç¶ãããšã«èå³ããªãããšãèãããšãPEG.jsã®ã¡ã³ããã³ã¹ãããªãã«æž¡ããªãçç±ã¯ããããŸããã
ç§ã¯ããã«ããªãã«PEG.jsã®æ°ããã¡ã³ããã宣èšããŸãã
ããã§ãšãïŒ
å€æŽã¯TwitterãšGoogleã°ã«ãŒãã§ããã«çºè¡šããŸãã ãã®åŸããããžã§ã¯ãè³ç£ã®è²æž¡ã«é¢ãã詳现ãèšèŒããã¡ãŒã«ããéãããŸãã 転éãå®äºãããããããžã§ã¯ããå®å šã«äžæ¢ããŸãã
PEG.jsã倧äºã«ããŠãããªãã®æã«ãããã®æªæ¥ãæããããšãé¡ã£ãŠããŸã:-)
ç§ã¯ããã³ããšã³ãã®éçºè ã§ãããŠã§ããµã€ããæ¹åã§ããŸããããã®çµç¹ã«æåŸ ããŠããããŸããïŒ ããããšãïŒ
@ericjjjç³ãåºãããããšããããã¯ä»@futagozaãŸã§ã§ãã
@ futagozaðããã§ãšãããããŸããç§ã¯ããã³ããšã³ãéçºè ã§ãããŠã§ããµã€ããæ¹åã§ããŸãããã®çµç¹ã«æåŸ ããŠããããŸããïŒ ããããšãïŒ
@dmajdaããããšãããããŸãðããããŠç§ã¯æåãå°œãããŸãã
ãã£ãŒãã£ãŒã¯ãªãŒããå¿é ã ã£ãã®ã§ãäžèšã®ããŒããããã«LTSã¹ã±ãžã¥ãŒã«ãè¿œå ããŸããããåè¿°ããããã«ãããã¯ãŸã 決ãŸã£ãŠããªãã®ã§ãã
@ericjjjãªãã¡ãŒm8ãããããšãð
ç§ã¯æãäœãããå¿ èŠãããããæ€èšããã€ããã§ããããŠã§ããµã€ãã¯ãã§ã«æŽæ°ãããã®ã®ãªã¹ãã«ãããŸãã
転éããã»ã¹ãå®äºããã¡ã³ããã®å€æŽãåæ ããããã«Webãµã€ããå°ãæŽæ°ãããã Webãµã€ãã®ãªããžããªã§æ°ããåé¡ãéããå€æŽãè¿œå ããŸãã¯åé€ããäºå®ã®å 容ã確èªããŸãã
ç§ãåé¡ãäœæãããšããç§ã¯ããªãã«èšåããã®ãå¿ããªãã§ããããããã§ããªãã¯ãã€é£ã³èŸŒãã§ããªãã®èããç§ã«èŠããŠããªãã®èããå ±æããããç¥ã£ãŠããŸãã ç§ããŠã§ããµã€ãã§ã©ãã«è¡ããã決ããåŸãããªãããŸã ç§ãå©ããŠããããªãç§ã¯ããªããæåŸ ããŸãð
@futagozaããããŸãããã©ããããããšãð
çµç¹ã«è¿œå ããããè²¢ç®ããŸã
ãã倧ããªã¹ããããã€ã¹ãããã®ãã¥ãŒããªã¢ã«ã®ããã«äœãããŸãšããããšãã§ããŸãã JavaScriptãã³ã¢ã«åãé€ãããããªéåžžã«åºæ¬çãªèšèªã¯ãPEG.jsã®äœ¿çšæ¹æ³ãåŠã¶ã®ã«åœ¹ç«ã¡ãŸããã ãŸããASTããã©ããŒã¹ããæ¹æ³/æè¯ã®æ¹æ³ãç¥ãããšã¯ãç§ãä»ã®å Žæã§èŠã€ããªããã°ãªããªãã£ããã®ã§ããã
äŸã¯ãå°ããªèšç®æ©ããå®å šãªJavaScriptããŒãµãŒã«ãªããŸãã éã«äœãããããããã«åãããŠãã¥ãŒããªã¢ã«ãããã°ãããšæããŸãã
ç§ãæžããèšäºã®äŸïŒ
https://structura.quora.com/Extension-Methods-in-JavaScript
ã€ãŸãã @ futagozaã¯æ°ããPEG.jsã¡ã³ãããŒã§ãã
ãããããªãåé¡ã¯ãŸã éãããŠããã®ã§ããïŒ
ãšããã§ããã®ãããªçŽ æŽããããããžã§ã¯ãã®äººãã¡ã«æè¬ããŸãïŒ
ç§ã®æåã®ããã°ã©ã ã®1ã€ã¯ãC ++ã§èšè¿°ãããPascalèšèªããŒãµãŒã§ãã-ãããæ©èœãããã®ã¯éåžžã«å°é£ã§ããïŒD
JavaScript + PEG.jsã䜿çšãããšããã®ãããªã¿ã¹ã¯ãã¯ããã«ç°¡åã«ãªããŸã
ãããŠçŸåšãç§ã¯ãã®ãããžã§ã¯ãã䜿çšããŠãbashã®ãããªèšèªïŒqmake pro-fileïŒçšã®éåžžã«è€éãªããŒãµãŒãäœæããŠããããã§ã«æ©èœã®æ¬ åŠã«çŽé¢ããŠããŸãã ããšãã°ã1ã€ã®å€§ããªææ³ãã¡ã€ã«ãããã€ãã®å°ããªãã¡ã€ã«ã«åå²ããæ©èœããããŸããã
ãã®ãããªãã®ã®å®è£
ãæ¯æŽããããã«ç§ã¯äœãã§ããŸããïŒ
ãããããªãåé¡ã¯ãŸã éãããŠããã®ã§ããïŒ
éããã®ãå¿ããŠããŸããŸããã ä»ãããããŠããŸãã
æãåèã«ãªãã³ã¡ã³ã
@dmajdaã¯PEG.jsã«æè¬ããŸãã ãšãŠã䟿å©ã§ãã ãã®ãããžã§ã¯ããåç¶ããããšãé¡ã£ãŠããŸãã