From 93cc368a3c1d961cf9a0baef76334518ab5e1bab Mon Sep 17 00:00:00 2001 From: Eero Holmala Date: Tue, 30 May 2023 14:16:55 +0300 Subject: [PATCH] Add Learning/Parser --- Learning/Parser/.gitignore | 2 ++ Learning/Parser/Assets/test.xml | 6 ++++ Learning/Parser/CMakeLists.txt | 11 ++++++++ Learning/Parser/Parser.cpp | 49 +++++++++++++++++++++++++++++++++ Learning/Parser/Parser.hh | 17 ++++++++++++ Learning/Parser/main.cpp | 10 +++++++ 6 files changed, 95 insertions(+) create mode 100644 Learning/Parser/.gitignore create mode 100644 Learning/Parser/Assets/test.xml create mode 100644 Learning/Parser/CMakeLists.txt create mode 100644 Learning/Parser/Parser.cpp create mode 100644 Learning/Parser/Parser.hh create mode 100644 Learning/Parser/main.cpp diff --git a/Learning/Parser/.gitignore b/Learning/Parser/.gitignore new file mode 100644 index 0000000..7f7adc5 --- /dev/null +++ b/Learning/Parser/.gitignore @@ -0,0 +1,2 @@ +/build +/.vscode \ No newline at end of file diff --git a/Learning/Parser/Assets/test.xml b/Learning/Parser/Assets/test.xml new file mode 100644 index 0000000..c10a927 --- /dev/null +++ b/Learning/Parser/Assets/test.xml @@ -0,0 +1,6 @@ + + + + Hello World + + diff --git a/Learning/Parser/CMakeLists.txt b/Learning/Parser/CMakeLists.txt new file mode 100644 index 0000000..b491c02 --- /dev/null +++ b/Learning/Parser/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.0.0) +project(Parser VERSION 0.1.0) + +include(CTest) +enable_testing() + +add_executable(Parser main.cpp Parser.cpp Parser.hh) + +set(CPACK_PROJECT_NAME ${PROJECT_NAME}) +set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) +include(CPack) diff --git a/Learning/Parser/Parser.cpp b/Learning/Parser/Parser.cpp new file mode 100644 index 0000000..d113796 --- /dev/null +++ b/Learning/Parser/Parser.cpp @@ -0,0 +1,49 @@ +#include "Parser.hh" + +#include + +namespace Parser +{ + Parser::Parser() + { + + } + + bool Parser::Parse(char *path) + { + char ch; + std::fstream fin(path, std::fstream::in); + + if(!fin.is_open()){ + std::cout << "Could not open file " << path << "\n"; + return false; + } + + while (fin >> std::noskipws >> ch) + { + Parser::Consume(ch); + + } + fin.close(); + + return true; + } + + Parser::~Parser() + { + } + + void Parser::Consume(char c) + { + switch (c) + { + case '<': + + break; + + default: + std::cout << c; + break; + } + } +} \ No newline at end of file diff --git a/Learning/Parser/Parser.hh b/Learning/Parser/Parser.hh new file mode 100644 index 0000000..596cf96 --- /dev/null +++ b/Learning/Parser/Parser.hh @@ -0,0 +1,17 @@ +#pragma once + +#include + +namespace Parser +{ +class Parser { +public: + Parser(); + bool Parse(char* path); + ~Parser(); +private: + void Consume(char c); + int m_rowCount; + int m_colCount; +}; +} \ No newline at end of file diff --git a/Learning/Parser/main.cpp b/Learning/Parser/main.cpp new file mode 100644 index 0000000..8bbe1d1 --- /dev/null +++ b/Learning/Parser/main.cpp @@ -0,0 +1,10 @@ +#include +#include + +#include "Parser.hh" + +int main(int argc, char** argv) +{ + Parser::Parser* p = new Parser::Parser(); + bool result = p->Parse("../Assets/test.xml"); +}