°£´ÜÇÑ Lexer

¹®ÀÚ¿­ Á¾·ùº°·Î ºÐ·ùÇÏ´Â °£´ÜÇÑ Lexer¸¦ ¸¸µé¾î º¸ÀÚ.

¹®ÀÚ¿­ Á¾·ù´Â ´ÙÀ½°ú °°´Ù.

enum   TOKEN_TYPE    { TOKEN_UNKNOWN, TOKEN_ERROR, TOKEN_END, TOKEN_DELIMITER, TOKEN_VAR, TOKEN_NUMBER, TOKEN_STRING };

TOKEN_DELIMITER  : ±¸ºÐÀÚ
TOKEN_VAR : º¯¼ö
TOKEN_NUMBER : ¼ýÀÚ
TOKEN_STRING : ¹®ÀÚ¿­

char* CLexer::OpenFile( const char* szFileName )

[in]   szFileName  ¿ÀÇÂÇÒ ÆÄÀÏ
¹Ýȯ°ª  ¿ÀÇÂÇÑ ÆÄÀÏÀÇ ¹®ÀÚ¿­ Æ÷ÀÎÅÍ

¹®ÀÚ¿­À» Á÷Á¢ Builder()·Î ³Ñ°ÜÁÖ´Â °æ¿ì´Â OpenFile()À» ÀÌ¿ë ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

void Build( char* szText )

[in]   szText  ºÐ·ù ÇÒ ¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅÍ

¹®ÀÚ¿­À» ºÐ·ùÇؼ­ m_tokenContainer¿¡ ÀúÀåÇÑ´Ù.

CLexer::TOKEN_TYPE GetToken()

¹Ýȯ°ª  TOKEN_TYPEÀ» ¹ÝȯÇÑ´Ù.

ÇϳªÀÇ ±¸¹® ¹®ÀÚ¿­(´Ü¾î)Àº m_strToken¿¡ ÀúÀåµÈ´Ù.

CLexerÀÇ ÇÙ½ÉÀº GetToken()ÀÌ´Ù.

GetToken()ÀÇ Ã³¸® ¼ø¼­´Â ´ÙÀ½°ú °°´Ù.

1. ÅäÅ« ¾ÕÀÇ °ø¹é¹®ÀÚ Á¦°Å.(½ºÆäÀ̽º ¹®ÀÚ, /t, /r, /n)

2. ±¸ºÐÀÚ °Ë»ç

3. ¹®ÀÚ¿­ °Ë»ç
SearchString()

4. º¯¼öÀÎÁö °Ë»ç
SearchVariable()

5. ¼ýÀÚÀÎÁö °Ë»ç
SearchNumber()

 

CLexer »ç¿ë ¿¹

    CLexer lexer;

    char* pBuffer = lexer.OpenFile("test.cpp");

    lexer.Build( pBuffer );

 

    lexer.DisplayToken();

¿©±â¼­´Â ÆÄÀÏÀ» Á÷Á¢ ¿ÀÇÂÇؼ­ ¹®ÀÚ¿­ ÅäÅ«À» ºô´õÇÏ°í ÀÖ´Ù.
DisplayToken()À» ÅëÇØ ÄܼÖâÀ¸·Î Á÷Á¢ º¸¿©ÁÖ°í ÀÖ´Ù.

CLexerÀÇ ¹ÌºñÇÑÁ¡:
È°¿ë¼ºÀ» ³ôÀÌ°í º¹ÀâÇØÁö±â Àü¿¡, ±â´É Ãß°¡¸¦ ±×¸¸ µÎ±â·Î Çß´Ù.
±×·¡µµ Ãß°¡ µÇ¾úÀ¸¸é Çϴ±â´ÉÀº ´ÙÀ½°ú °°´Ù.

1. À¯´ÏÄÚµå ó¸®
2. ÁÖ¼® ¹®ÀÚ¿­ ó¸®
3. ÇÑ±Û º¯¼ö ó¸®