/* -*- buffer-read-only: t -*-
 *
 *    overload.h
 *
 *    Copyright (C) 1997, 1998, 2000, 2001, 2005, 2006, 2007 by Larry Wall
 *    and others
 *
 *    You may distribute under the terms of either the GNU General Public
 *    License or the Artistic License, as specified in the README file.
 *
 *  !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 *  This file is built by overload.pl
 */

enum {
    fallback_amg,
    abs_amg,
    bool__amg,
    nomethod_amg,
    string_amg,
    numer_amg,
    add_amg,
    add_ass_amg,
    subtr_amg,
    subtr_ass_amg,
    mult_amg,
    mult_ass_amg,
    div_amg,
    div_ass_amg,
    modulo_amg,
    modulo_ass_amg,
    pow_amg,
    pow_ass_amg,
    lshift_amg,
    lshift_ass_amg,
    rshift_amg,
    rshift_ass_amg,
    band_amg,
    band_ass_amg,
    bor_amg,
    bor_ass_amg,
    bxor_amg,
    bxor_ass_amg,
    lt_amg,
    le_amg,
    gt_amg,
    ge_amg,
    eq_amg,
    ne_amg,
    ncmp_amg,
    scmp_amg,
    slt_amg,
    sle_amg,
    sgt_amg,
    sge_amg,
    seq_amg,
    sne_amg,
    not_amg,
    compl_amg,
    inc_amg,
    dec_amg,
    atan2_amg,
    cos_amg,
    sin_amg,
    exp_amg,
    log_amg,
    sqrt_amg,
    repeat_amg,
    repeat_ass_amg,
    concat_amg,
    concat_ass_amg,
    copy_amg,
    neg_amg,
    to_sv_amg,
    to_av_amg,
    to_hv_amg,
    to_gv_amg,
    to_cv_amg,
    iter_amg,
    int_amg,
    DESTROY_amg,
    max_amg_code
    /* Do not leave a trailing comma here.  C9X allows it, C89 doesn't. */
};

#define NofAMmeth max_amg_code
#define AMG_id2name(id) (PL_AMG_names[id]+1)

#ifdef DOINIT
EXTCONST char * const PL_AMG_names[NofAMmeth] = {
  /* Names kept in the symbol table.  fallback => "()", the rest has
     "(" prepended.  The only other place in perl which knows about
     this convention is AMG_id2name (used for debugging output and
     'nomethod' only), the only other place which has it hardwired is
     overload.pm.  */
    "()",
    "(abs",
    "(bool",
    "(nomethod",
    "(\"\"",
    "(0+",
    "(+",
    "(+=",
    "(-",
    "(-=",
    "(*",
    "(*=",
    "(/",
    "(/=",
    "(%",
    "(%=",
    "(**",
    "(**=",
    "(<<",
    "(<<=",
    "(>>",
    "(>>=",
    "(&",
    "(&=",
    "(|",
    "(|=",
    "(^",
    "(^=",
    "(<",
    "(<=",
    "(>",
    "(>=",
    "(==",
    "(!=",
    "(<=>",
    "(cmp",
    "(lt",
    "(le",
    "(gt",
    "(ge",
    "(eq",
    "(ne",
    "(!",
    "(~",
    "(++",
    "(--",
    "(atan2",
    "(cos",
    "(sin",
    "(exp",
    "(log",
    "(sqrt",
    "(x",
    "(x=",
    "(.",
    "(.=",
    "(=",
    "(neg",
    "(${}",
    "(@{}",
    "(%{}",
    "(*{}",
    "(&{}",
    "(<>",
    "(int",
    "DESTROY"
};
#else
EXTCONST char * PL_AMG_names[NofAMmeth];
#endif /* def INITAMAGIC */
