X-Git-Url: https://jxself.org/git/?p=zilutils.git;a=blobdiff_plain;f=zilasm%2Fdirectives.c;fp=zilasm%2Fdirectives.c;h=0000000000000000000000000000000000000000;hp=7c4eb193569fabd88466794a52cce2b1d334c2d1;hb=633e24778bccbc5f035bdb8516e8cc75c85123d9;hpb=82b0f84ab797141758929d16894d42e12ef79af7 diff --git a/zilasm/directives.c b/zilasm/directives.c deleted file mode 100644 index 7c4eb19..0000000 --- a/zilasm/directives.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * directives.c -- part of ZilUtils/ZilAsm - * - * Copyright (C) 2016 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 - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * 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 - */ - -#include /* bsearch */ -#include /* strcmp */ - -#include "directives.h" - -#define ARRAY_SIZE(x) ((sizeof(x)) / (sizeof(x[0]))) - -static int -byte_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -end_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -endi_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -endt_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -fstr_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -funct_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -gstr_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -gvar_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -insert_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -len_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -new_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -object_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -prop_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -str_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -strl_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -table_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -vocbeg_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -vocend_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -word_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -static int -zword_handler (const char *args) -{ - /* !!! TODO !!! */ - return 0; -} - -// Sorted array -static Directive Directives[] = { - "BYTE", byte_handler, - "END", end_handler, - "ENDI", endi_handler, - "ENDT", endt_handler, - "FSTR", fstr_handler, - "FUNCT", funct_handler, - "GSTR", gstr_handler, - "GVAR", gvar_handler, - "INSERT", insert_handler, - "LEN", len_handler, - "NEW", new_handler, - "OBJECT", object_handler, - "PROP", prop_handler, - "STR", str_handler, - "STRL", strl_handler, - "TABLE", table_handler, - "VOCBEG", vocbeg_handler, - "VOCEND", vocend_handler, - "WORD", word_handler, - "ZWORD", zword_handler -}; - -typedef struct -{ - const char *contents; - unsigned length; -} Name; - -static int -namecmp (const void *key, const void *elem) -{ - const Name *p = (Name *) key; - const Directive *d = (Directive *) elem; - - int len1 = p->length; - int len2 = strlen (d->name); - - int rc = memcmp (p->contents, elem, len1 < len2 ? len1 : len2); - return rc ? rc : (len1 - len2); -} - -Directive_handler -directive_lookup (const char *name, unsigned namelen) -{ - Name n = { name, namelen }; - Directive *p = - (Directive *) bsearch (&n, Directives, ARRAY_SIZE (Directives), - sizeof (Directive), namecmp); - return p ? p->handler : NULL; -}