일지

인터프리터...13

niamdank 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