Hydrogen/unit/scanner_test.cpp

41 lines
1007 B
C++

#include "Token.h"
#include "doctest.h"
#include "stdc++.h"
#include "Scanner.h"
#include "Tbs.h"
#include <vector>
using std::string,std::vector;
//
TEST_CASE("Scanner test identifier table") {
Tbs tables;
std::string src = "abcvljl laadfs fafarwrw";
Scanner scan(src, tables);
scan.scan();
for (auto value_src: scan.get_token_list()) {
std::cout << value_src.id << " " << value_src.type << "\n";
}
}
TEST_CASE("Scanner test Punct table") {
Tbs tables = {};
std::string src = "+=---<<=>>>===--((([]--<<<>.";
Scanner scan(src, tables);
scan.scan();
std::cout<<"test\n";
for (auto e : scan.get_token_list()) {
std::cout<<e.id<<" "<<e.type<<" "<<tables.PunctTable[e.id]<<"\n";
}
}
TEST_CASE("Scanner test key table") {
Tbs tables = {};
std::string src = "i32";
Scanner scan(src, tables);
scan.scan();
std::cout<<"test\n";
for (auto e : scan.get_token_list()) {
std::cout<<e.id<<" "<<e.type <<"\n";
}
}