Compare commits

..

No commits in common. "61951d703449d1da0ed1a640c592ed030b589a45" and "e956c0e3a569e6180750a8f3cea6bfec35643db0" have entirely different histories.

5 changed files with 21 additions and 46 deletions

View file

@ -4,35 +4,33 @@
#include <string>
//list of keywords
//types denoted by the index within the enum class
//this is so its easy to pass this info to the parser
enum class Keywords {
identifier, //type 0
integer, //type 1
floatpnt, //type 2
string, //type 3
character, //type 4
boolean, //type 5
plus, //type 6
minus, //type 7
multiply, //type 8
divide, //type 9
l_Paren, //type 10
r_Paren, //type 11
l_Brace, //type 12
r_Brace, //type 13
l_Brack, //type 14
r_Brack, //type 15
semicolon, //type 16
end_of_file, //type 17
unknown //type 18
identifier,
integer,
floatpnt,
string,
character,
boolean,
plus,
minus,
multiply,
divide,
l_Paren,
r_Paren,
l_Brace,
r_Brace,
l_Brack,
r_Brack,
semicolon,
end_of_file,
unknown
};
struct Token {
Keywords type;
std::string value;
Token(Keywords type, std::string value) : type(type), value(value) {}
};

View file

@ -1,9 +0,0 @@
Type: 0, Value: int
Type: 0, Value: main
Type: 10, Value: (
Type: 11, Value: )
Type: 12, Value: {
Type: 0, Value: return
Type: 1, Value: 0
Type: 16, Value: ;
Type: 13, Value: }

Binary file not shown.

View file

@ -49,7 +49,7 @@ Lexer::Lexer(const std::string &input) {
Token Lexer::getNextToken() {
while (currentChar != '\0') {
//std::cout << currentChar << std::endl;
std::cout << currentChar << std::endl;
if (std::isspace(currentChar)) {
skipWhiteSpace();

View file

@ -5,10 +5,6 @@
#include "/home/mason/code-shit/ProfaneC/headers/lexer.h"
//overloads the << operator to output token type as an integer
//followed by the token value
//the integers corrispond to the order defined in the Keywords enum class
//reference lexer.h for map of token types to indecies
std::ostream& operator<<(std::ostream& os, const Token& token) {
os << "Type: " << static_cast<int>(token.type) << ", Value: " << token.value;
return os;
@ -48,15 +44,5 @@ int main() {
std::cout << tokenVec.at(i) << std::endl;
}
std::ofstream file_out("/home/mason/code-shit/ProfaneC/lexerOutput.txt");
if (file_out.is_open()) {
for (int i = 0; i < tokenVec.size(); i++) {
file_out << tokenVec.at(i) << std::endl;
}
}
file_out.close();
return 0;
}