ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터프리터...13
    일지 2020. 11. 11. 22:18

    파일 처리 및 토큰 처리 준비

     

    Tokenizer.h

    #pragma region 파일 처리
    std::ifstream ifs;
    
    bool OpenFile(char* path)
    {
        ifs.open(path);
        
        if (ifs.is_open())
        {
            return true;
        }
    
        return false;
    }
    #pragma endregion
    
    
    #pragma region 토큰 처리
    string emptyString{ "" };
    
    Token NextToken()
    {
        int ch{ NextCharacter() };
    
        if (ch == EOF)
        {
            return Token(TokenKind::EndOfToken, emptyString);
        }
    
        while (isspace(ch))
        { 
            ch = NextCharacter();
        };
    
        TokenKind tokenKind;
        string str;
    
        switch (charType[ch])
        {
        case TokenKind::Letter:
            break;
        case TokenKind::Digit:
            break;
        case TokenKind::DoubleQuotes:
            break;
        default:
            break;
        }
    
        return Token(tokenKind, str);
    }
    
    int NextCharacter()
    {
        if (ifs.is_open())
        {
            if (ifs.eof())
            {
                ifs.close();
            }
            else
            {
                return ifs.get();
            }
        }
    
        return EOF;
    }
    #pragma endregion

     

    댓글

Designed by Tistory.