view anagram/support/suppinst.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 1997-1999 Parsifal Software. All Rights Reserved.
 * Copyright 2006 David A. Holland. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * suppinst.cpp - template instantiation
 */

#include "agarray.h"
#include "agbaltree.h"
#include "agnotify.h"
#include "agstring.h"
#include "register.h"

//#define INCLUDE_LOGGING
#include "log.h"

#include "agarray-imp.h"
#include "agbaltree-imp.h"
#include "agstack-imp.h"
#include "register-imp.h"

////////////////////////////////////////////////////////////

#ifdef __IBMCPP__
/* last pruned 20061022 */
/* last tested 20061022 */

// balanced tree
#pragma define(AgBalancedTree<int>)

// stack
#pragma define(AgStack<AgNotificationActionBase *>)
#pragma define(AgStack<AgNotifierBase*>)
#pragma define(AgStack<AgString>)
#pragma define(AgStack<char>)
#pragma define(AgStack<void *>)

#endif /* __IBMCPP__ */

////////////////////////////////////////////////////////////

#ifdef __WATCOM_CPLUSPLUS__
/* last pruned 20061022 */
/* last tested who-knows-when */

// Watcom 10.6 doesn't seem to have any mechanism for forcing template
// expansions.

// balanced tree
typedef AgBalancedTree<int>                                   foo1;

#endif /* __WATCOM_CPLUSPLUS__ */

////////////////////////////////////////////////////////////

#ifdef _MSC_VER
/* last pruned 20061022 */
/* last tested who-knows-when */

// balanced tree
template class AgBalancedTree<int>;

// stack
template class AgStack<AgString>;
template class AgStack<char>;
template class AgStack<void *>;

#endif /* _MSC_VER */

////////////////////////////////////////////////////////////

#ifdef __GNUC__
/* last pruned 20061022 */
/* last tested 20061022 */

// balanced tree
template class AgBalancedTree<int>;

// stack
template class AgStack<AgNotificationActionBase *>;
template class AgStack<AgNotifierBase *>;
template class AgStack<AgString>;
template class AgStack<char>;
template class AgStack<void *>;

#endif /* __GNUC__ */

////////////////////////////////////////////////////////////

#ifdef __BCPLUSPLUS__
/* last pruned 20061022 */
/* last tested who-knows-when */

#pragma option -Jgd

// balanced tree
typedef AgBalancedTree<int>             foo11;

// stack
typedef AgStack<AgString>               foo21;
typedef AgStack<char>                   foo22;
typedef AgStack<void *>                 foo23;

#endif /* __BCPLUSPLUS__ */