X-Git-Url: https://jxself.org/git/?p=zilutils.git;a=blobdiff_plain;f=zilasm%2Fdirectives.h;h=5988c0a6ae2ffdba5d7d9ba3375fbf8a5df5db18;hp=5b5982ebf96ba7a30253e57a68c2b36e32da5997;hb=HEAD;hpb=37d32bd49e745a5c1686b6495f60172b24222361 diff --git a/zilasm/directives.h b/zilasm/directives.h index 5b5982e..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 @@ -22,13 +22,30 @@ #ifndef ZILASM_DIRECTIVES #define ZILASM_DIRECTIVES 1 -typedef int (*Directive_handler)(const char *directive_args); +class CParser; -typedef struct { - const char name[16]; - Directive_handler handler; +typedef int (*Directive_handler) (const char *directive_args, CParser* parser); + +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 */