Website Summary Files Commits Branches @commit @diff @stats
path: root / homework / 81625 / cpp2html / src / main.cpp
diff options
context:
space:
mode:
Commitaeb0d4f887a0c18c36b59acc7b5df08e62020c50 (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2020-10-11 21:32:48 +0300
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2020-10-11 21:33:38 +0300
Filesb6abdc6e1810326b587f2a160f39570f1f568f27 /homework/81625/cpp2html/src/main.cpp
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.tar
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.tar.gz
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.zip
Parent154b7cd30f21af1554ca26986ff1643e28857727 (diff)
Removed old homeworks
1 files changed, 0 insertions, 107 deletions
-rw-r--r--homework/81625/cpp2html/src/main.cpp107
diff --git a/homework/81625/cpp2html/src/main.cpp b/homework/81625/cpp2html/src/main.cpp
deleted file mode 100644
index 92f4d30..0000000
--- a/homework/81625/cpp2html/src/main.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-#include <iostream>
-#include <fstream>
-#include <vector>
-#include "Lexer.h"
-
-void printTokens(std::vector<Token> &tokens)
-{
- for(int i = 0;i<tokens.size();i++)
- {
- std::cout<<tokens[i].type<<" "<<tokens[i].lexeme <<" on line " << tokens[i].line <<std::endl;
- }
-}
-
-void cpp2html(std::vector<Token> &tokens, const char* code)
-{
- std::ofstream out("../cpp2.html");
- std::string header = "<!DOCTYPE html>\n"
- "<html lang=\"en\">\n"
- "<head>\n"
- " <style>\n"
- " body {\n"
- " font-size: 20px;\n"
- " }\n\n"
- " .number {\n"
- " color: pink;\n"
- " }\n\n"
- " .string {\n"
- " color: blue;\n"
- " }\n\n"
- " .keyword {\n"
- " color: purple;\n"
- " font-weight: bold;\n"
- " }\n\n"
- " .operator {\n"
- " color: red;\n"
- " }\n\n"
- " .comment {\n"
- " color: gray;\n"
- " font-style: italic;\n"
- " }\n\n"
- " .preprocessor {\n"
- " color: green;\n"
- " font-weight: bold;\n"
- " }\n\n"
- " </style>\n"
- "</head>\n"
- "<body>\n";
- out << header;
- unsigned codeInd = 0;
- for(int i = 0;i < tokens.size();i++)
- {
- while(code[codeInd] == ' ' || code[codeInd] == '\t' || code[codeInd] == '\n')
- {
- if(code[codeInd] == '\n') out << "<br>";
- else out << "&nbsp";
- //else out <<
- ++codeInd;
- }
- if(tokens[i].type == TokenType::NUMBER)
- {
- out << "<span class=\"number\">" << tokens[i].value <<"</span>";
- }
- else if(tokens[i].type == TokenType::STRING)
- {
- out << "<span class=\"string\">" << tokens[i].lexeme <<"</span>";
- }
- else if(tokens[i].type == TokenType::COMMENT)
- {
- out << "<span class=\"comment\">" << tokens[i].lexeme <<"</span>";
- }
- else if(tokens[i].type <= TokenType::RIGHT_SHIFT_EQUAL)
- {
- out << "<span class=\"operator\">" << tokens[i].lexeme <<"</span>";
- }
- else if(tokens[i].type <= TokenType::XOR_EQ)
- {
- out << "<span class=\"keyword\">" << tokens[i].lexeme <<"</span>";
- }
- else if(tokens[i].type <= TokenType::PRE_PRAGMA)
- {
- out << "<span class=\"preprocessor\">" << tokens[i].lexeme <<"</span>";
- }
- else
- {
- out << tokens[i].lexeme;
- }
- codeInd += tokens[i].lexeme.length();
- }
- out << "\n</body>\n</html>";
- out.close();
-}
-
-int main()
-{
- char code[] = "#include<iostream>\nbool isCapitalCase(char c)\n{\n return c >= 'A' && c <= 'Z';\n}\nm_KeyWordsTable[\"break\"] = TokenType::Break;\n// this is a comment test\n"
- "/* another one */";
- Tokenizer tokenizer(code);
- std::vector<Token> tokens;
-
- if(tokenizer.tokenize(tokens))
- {
- cpp2html(tokens, code);
- }
- //printTokens(tokens);
- return 0;
-}
-