±âº» ºÐ¼®±â(Default Parser)¶õ ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â µðÆúÆ® ºÐ¼®±âÀÌ´Ù. C³ª HTML, ÀÚ¹Ù ¹®¼µéÀº ¾ö°ÝÇÑ ¹®¹ýÀ» °¡ÁöÁö¸¸ ¸Å´º¾óÀ̳ª ¼Ò¼³, ¸Þ¸ð °°Àº ÅؽºÆ®µéÀº Ưº°È÷ Àû¿ëÇÒ ¹®¹ýÀÌ ¾øÀ¸¹Ç·Î ¸ðµç ÅؽºÆ®´Â ÀÏ¹Ý ¹®ÀÚ¿·Î Ãâ·ÂµÇ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î Readme.txt °°Àº ÀÏ¹Ý ÅؽºÆ® ÆÄÀÏÀº ±¸¹® ºÐ¼®À» ÇÒ¸¸ÇÑ ±ÔÄ¢ÀÌ ¾øÀ¸¹Ç·Î ºÐ¼®ÇÒ ÇÊ¿äµµ ¾øÀÌ Èò¹ÙÅÁ¿¡ °ËÁ¤»öÀ¸·Î ¹®ÀÚ¿À» Ãâ·ÂÇÏ¸é µÈ´Ù.
±×·¯³ª ApiEdit¿¡ ¹®¹ý°Á¶ ±â´ÉÀÌ µé¾î°¡°Ô µÇ¸é ¸ðµç Ãâ·ÂÄÚµåµéÀÌ ÀÌ ±â´ÉÀ» Áö¿øÇϱâ À§ÇØ Àü¸éÀûÀ¸·Î ¼öÁ¤µÇ¾î¾ß Çϴµ¥ ÀÏ¹Ý ÅؽºÆ®¸¦ À§Çؼ ¹®¹ý°Á¶¸¦ ÇÏÁö ¾Ê´Â ÄÚµå±îÁö À¯ÁöÇÏ·Á¸é ¹«Ã´ ¹ø°Å·Î¿öÁú °ÍÀÌ´Ù. ¹®¹ý°Á¶°¡ ÇÊ¿äÇÒ ¶§¿Í ±×·¸Áö ¾ÊÀ» ¶§¸¦ ±¸ºÐÇÏÀÚ¸é ÄÚµå´Â ´ÙÀ½°ú °°¾ÆÁú °ÍÀÌ´Ù.
if (¹®¹ýÀÌ ÀÖ´Â ¹®¼) {
±¸¹® ºÐ¼®À» ÇÑ ÈÄ Ãâ·Â
} else {
ÀÏ¹Ý ¹®ÀÚ¿·Î Ãâ·Â
}
Ãâ·Â ÄÚµå»Ó¸¸ ¾Æ´Ï¶ó ºÐ¼®±â »ý¼º, °ü¸®, Æı«, ÆíÁý µî ¸ðµç ÄÚµåµéÀÌ ¹®¹ý À¯¹«¿¡ µû¶ó µÎ¹úÀÇ Äڵ带 °¡Á®¾ß Çϴµ¥ ÀÌ·¸°Ô ÇÏÀÚ¸é Äڵ带 À¯Áö, °ü¸®ÇϱⰡ ¾î·Á¿öÁø´Ù. ÀÌ·² ¶§´Â ¾à°£ÀÇ ¹ß»ó ÀüȯÀ¸·Î µÎ ¹úÀÇ Äڵ带 Çϳª·Î ÅëÇÕÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
¹®¹ýÀÌ ¾ø´Ù´Â ¸»Àº ¸ðµç ¹®ÀÚ¿ÀÇ ½ºÅ¸ÀÏÀÌ ÀÏ¹Ý ¹®ÀÚ¿À̶ó´Â ¶æ°ú °°´Ù. Áï ÀÏ¹Ý ÅؽºÆ®µµ ±¸¹® ºÐ¼®À» Çϱâ´Â Ç쵂 ºÐ¼®°á°ú¸¦ ȹÀÏÀûÀ¸·Î °°°Ô ¸¸µå´Â °ÍÀÌ´Ù. ¹®¹ýÀÌ Àû¿ëµÇÁö ¾Ê´Â ¹®¼µµ ¹®¹ýÀ» °¡Áö°Ô ¸¸µêÀ¸·Î½á ApiEditÀÇ ºÐ¼® °ü·Ã Äڵ带 ÀϹÝȽÃų ¼ö ÀÖ´Ù. À̶§ »ç¿ëµÇ´Â ºÐ¼®±â°¡ ¹Ù·Î ±âº» ºÐ¼®±âÀÌ´Ù. ±âº» ºÐ¼®±â´Â ºÐ¼®°á°ú´Â ´Ü¼øÇÏÁö¸¸ C++ ºÐ¼®±â, ÀÚ¹Ù ºÐ¼®±â µî°ú µ¿ÀÏÇÑ ÀÚ°ÝÀ» °¡Áö¸ç ApiEditÀÇ ±¸¹® ºÐ¼® ¿äûÀ» ¸Å²ô·´°Ô ó¸®ÇÏ´Â ÀÏÁ¾ÀÇ Ç÷¹À̽º Ȧ´õ(Place Holder) ¿ªÇÒÀ» ÇÑ´Ù.
±âº» ºÐ¼®±â´Â pInfo ¹è¿¿¡ ºÐ¼®°á°ú¸¦ ÀÛ¼ºÇϱâ´Â ÇÏÁö¸¸ ½ÇÁ¦·Î ¹®¼¸¦ ºÐ¼®ÇÏÁö´Â ¾Ê±â ¶§¹®¿¡ Äڵ嵵 ¾ÆÁÖ °£´ÜÇÏ´Ù. Parse.h¿¡ ´ÙÀ½°ú °°ÀÌ CParseNull Ŭ·¡½º¸¦ ¼±¾ðÇϵµ·Ï ÇÏÀÚ.
class CParseNull : public CParse
{
public:
CParseNull();
~CParseNull() {};
TCHAR *GetInfo(int iIndex);
private:
void ParseLine(CApiEdit &ae,int nLine);
};
¿øÄ¢ÀûÀ¸·Î Ŭ·¡½º´ç ÇϳªÀÇ Çì´õ ÆÄÀÏÀ» µû·Î ¸¸µå´Â °ÍÀÌ ÁÁÁö¸¸ ¸ðµâÀÌ ¸¹¾ÆÁö¸é ½Ç½ÀÇغ¸±â ¾î·Á¿ì¹Ç·Î ºÐ¼®±â °ü·Ã ÄÚµå´Â °è¼Ó Parse.h, Parse.cpp¿¡ ÀÛ¼ºÇϱâ·Î ÇÏÀÚ. ±âº» ºÐ¼®±â Ŭ·¡½º CParseNullÀº CParse·ÎºÎÅÍ »ó¼ÓÀ» ¹ÞÀ¸¹Ç·Î pInfo, ParseSize µîÀÇ ¸â¹öº¯¼ö¿Í MakeParseInfo, DeleteParseInfo, ParseLines µîÀÇ ¸â¹öÇÔ¼ö¸¦ ±×´ë·Î »ó¼Ó¹Þ´Â´Ù. »ý¼ºÀÚ¿Í CParse°¡ ±¸ÇöÇÏÁö ¾Ê´Â ¼ø¼ö °¡»óÇÔ¼ö µÎ °³´Â Á¤ÀÇÇØ¾ß ÇÑ´Ù. ±¸Çö ÄÚµå´Â ´ÙÀ½°ú °°À¸¸ç CParse.cpp¿¡ ÀÛ¼ºÇÑ´Ù.
CParseNull::CParseNull()
{
lstrcpy(arStyle[0].name,"º¸Åë");
arStyle[0].fore=(DWORD)-1;
arStyle[0].back=(DWORD)-1;
}
TCHAR *CParseNull::GetInfo(int iIndex)
{
switch (iIndex) {
case 0:
return (TCHAR *)0;
case 1:
return TEXT(" \t\r\n\"\¡¯\\.,<>:;/()[]{}~!@#%^&*-+=?|$");
default:
return TEXT("");
}
return 0;
}
void CParseNull::ParseLine(CApiEdit &ae,int nLine)
{
int nUnit=0;
MakeParseInfo(nLine,nUnit,ae.pLine[nLine].Start,0);
}
ÇÏ´Â ÀÏÀÌ ¾ø±â ¶§¹®¿¡ ÄÚµå´Â Á¤¸» Áö±ØÈ÷ °£´ÜÇÏ´Ù. »ý¼ºÀÚ´Â ½ºÅ¸ÀÏ¿¡ µû¸¥ »ö»óÀ» Á¤ÀÇÇÑ´Ù. ±âº» ºÐ¼®±â´Â 0¹øÀÇ º¸Åë ½ºÅ¸ÀϹۿ¡ °¡ÁöÁö ¾ÊÀ¸¸ç ÀÌ ½ºÅ¸ÀÏÀÇ »ö»óÀº ¸ðµÎ -1ÀÌ´Ù. Áï ApiEditÀÇ µðÆúÆ® »ö»óÀ» ±×³É ¾´´Ù´Â ¶æÀÌ´Ù. µû¶ó¼ ¸ðµç ¹®ÀÚ¿Àº ÀÏ¹Ý ¹®ÀÚ¿·Î Çؼ®µÇ¸ç ApiEdit°¡ Á¤ÀÇÇÑ »ö»ó´ë·Î Ãâ·ÂµÈ´Ù.
GetInfo ÇÔ¼ö´Â ºÐ¼®±âÀÇ °íÀ¯ Á¤º¸¸¦ Á¶»çÇÑ´Ù. iIndex·Î ¾Ë°í ½ÍÀº Á¤º¸ÀÇ ¹øÈ£¸¦ Àü´ÞÇÏ¸é ´ÙÀ½°ú °°Àº °ªÀ» ¸®ÅÏÇÑ´Ù.
¹øÈ£ |
¼³¸í |
0 |
ºÐ¼®±âÀÇ °íÀ¯ ¹øÈ£ÀÎ IDÀÌ´Ù. ÀÌ °ªÀº È£½ºÆ®°¡ ÇöÀç ¼±ÅÃµÈ ºÐ¼®±â¸¦ Á¶»çÇÒ ¶§ »ç¿ëµÈ´Ù. Á¤¼öÇüÀ» ¸®ÅÏÇϹǷΠȣÃâÃø¿¡¼´Â int·Î ij½ºÆÃÇØ¾ß ÇÑ´Ù. ºÐ¼®±â°¡ Ãß°¡µÉ ¶§¸¶´Ù 1¾¿ Áõ°¡ÇÏ´Â °íÀ¯ ID¸¦ ºÙ¿© ÁÖ¸é µÈ´Ù. |
1 |
±¸ºÐÀÚ ¹®ÀÚ¿ÀÌ´Ù. ¹®¹ý¿¡ µû¶ó ÀÎÁ¤ÇÏ´Â ±¸ºÐÀÚ ¸ñ·ÏÀº ´Þ¶óÁø´Ù. |
2 |
ÇÑ ÁÙ ÁÖ¼® ¹®ÀÚ¿ÀÌ´Ù. CÀÇ °æ¿ì // |
3 |
ºí·Ï ÁÖ¼®ÀÇ ½ÃÀÛ ¹®ÀÚ¿ÀÌ´Ù. CÀÇ °æ¿ì /* |
4 |
ºí·Ï ÁÖ¼®ÀÇ ³¡ ¹®ÀÚ¿ÀÌ´Ù. CÀÇ °æ¿ì */ |
5 |
µé¿©¾²±â¸¦ ÇÒ ¹®ÀÚ¿ÀÌ´Ù. C´Â {, ÆĽºÄ®Àº begin |
6 |
³»¾î¾²±â¸¦ ÇÒ ¹®ÀÚ¿ÀÌ´Ù. C´Â }, ÆĽºÄ®Àº end |
CParseNull::GetInfo ÇÔ¼ö´Â ID·Î 0À» ¸®ÅÏÇÏ¸ç ±¸ºÐÀÚ´Â À¢¸¸ÇÑ ±âÈ£µéÀ» ´Ù Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÁÖ¼®°ú µé¿©¾²±â´Â Áö¿øÇÏÁö ¾ÊÀ¸¹Ç·Î 2¹ø ÀÌÈÄÀÇ ¹®ÀÚ¿Àº ¸ðµÎ ºó ¹®ÀÚ¿ÀÌ´Ù.
ParseLine ÇÔ¼ö´Â Àμö·Î Àü´ÞµÈ nLineÀ» ºÐ¼®Çϴµ¥ ±âº» ºÐ¼®±â´Â ¹®¼ ³»¿ë°ú »ó°ü¾øÀÌ ¸ðµç ÁÙÀ» 0¹ø ½ºÅ¸ÀÏ·Î »ó¼ö ºÐ¼®ÇÑ´Ù. MakeParseInfo ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¸ðµç ÁÙÀÇ 0¹ø À¯´Ö styleÀ» 0À¸·Î ÀÛ¼ºÇÏ°í ÀÖ´Ù. ParseLines ÇÔ¼ö´Â nLine ÁÙ±îÁö ÀÌ ÇÔ¼ö¸¦ ¹Ýº¹ÀûÀ¸·Î È£ÃâÇÏ¸ç ±× °á°ú pInfo ¹è¿Àº ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºµÈ´Ù.
ÁÙÀÇ Áß°£¿¡¼ ½ºÅ¸ÀÏÀÌ ¹Ù²î´Â °æ¿ì°¡ ¾ø±â ¶§¹®¿¡ ¸ðµç ÁÙÀÇ À¯´Öµµ ´Ü Çϳª¸¸ ÇÊ¿äÇÏ´Ù. ±âº» ºÐ¼®±â´Â ½ÇÁ¦·Î ¹®¼ ³»¿ëÀ» ºÐ¼®ÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÌ ÄÚµå·Î´Â ºÐ¼®±âÀÇ µ¿ÀÛ°ú ±¸Á¶¸¦ »ìÆ캼 ¼ö ¾ø´Ù. ´ÙÀ½¿¡ À̾îÁö´Â C++ ºÐ¼®±âÀÇ Äڵ带 º¸¸é ºÐ¼®±â°¡ ¾î¶² ½ÄÀ¸·Î ¹®¼¸¦ ºÐ¼®Çس»´ÂÁö º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.