¡¾×ª¡¿Ê¹ÓÃ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 ......
ʲôÊÇAsyncToken£¿¹Ù·½ÎĵµÊÇÕâÑùÃèÊöµÄ£º"Õâ¸öÀàÕë¶ÔÒì²½RPC²Ù×÷ÌṩÁËÒ»¸öÓÃÀ´ÉèÖöîÍâµÄ»òÕßÁîÅƼ¶Êý¾ÝµÄµØ·½¡£ËüÒ²ÔÊÐíÒ»¸öIResponder×÷Ϊһ¸ö¶ÀÁ¢µ÷Óñ»¸½¼Ó¡£Õâ¸öAsyncTokenÄܹ»ÔÚResultEventºÍFaultEventÖÐÓÃtokenÊôÐÔÀ´ÒýÓá£"
Èç¹ûÄ㶠......
[Bindable]¾ÍÊÇËùνµÄÔªÊý¾Ý±êÇ©¡£ÔªÊý¾Ý±êÇ©ÊÇÒ»ÖÖÌØÊâµÄ±êÇ©£¬ËüÔÚ´úÂëÖеÄ×÷ÓþÍÊÇÏò±àÒëÆ÷ÌṩÈçºÎ±àÒë³ÌÐòµÄÐÅÏ¢¡£Êµ¼ÊÉÏ£¬ÕâЩ±êÇ©²¢Ã»Óб»±àÒëµ½Éú³ÉµÄSWFÎļþÖУ¬¶øÖ»ÊǸæËß±àÒëÆ÷ÈçºÎÉú³ÉSWFÎļþ¡£
[Bindable]
BindableÔªÊý¾Ý±êÇ©ÊÇ×î¾³£Óõ½µÄÒ»¸öÔªÊý¾Ý±êÇ©£¬ÒòΪËüʹ³ÌÐò×é¼þÖ®¼äµÄÊý¾Ýͬ²½±äµÃºÜÈÝÒס£Bin ......
flex ÕýÔò±í´ïʽѧϰ×ÊÁÏ
Ò»°ãÀ´Ëµ¸÷¸ö¿ª·¢»·¾³»òÕßÓïÑÔ¶ÔÓÚÕýÔò±í´ïʽµÄ
ʵÏÖ²»ÊÇÍêÈ«Ò»ÑùµÄ£¬µ«ÊDzî±ð¶¼·Ç³£Ï¸Î¢¡£AS3°´ÕÕECMA262±ê׼ʵÏÖÕýÔò±í´ïʽ£¬¸Ð¾õ°ïÖúÎĵµ¶ÔÕⲿ·Ö½éÉܵIJ»ÊǺܺ㬺ܶà¸ÅÄûÓн²Çå³þ£¬ÕâÀïÕÒµ½ÁËÒ»¸ö²»´íµÄѧϰ×ÊÁÏ£¬Èç¹û°ïÖúÎĵµÀïÃæÓп´²»¶®µÄ¿ÉÒԲο¼Ï£¡
½Ò¿ªÕýÔò±í´ïʽµÄÉñÃØÃæÉ´ ¹Ø ......
ä¯ÀÀÆ÷¼ÓÔØswfºó£¬Flex×é¼þ×Ô¶¯»ñÈ¡ÊäÈë½¹µã¡£
1.ÔÚflexÖÐÉèÖý¹µã
as3 ´úÂë
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationCom ......