¡¾×ª¡¿Ê¹ÓÃFlex Bison ºÍLLVM±àд×Ô¼ºµÄ±àÒëÆ÷v
ÔÎijö´¦£ºhttp://gnuu.org/2009/09/18/writing-your-own-toy-compiler
1¡¢½éÉÜ
ÎÒ×ÜÊǶԱàÒëÆ÷ºÍÓïÑԷdz£¸ÐÐËȤ£¬µ«ÊÇÐËȤ²¢²»»áÈÃÄã×ߵĸüÔ¶¡£´óÁ¿µÄ±àÒëÆ÷µÄÉè¼Æ¸ÅÄî¿ÉÒÔ¸ãµÄÈκÎÒ»¸ö³ÌÐòÔ±ÃÔʧÔÚÕâЩ¸ÅÄîÖ®ÖС£²»ÓÃ˵£¬ÎÒÒ²Ôø
½ñ³¢ÊÔ¹ý£¬µ«ÊDz¢Ã»ÓÐÈ¡µÃÌ«´óµÄ³É¹¦£¬ÎÒÒÔǰµÄ³¢ÊÔ¶¼Í£ÁôÔÚÓïÒå·ÖÎö½×¶Î¡£±¾ÎĵÄÁé¸ÐÖ÷ÒªÀ´Ô´ÓÚÎÒ×î½üÒ»´ÎµÄ³¢ÊÔ£¬²¢ÇÒÔÚÕâÒ»´ÎÖÐÎÒÈ¡µÃÒ»µã³É¾Í¡£
ÐÒÔ˵ÄÊÇ£¬×î½üµÄ¼¸Ä꣬ÎҲμÓÁËһЩÏîÄ¿£¬ÕâЩÏîÄ¿¸øÁËÎÒÔÚ½¨Á¢±àÒëÆ÷ÉϺܶàÓÐÓõľÑéºÍ¹Ûµã¡£ÁíÍâÒ»¼þÊÂÊÇ£¬Îҷdz£ÐÒÔ˵õ½LLVM
µÄ°ïÖú¡£¶ÔÓÚÕâ¸ö¹¤¾ß£¬ÎÒ²»ÖªµÀ¸ÄÔõôȥÐÎÈÝËü£¬µ«ÊÇËû¸øÎÒµÄÕâ¸ö±àÒëÆ÷µÄÈ·´øÀ´·Ç³£´óµÄ°ïÖú¡£
1.1¡¢ÄãΪʲôҪÔĶÁ±¾ÎÄ
ÄãÒ²ÐíÏë¿´¿´ÎÒÕýÔÚ×öµÄÊÂÇ飬µ«ÊǸüÓпÉÄܵÄÊÇ£¬ÄãÒ²ÊǺÍÎÒÒ»Ñù¶Ô±àÒëÆ÷ºÍÓïÑԷdz£¸ÐÐËȤ£¬²¢ÇÒÒ²¿ÉÄÜÓöµ½ÁËһЩÔÚ̽Ë÷µÄ¹ý³ÌÖÐÓöµ½ÁËһЩÄÑÌ⣬Äã
¿ÉÄÜÕý´òËã½â¾öÕâЩÄÑÌ⣬µ«ÊÇȴûÓз¢ÏֺõÄ×ÊÔ´¡£±¾ÎĵÄÄ¿±ê¾ÍÊÇÌṩÕâЩ×ÊÔ´£¬²¢ÒÔÒ»ÖÖÊÖ°ÑÊֵķ½Ê½½ÌÄã´ÓÍ·µ½Î²µÄÈ¥´´½¨Ò»¸ö¾ßÓлù±¾¹¦ÄܵÄÓïÑÔ±àÒë
Æ÷¡£
ÔÚ±¾ÎÄ£¬ÎÒ²»»áÈ¥½âÊÍһЩ±àÒëÆ÷»ù±¾ÀíÂÛ£¬ËùÒÔÄãÒªÔÚ¿ªÊ¼±¾ÎÄǰȥÁ˽âʲôÊÇBNFÓï·¨
£¬Ê²Ã´ÊdzéÏóÓï·¨Ê÷Êý¾Ý½á¹¹ AST data structure
£¬Ê²Ã´ÊÇ»ù´¡±àÒëÆ÷Á÷Ë®Ïß complier pipline
¡£¾ÍÊÇ˵£¬ÎÒ»á°Ñ±¾ÎÄÃèÊöµÄ¾¡Á¿¼òµ¥¡£±¾ÎĵÄÄ¿µÄ¾ÍÊÇÒÔÒ»ÖÖ¼òµ¥Ò×¶®µÄ·½Ê½À´½éÉÜÏà¹Ø±àÒëÆ÷×ÊÔ´µÄ·½Ê½À´°ïÖúÄÇЩ´ÓÀ´Ã»ÓбàÒëÆ÷¾ÑéµÄÈË¡£
1.2¡¢´ïµ½µÄ³É¹û
Èç¹ûÄã¸ù¾ÝÎÄÕÂÄÚÈÝÒ»²½²½À´£¬Ä㽫»áµÃµ½Ò»¸öÄܶ¨Ò庯Êý£¬µ÷Óú¯Êý£¬¶¨Òå±äÁ¿£¬¸ø±äÁ¿¸³ÖµÖ´Ðлù±¾Êýѧ²Ù×÷µÄÓïÑÔ¡£ÕâÃÅÓïÑÔÖ§³ÖÁ½ÖÖ»ù±¾Àà
ÐÍ£¬doubleºÍintegerÀàÐÍ¡£»¹ÓÐһЩ¹¦ÄÜ»¹Î´ÊµÏÖ£¬Òò´Ë£¬Äã¿ÉÒÔͨ¹ý×Ô¼ºÈ¥ÊµÏÖÕâЩ¹¦Äܵõ½ÄãÂúÒâµÄ¹¦Äܲ¢ÇÒÄÜΪÄãÀí½â±àдһ¸ö±àÒëÆ÷Ìṩ²»
ÉٵİïÖú¡£
1.3 ÎÊÌâ½â´ð
1.3.1 ÎÒÐèÒªÁ˽âʲôÑùµÄÓïÑÔ
ÎÒÃÇʹÓõŤ¾ßÊÇ»ùÓÚC/C++µÄ¡£LLVMÊÇ»ùÓÚC++µÄ£¬ÎÒÃǵÄÕâ¸öÓïÑÔÒ²»ùÓÚC++£¬ÒòΪC++¾ßÓкܶàÃæÏò¶ÔÏóµÄÓŵãºÍ¿ÉÒÔ±»ÖØÓõÄ
STL¡£´ËÍâ¶ÔÓÚC£¬LexºÍBison¶¼¾ßÓÐÄÇЩ³õ¿´ÆðÀ´ÁîÈËÃÔ»óµÄÓï·¨£¬µ«ÊÇÎÒ½«¾¡¿ÉÄܵÄÈ¥½âÊÍËû¡£ÎÒÃÇÐèÒª´¦ÀíµÄÓï·¨·Ç³£Ð¡£¬×î¶à¾Í100ÐУ¬Òò´Ë
ËüÊDZȽÏÈÝÒ×Àí½âµÄ¡£
1.3.2 ºÜ¸´ÔÓÂð£¿
ÊÇ»ò·ñ£¬ÕâÀïÃæÓкܶàµÄ¶«Î÷ÄãÐèÒªÁ˽⣬ÉõÖÁ¶àµÄÈÃÈ˸оõµ½º¦Å£¬µ«ÊÇÀÏʵ˵£¬ÆäʵÕâЩ¶¼·Ç³£¼òµ¥£¬ÎÒÃÇͬÑù»áʹÓúܶ๤¾ß·Ö½âÕâЩ²ã´ÎµÄ¸´ÔÓÐÔ£¬²¢Ê¹µÃÕâЩÄÚÈݿɹÜÀí¡£
1.3.3 Íê³ÉËüÐèÒª¶à³¤Ê±
Ïà¹ØÎĵµ£º
No.1 ij×Ö·ûÆ÷·Åµ½Õ³Ìù°æ:
System.setClipboard(strContent);
No.2 ¸´ÖÆÊý×é:
//dummy solution( well, it works )
var bar:ArrayCollection = new ArrayCollection();
for each ( var i:Object in ac ){
bar.addItem( i );
}
// fantastic ! //
var bar:ListCollectionView = new ListCollectionVi ......
Æäʵ¶ÔÓÚÕâ¸öÌâÄ¿ÊDz»Ç¡µ±µÄ£¬ÒòΪflexÖÐÊÇûÓÐÒ³ÃæÕâ¸ö¸ÅÄîµÄ£¬Ò³ÃæÔÚflexÀïÃæÆäʵ¾ÍÊÇÒ»¸ö¸öµÄCanvas£¬vbox£¬
hboxµÈµÈÖ®ÀàµÄ¶«Î÷£¬¿´µ½µÄ²»Í¬Ò³ÃæµÄÇл»£¬¾ÍÊÇÕâÐ©ÔªËØÒ»²ã²ãµÄ¶Ñ»ý£¬»òÕßÌæ»»£¬µ«ÊÇΪÁ˺ÃÀí½â£¬»¹ÊdzÆÖ®Îª
"Ò³ÃæÌø×ª"¡£ÆäʵÎÒÃÇ¿ÉÒԶԱȴ«Í³µÄC/S¿ª·¢Ä£Ê½£¬Ã»Ò³ÃæÌø×ª£¬Ö»Óд°ÌåºÍÔª¼þµÄÏÔʾºÍÒ ......
ǰÆÚ×¼±¸£º
µã»÷File²Ëµ¥ -> New -> MXML Component£¬È»ºóµ¯³öÒ»¸ö¶Ô»°¿ò¡£
ÔÚ¶Ô»°¿òÖÐÊäÈë×é¼þÃû£¬Ñ¡Ôñ´Ë×é¼þ¼Ì³ÐµÄÀàÐÍ£¬È磺Canvas£¬DataGrid£¬ComboBox …… µÈ¡£
È»ºóÑ¡Ôñ×é¼þµÄ´óС£¬µã»÷Finish¼´¿É¡£
¹ØÓÚ×é¼þ¼Ì³ÐµÄÀàÐÍ£¬¼ÙÉèBased on  ......
ä¯ÀÀÆ÷¼ÓÔØswfºó£¬Flex×é¼þ×Ô¶¯»ñÈ¡ÊäÈë½¹µã¡£
1.ÔÚflexÖÐÉèÖý¹µã
as3 ´úÂë
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationCom ......
TypeError: Error #1034: 強ÖÆÐÍ変換¤Ëʧ敗¤·¤Þ¤·¤¿¡£jp.co.nec.necst.pi.ap2web::TestEvent@1645ee79 ¤ò jp.co.nec.necst.pi.ap2web.TestEvent ¤Ë変換¤Ç¤¤Þ¤»¤ó¡£
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispat ......