Mercurial > ~dholland > hg > ag > index.cgi
view anagram/agcore/engdef.cpp @ 21:1c9dac05d040
Add lint-style FALLTHROUGH annotations to fallthrough cases.
(in the parse engine and thus the output code)
Document this, because the old output causes warnings with gcc10.
author | David A. Holland |
---|---|
date | Mon, 13 Jun 2022 00:04:38 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
/* * AnaGram, A System for Syntax Directed Programming * Copyright 2006 David A. Holland. All Rights Reserved. * See the file COPYING for license and usage terms. * * engdef.cpp - engine definition file * * This file obsoletes the external AnaGram.cgb file found * in older versions of AnaGram. */ #include <stdlib.h> #include <string.h> #include "port.h" // for OPTLINK #include "engdef.h" //#define INCLUDE_LOGGING #include "log.h" #include "engine.h" static int OPTLINK cgtable_sort(const void *ventrya, const void *ventryb) { const cgentry *entrya = (const cgentry *)ventrya; const cgentry *entryb = (const cgentry *)ventryb; return strcmp(entrya->name, entryb->name); } static int OPTLINK cgtable_search(const void *vkey, const void *ventryb) { const char *key = (const char *)vkey; const cgentry *entryb = (const cgentry *)ventryb; return strcmp(key, entryb->name); } void engdef_init(void) { LOGSECTION("engdef_init"); qsort(cgtable, cgtablenum, sizeof(cgtable[0]), cgtable_sort); } const char *engdef_get(const char *key) { const void *ventry; const cgentry *entry; ventry = bsearch(key, cgtable, cgtablenum, sizeof(cgtable[0]), cgtable_search); if (!ventry) { //fprintf(stderr, "warning: cgb key <%s> not found\n", key); return ""; } entry = (const cgentry *)ventry; return entry->data; }