-
인터프리터...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
더보기참고문헌