/*      Copyright (C) 2001, 2002, 2003, 2004 Stijn van Dongen
 *
 * This file is part of Zoem. You can redistribute and/or modify Zoem under the
 * terms of the GNU General Public License;  either version 2 of the License or
 * (at your option) any later  version.  You should have received a copy of the
 * GPL along with Zoem, in the file COPYING.
*/

#ifndef zoem_ops_h__
#define zoem_ops_h__

#include "segment.h"

#include "util/types.h"
#include "util/ting.h"

mcxbool  yamOpList
(  const char* mode
)  ;

void yamOpsStats
(  void
)  ;

void mod_ops_init
(  int n
)  ;

void mod_ops_exit
(  void
)  ;

void yamOpsMakeComposites
(  void
)  ;

xpnfnc yamOpGet
(  mcxTing* txt
)  ;

yamSeg* expandBang1     (  yamSeg*  seg)  ;
yamSeg* expandBang2     (  yamSeg*  seg)  ;
yamSeg* expandXtag1     (  yamSeg*  seg)  ;
yamSeg* expandXtag2     (  yamSeg*  seg)  ;
yamSeg* expandDollar2   (  yamSeg*  seg)  ;
yamSeg* expandGrapeDump (  yamSeg*  seg)  ;
yamSeg* expandGrapeFree (  yamSeg*  seg)  ;
yamSeg* expandGrapeGet  (  yamSeg*  seg)  ;

yamSeg* expandAlpha1    (  yamSeg*  seg)  ;
yamSeg* expandApply2    (  yamSeg*  seg)  ;
yamSeg* expandBegin2    (  yamSeg*  seg)  ;
yamSeg* expandBranch1   (  yamSeg*  seg)  ;
yamSeg* expandCatch2    (  yamSeg*  seg)  ;
yamSeg* expandCmp3      (  yamSeg*  seg)  ;
yamSeg* expandConstant1 (  yamSeg*  seg)  ;
yamSeg* expandCtradd2   (  yamSeg*  seg)  ;
yamSeg* expandCtrput1   (  yamSeg*  seg)  ;
yamSeg* expandCtrset2   (  yamSeg*  seg)  ;
yamSeg* expandDef2      (  yamSeg*  seg)  ;
yamSeg* expandDefined2  (  yamSeg*  seg)  ;
yamSeg* expandDefx2     (  yamSeg*  seg)  ;
yamSeg* expandDofile2   (  yamSeg*  seg)  ;
yamSeg* expandDone0     (  yamSeg*  seg)  ;
yamSeg* expandDowhile2  (  yamSeg*  seg)  ;
yamSeg* expandDprint1   (  yamSeg*  seg)  ;
yamSeg* expandEnd1      (  yamSeg*  seg)  ;
yamSeg* expandEnv3      (  yamSeg*  seg)  ;
yamSeg* expandEqt3      (  yamSeg*  seg)  ;
yamSeg* expandEval1     (  yamSeg*  seg)  ;
yamSeg* expandExit0     (  yamSeg*  seg)  ;
yamSeg* expandF2        (  yamSeg*  seg)  ;
yamSeg* expandF3        (  yamSeg*  seg)  ;
yamSeg* expandFinsert1  (  yamSeg*  seg)  ;
yamSeg* expandFormat2   (  yamSeg*  seg)  ;
yamSeg* expandFormatted1(  yamSeg*  seg)  ;
yamSeg* expandFv2       (  yamSeg*  seg)  ;
yamSeg* expandIf3       (  yamSeg*  seg)  ;
yamSeg* expandInspect4  (  yamSeg*  seg)  ;
yamSeg* expandJumpLc1   (  yamSeg*  seg)  ;
yamSeg* expandLength1   (  yamSeg*  seg)  ;
yamSeg* expandLet1      (  yamSeg*  seg)  ;
yamSeg* expandLine      (  yamSeg*  seg)  ;
yamSeg* expandPop1      (  yamSeg*  seg)  ;
yamSeg* expandProtect1  (  yamSeg*  seg)  ;
yamSeg* expandPush1     (  yamSeg*  seg)  ;
yamSeg* expandRedirect1 (  yamSeg*  seg)  ;
yamSeg* expandRef2      (  yamSeg*  seg)  ;
yamSeg* expandRefload6  (  yamSeg*  seg)  ;
yamSeg* expandRoman1    (  yamSeg*  seg)  ;
yamSeg* expandSet2      (  yamSeg*  seg)  ;
yamSeg* expandSetx2     (  yamSeg*  seg)  ;
yamSeg* expandSpecial1  (  yamSeg*  seg)  ;
yamSeg* expandSwitch2   (  yamSeg*  seg)  ;
yamSeg* expandSystem3   (  yamSeg*  seg)  ;
yamSeg* expandTable5    (  yamSeg*  seg)  ;
yamSeg* expandTest3     (  yamSeg*  seg)  ;
yamSeg* expandThrow2    (  yamSeg*  seg)  ;
yamSeg* expandTr4       (  yamSeg*  seg)  ;
yamSeg* expandTrace1    (  yamSeg*  seg)  ;
yamSeg* expandTry1      (  yamSeg*  seg)  ;
yamSeg* expandUcase1    (  yamSeg*  seg)  ;
yamSeg* expandUndef1    (  yamSeg*  seg)  ;
yamSeg* expandVanish1   (  yamSeg*  seg)  ;
yamSeg* expandWhile2    (  yamSeg*  seg)  ;
yamSeg* expandWrite3    (  yamSeg*  seg)  ;
yamSeg* expandZinsert1  (  yamSeg*  seg)  ;

#endif

