Added ability to define multiple functions (without parameters) and
[zilutils.git] / zilasm / directives.h
index 5b5982ebf96ba7a30253e57a68c2b36e32da5997..9f66060c1e16e4d550697dd7c1ad105a1e7f1940 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
 #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<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 */