/*
 *  DO NOT EDIT THIS FILE   (agexpr.h)
 *  
 *  It has been autogen-ed  Friday November  5, 1999 at 01:42:06 PM PST
 *  From the definitions    stdin
 *  and the template file   agexpr.tpl
 *
 *  copyright 1992-1999 Bruce Korb
 *
 *  AutoGen is free software.
 *  
 *  You may redistribute it and/or modify it under the terms of the
 *  GNU General Public License, as published by the Free Software
 *  Foundation; either version 2, or (at your option) any later version.
 *  
 *  AutoGen 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 General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with AutoGen.  See the file "COPYING".  If not,
 *  write to:  The Free Software Foundation, Inc.,
 *             59 Temple Place - Suite 330,
 *             Boston,  MA  02111-1307, USA.
 */

#ifndef AUTOGEN_AGEXPR_H
#define AUTOGEN_AGEXPR_H

typedef int (tExprFunc)( int         level,
                         tValStack*  pStk,
                         tDefEntry*  pCurDef );

typedef tExprFunc*  tpExprFunc;

#define funcTableCt 37

#ifndef EXPR_PRIVATE
#  ifndef EVAL_PRIVATE
#    error agexpr.h is private to agExpr and agEval
#  endif

extern tpExprFunc*  pExprFuncTable;

#else
static tExprFunc
  evalExpr_CAP,      evalExpr_COUNT,    evalExpr_DFILE,    evalExpr_DNE,      
  evalExpr_DOWN,     evalExpr_ENV,      evalExpr_EXIST,    evalExpr_FIRST,    
  evalExpr_GET,      evalExpr_GPL,      evalExpr_HILIM,    evalExpr_IN,       
  evalExpr_INDEX,    evalExpr_JOIN,     evalExpr_KRSTR,    evalExpr_LAST,     
  evalExpr_LEN,      evalExpr_LGPL,     evalExpr_LOLIM,    evalExpr_MAP,      
  evalExpr_MARK,     evalExpr_MAX,      evalExpr_MIN,      evalExpr_OUTFILE,  
  evalExpr_PREFIX,   evalExpr_PRINTF,   evalExpr_SFX,      evalExpr_SHELL,    
  evalExpr_SHRSTR,   evalExpr_SHSTR,    evalExpr_STACK,    evalExpr_STR,      
  evalExpr_SUM,      evalExpr_TFILE,    evalExpr_TR,       evalExpr_UP,       
  evalExpr_VAL;

static tpExprFunc exprFuncTable[ 37 ] = {
  &evalExpr_CAP,     &evalExpr_COUNT,   &evalExpr_DFILE,   &evalExpr_DNE,     
  &evalExpr_DOWN,    &evalExpr_ENV,     &evalExpr_EXIST,   &evalExpr_FIRST,   
  &evalExpr_GET,     &evalExpr_GPL,     &evalExpr_HILIM,   &evalExpr_IN,      
  &evalExpr_INDEX,   &evalExpr_JOIN,    &evalExpr_KRSTR,   &evalExpr_LAST,    
  &evalExpr_LEN,     &evalExpr_LGPL,    &evalExpr_LOLIM,   &evalExpr_MAP,     
  &evalExpr_MARK,    &evalExpr_MAX,     &evalExpr_MIN,     &evalExpr_OUTFILE, 
  &evalExpr_PREFIX,  &evalExpr_PRINTF,  &evalExpr_SFX,     &evalExpr_SHELL,   
  &evalExpr_SHRSTR,  &evalExpr_SHSTR,   &evalExpr_STACK,   &evalExpr_STR,     
  &evalExpr_SUM,     &evalExpr_TFILE,   &evalExpr_TR,      &evalExpr_UP,      
  &evalExpr_VAL };

tpExprFunc* pExprFuncTable = exprFuncTable;
#endif /* EXPR_PRIVATE */

#ifdef EVAL_PRIVATE

static const char zExprFuncCap[]        = "CAP";
static const char zExprFuncCount[]      = "COUNT";
static const char zExprFuncDfile[]      = "DFILE";
static const char zExprFuncDne[]        = "DNE";
static const char zExprFuncDown[]       = "DOWN";
static const char zExprFuncEnv[]        = "ENV";
static const char zExprFuncExist[]      = "EXIST";
static const char zExprFuncFirst[]      = "FIRST";
static const char zExprFuncGet[]        = "GET";
static const char zExprFuncGpl[]        = "GPL";
static const char zExprFuncHilim[]      = "HILIM";
static const char zExprFuncIn[]         = "IN";
static const char zExprFuncIndex[]      = "INDEX";
static const char zExprFuncJoin[]       = "JOIN";
static const char zExprFuncKrstr[]      = "KRSTR";
static const char zExprFuncLast[]       = "LAST";
static const char zExprFuncLen[]        = "LEN";
static const char zExprFuncLgpl[]       = "LGPL";
static const char zExprFuncLolim[]      = "LOLIM";
static const char zExprFuncMap[]        = "MAP";
static const char zExprFuncMark[]       = "MARK";
static const char zExprFuncMax[]        = "MAX";
static const char zExprFuncMin[]        = "MIN";
static const char zExprFuncOutfile[]    = "OUTFILE";
static const char zExprFuncPrefix[]     = "PREFIX";
static const char zExprFuncPrintf[]     = "PRINTF";
static const char zExprFuncSfx[]        = "SFX";
static const char zExprFuncShell[]      = "SHELL";
static const char zExprFuncShrstr[]     = "SHRSTR";
static const char zExprFuncShstr[]      = "SHSTR";
static const char zExprFuncStack[]      = "STACK";
static const char zExprFuncStr[]        = "STR";
static const char zExprFuncSum[]        = "SUM";
static const char zExprFuncTfile[]      = "TFILE";
static const char zExprFuncTr[]         = "TR";
static const char zExprFuncUp[]         = "UP";
static const char zExprFuncVal[]        = "VAL";

static const char* apzExprName[ 37 ] = {
  zExprFuncCap,      zExprFuncCount,    zExprFuncDfile,    zExprFuncDne,      
  zExprFuncDown,     zExprFuncEnv,      zExprFuncExist,    zExprFuncFirst,    
  zExprFuncGet,      zExprFuncGpl,      zExprFuncHilim,    zExprFuncIn,       
  zExprFuncIndex,    zExprFuncJoin,     zExprFuncKrstr,    zExprFuncLast,     
  zExprFuncLen,      zExprFuncLgpl,     zExprFuncLolim,    zExprFuncMap,      
  zExprFuncMark,     zExprFuncMax,      zExprFuncMin,      zExprFuncOutfile,  
  zExprFuncPrefix,   zExprFuncPrintf,   zExprFuncSfx,      zExprFuncShell,    
  zExprFuncShrstr,   zExprFuncShstr,    zExprFuncStack,    zExprFuncStr,      
  zExprFuncSum,      zExprFuncTfile,    zExprFuncTr,       zExprFuncUp,       
  zExprFuncVal };

#endif /* EVAL_PRIVATE */
#endif /* AUTOGEN_AGEXPR_H */
