2025-01-25 Latest Changes

This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2025-01-25 16:27:50 +01:00
parent f0ffbafee1
commit e191173e7b
18 changed files with 182 additions and 759 deletions
+12 -38
View File
@@ -3,52 +3,26 @@
// AUTOGENERATED COPYRIGHT HEADER END
#pragma once
#include <filesystem>
#include <memory>
#include "ast/ast.hpp"
#include "lexer.hpp"
namespace blitz {
class parser {
std::filesystem::path _file;
std::filesystem::path _file;
std::shared_ptr<blitz::lexer> _lexer;
std::shared_ptr<blitz::ast::node> _expr;
public:
~parser();
parser(std::filesystem::path file);
std::shared_ptr<blitz::ast::node> current();
std::shared_ptr<blitz::ast::node> next();
private:
std::shared_ptr<blitz::ast::node> try_parse(blitz::token token);
std::shared_ptr<blitz::ast::node> try_parse_variable();
};
} // namespace blitz
/*
#include <fstream>
#include <map>
#include <memory>
#include <stack>
#include <string>
#include "ast/value.hpp"
#include "lexer.hpp"
namespace blitz {
class parser {
public:
parser(std::string file);
~parser();
std::unique_ptr<ast::expression> parse();
protected:
void log(const char* msg, ...);
void log_error(const char* msg, ...);
private:
std::pair<blitz::lexer::tokentype, std::string> next();
private:
std::unique_ptr<ast::expression> parse_expression();
std::unique_ptr<ast::NumberExpression> parse_number(blitz::lexer::tokentype token, std::string value);
std::unique_ptr<ast::DecimalExpression> parse_decimal(blitz::lexer::tokentype token, std::string value);
private:
lexer m_lexer;
std::stack<std::pair<std::string, std::shared_ptr<std::istream>>> m_files;
};
}
*/