¡¾×ª¡¿Ê¹ÓÃ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 Íê³ÉËüÐèÒª¶à³¤Ê±
Ïà¹ØÎĵµ£º
Flex ѧϰվµã»ã×Ü
05ÔÂ 6th, 2007 — Dreamer
½ñÌì°ÑÊղؼй²Ïí³öÀ´£¬Ï£Íû¶ÔѧϰFlexµÄÈËÓÐËù°ïÖú¡£
Ò»¡¢¹úÍâÕ¾µã
1.×ÊÔ´Àà
Adobe Flex 2 Component Explorer£º ¹Ù·½µÄ£¬Õ¹Ê¾Á˸÷ÖÖ×é¼þµÄÓ÷¨£¬ÈëÃűؿ´¡£
CFlex£ººÜºÃµÄÒ»¸öFlex×ÊÔ´Õ¾µã£¬°üÀ¨½Ì³Ì£¬ÐÂÎÅ£¬×ÊÔ´Õ¾µã…… Ö»ÊÇÒ³ÃæÓеãÔÓÂÒ£¬ ......
ʲôÊÇAsyncToken£¿¹Ù·½ÎĵµÊÇÕâÑùÃèÊöµÄ£º"Õâ¸öÀàÕë¶ÔÒì²½RPC²Ù×÷ÌṩÁËÒ»¸öÓÃÀ´ÉèÖöîÍâµÄ»òÕßÁîÅÆ¼¶Êý¾ÝµÄµØ·½¡£ËüÒ²ÔÊÐíÒ»¸öIResponder×÷Ϊһ¸ö¶ÀÁ¢µ÷Óñ»¸½¼Ó¡£Õâ¸öAsyncTokenÄܹ»ÔÚResultEventºÍFaultEventÖÐÓÃtokenÊôÐÔÀ´ÒýÓá£"
Èç¹ûÄã¶ ......
1¡¢arraycollectionת»¯Îªxml£¬´úÂëÈçÏ£º
//¶¯Ì¬Éú³ÉÊ÷Ðνṹ
public static function flatArrayToXML(arr:Object,rootname:String=null,nodename:String=null, outputString:Boolean=false):Object{
if (arr is Array){
......
1¡¢Èç¹ûÒªÉèÖÃValidatorÑéÖ¤×é¼þÀïÃæÌáʾ×ֵĴóС£¬¿ÉÒÔÔÚmxmlÖмÓÈë
<mx:Style>
<!--[CDATA[
.errorTip
{
fontSize: 12;
}
]]-->
</mx:Style>
2¡¢ÉèÖÃtooltipÖеÄÑùʽ£¨Èç×ÖÌå´óС£¬ÑÕÉ«£©¿ÉÔÚmxmlÖеÄcreationCompleteµÄinitApp()¼ÓÈë
......
ÀûÓÃSocketʵÏÖC++ÓëFlexͨÐÅ
Ò»¡¢C++·þÎñÆ÷¶Ë
£¨ÓõÄÊÇVisual Studio 2008£¨05£¬03µÄÓ¦¸ÃÒ²¿ÉÒÔ£¬VC++µÄ¿ÉÄÜÐèÒªÉÔ΢¸Ä¶¯£©£©
´úÂëÈçÏ£º
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib ......