2025-01-25 Latest Changes
This commit is contained in:
@@ -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;
|
||||
|
||||
};
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user