X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=zilasm%2Fdirectives.h;h=9f66060c1e16e4d550697dd7c1ad105a1e7f1940;hb=b1f151e1500e1fdadafaab6b13df6e0a8f32136e;hp=5b5982ebf96ba7a30253e57a68c2b36e32da5997;hpb=e66bff85f58de39f1b850a713413b0d9c10bb9a1;p=zilutils.git 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 */