/*
* directives.h -- part of ZilUtils/ZilAsm
*
- * Copyright (C) 2016 Jason Self <j@jxself.org>
+ * Copyright (C) 2016, 2020 Jason Self <j@jxself.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ * 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<FILE*> 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 */