1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Implement #include keyword with advanced checks and backtrace

This commit is contained in:
starlightduck 2022-05-12 12:54:34 +03:00
parent 1e0b587023
commit 9356a16b84
7 changed files with 113 additions and 9 deletions

View file

@ -35,10 +35,11 @@ namespace funC {
extern int verbosity;
extern bool op_rewrite_comments;
extern std::string generated_from;
constexpr int optimize_depth = 20;
const std::string func_version{"0.1.0"};
const std::string func_version{"0.2.0"};
enum Keyword {
_Eof = -1,
@ -110,7 +111,8 @@ enum Keyword {
_Infixl,
_Infixr,
_Const,
_PragmaHashtag
_PragmaHashtag,
_IncludeHashtag
};
void define_keywords();
@ -828,9 +830,11 @@ extern std::vector<SymDef*> glob_func, glob_vars;
// defined in parse-func.cpp
bool parse_source(std::istream* is, const src::FileDescr* fdescr);
bool parse_source_file(const char* filename);
bool parse_source_file(const char* filename, src::Lexem lex = {});
bool parse_source_stdin();
extern std::stack<src::SrcLocation> inclusion_locations;
/*
*
* EXPRESSIONS