X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=zilasm%2Fdirectives.h;h=5988c0a6ae2ffdba5d7d9ba3375fbf8a5df5db18;hb=HEAD;hp=fc889d17ed3b1770aadf7f9ceacf4e3ed2eb38f8;hpb=fd453701e368225dd15e9df2e5b1752aebe454e8;p=zilutils.git diff --git a/zilasm/directives.h b/zilasm/directives.h index fc889d1..9f66060 100644 --- a/zilasm/directives.h +++ b/zilasm/directives.h @@ -1,7 +1,7 @@ /* * directives.h -- part of ZilUtils/ZilAsm * - * Copyright (C) 2016 Jason Self + * Copyright (C) 2016, 2020 Jason Self * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -15,18 +15,37 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see + * + * SPDX-License-Identifier: AGPL-3.0-or-later */ #ifndef ZILASM_DIRECTIVES #define ZILASM_DIRECTIVES 1 -typedef int (*Directive_handler)(const char *directive_args); +class CParser; + +typedef int (*Directive_handler) (const char *directive_args, CParser* parser); -typedef struct { - const char name[16]; - Directive_handler handler; +typedef struct +{ + const char name[16]; + Directive_handler handler; } Directive; -Directive_handler directive_lookup(const char *name, unsigned namelen); +extern int g_stopParsing; +extern stack g_fileHandlers; + + +class CDirectives +{ +public: + CDirectives(CParser *parser); + Directive_handler directive_lookup(const char *name, unsigned namelen); +private: + CParser *m_parser; + + CDirectives(); + //int insert_handler(const char *args); +}; #endif /* ifndef ZILASM_DIRECTIVES */