############################################################################
#
#	File:     evdefs.icn
#
#	Subject:  Definitions for event codes
#
#	Author:   Ralph E. Griswold
#
#	Date:     February 28, 1997
#
############################################################################
#
#  This file is in the public domain.
#
############################################################################
#
#  This file contains definitions for event codes.
#
#  This file is intended for use with event monitors running under
#  MT Icon.
#
############################################################################
#
#  This file is generated automatically from monitor.h.
#
############################################################################

$define T_Coexpr       19
$define T_Cset         5
$define T_External     20
$define T_File         6
$define T_Integer      2
$define T_Kywdevent    26
$define T_Kywdint      21
$define T_Kywdpos      22
$define T_Kywdstr      25
$define T_Kywdsubj     23
$define T_Kywdwin      24
$define T_Lelem        10
$define T_List         9
$define T_Lrgint       3
$define T_Null         1
$define T_Proc         7
$define T_Real         4
$define T_Record       8
$define T_Refresh      18
$define T_Selem        12
$define T_Set          11
$define T_Slots        16
$define T_String       0
$define T_Table        13
$define T_Telem        14
$define T_Tvsubs       17
$define T_Tvtbl        15
$define E_Aconv        "\111"		# Conversion attempt 
$define E_Alien        "\172"		# Alien allocation 
$define E_Assign       "\347"		# Assignment 
$define E_BlkDeAlc     "\055"		# Block deallocation 
$define E_Bsusp        "\142"		# Suspension from operation 
$define E_Coact        "\101"		# Co-expression activation 
$define E_Coexpr       "\170"		# Co-expression allocation 
$define E_Cofail       "\104"		# Co-expression failure 
$define E_Collect      "\107"		# Garbage collection 
$define E_Coret        "\102"		# Co-expression return 
$define E_Cset         "\145"		# Cset allocation 
$define E_Ecall        "\143"		# Call of operation 
$define E_Efail        "\146"		# Failure from expression 
$define E_EndCollect   "\360"		# End of garbage collection 
$define E_Erem         "\166"		# Removal of a suspended generator 
$define E_Eresum       "\165"		# Resumption of expression 
$define E_Error        "\105"		# Run-time error 
$define E_Esusp        "\141"		# Suspension from alternation 
$define E_Exit         "\130"		# Program exit 
$define E_External     "\152"		# External allocation 
$define E_Fcall        "\072"		# Function call 
$define E_Fconv        "\112"		# Conversion failure 
$define E_Ffail        "\115"		# Function failure 
$define E_File         "\147"		# File allocation 
$define E_Free         "\132"		# Free region 
$define E_Frem         "\133"		# Function suspension removal 
$define E_Fresum       "\131"		# Function resumption 
$define E_Fret         "\120"		# Function return 
$define E_Fsusp        "\127"		# Function suspension 
$define E_Intcall      "\351"		# interpreter call 
$define E_Integer      "\100"		# Integer value pseudo-event 
$define E_Intret       "\352"		# interpreter return 
$define E_Kywdint      "\136"		# Integer keyword value pseudo-event 
$define E_Kywdpos      "\046"		# Position value pseudo-event 
$define E_Kywdsubj     "\052"		# Subject value pseudo-event 
$define E_Lbang        "\301"		# List generation 
$define E_Lcreate      "\302"		# List creation 
$define E_Lelem        "\155"		# List element allocation 
$define E_Lget         "\356"		# List get/pop -- only E_Lget used 
$define E_Line         "\355"		# Line change 
$define E_List         "\153"		# List allocation 
$define E_Loc          "\174"		# Location change 
$define E_Lpop         "\356"		# List get/pop 
$define E_Lpull        "\304"		# List pull 
$define E_Lpush        "\305"		# List push 
$define E_Lput         "\306"		# List put 
$define E_Lrand        "\307"		# List random reference 
$define E_Lref         "\310"		# List reference 
$define E_Lrgint       "\114"		# Large integer allocation 
$define E_Lsub         "\311"		# List subscript 
$define E_Lsusp        "\154"		# Suspension from limitation 
$define E_MXevent      "\370"		# monitor input event 
$define E_Nconv        "\116"		# Conversion not needed 
$define E_Null         "\044"		# Null value pseudo-event 
$define E_Ocall        "\134"		# Operator call 
$define E_Ofail        "\135"		# Operator failure 
$define E_Opcode       "\117"		# Virtual-machine instruction 
$define E_Orem         "\177"		# Operator suspension removal 
$define E_Oresum       "\175"		# Operator resumption 
$define E_Oret         "\140"		# Operator return 
$define E_Osusp        "\173"		# Operator suspension 
$define E_Pcall        "\103"		# Procedure call 
$define E_Pfail        "\106"		# Procedure failure 
$define E_Prem         "\126"		# Suspended procedure removal 
$define E_Presum       "\125"		# Procedure resumption 
$define E_Pret         "\122"		# Procedure return 
$define E_Proc         "\045"		# Procedure value pseudo-event 
$define E_Psusp        "\123"		# Procedure suspension 
$define E_Rbang        "\312"		# Record generation 
$define E_Rcreate      "\313"		# Record creation 
$define E_Real         "\144"		# Real allocation 
$define E_Record       "\150"		# Record allocation 
$define E_Refresh      "\171"		# Refresh allocation 
$define E_Rrand        "\314"		# Record random reference 
$define E_Rref         "\315"		# Record reference 
$define E_Rsub         "\316"		# Record subscript 
$define E_Sbang        "\317"		# Set generation 
$define E_Sconv        "\121"		# Conversion success 
$define E_Screate      "\320"		# Set creation 
$define E_Sdelete      "\321"		# Set deletion 
$define E_Selem        "\164"		# Set element allocation 
$define E_Set          "\161"		# Set allocation 
$define E_Sfail        "\341"		# Scanning failure 
$define E_Sinsert      "\322"		# Set insertion 
$define E_Slots        "\167"		# Hash header allocation 
$define E_Smember      "\323"		# Set membership 
$define E_Snew         "\340"		# Scanning environment creation 
$define E_Spos         "\346"		# Scanning position 
$define E_Srand        "\336"		# Set random reference 
$define E_Srem         "\344"		# Scanning environment removal 
$define E_Sresum       "\343"		# Scanning resumption 
$define E_Ssasgn       "\354"		# Sub-string assignment 
$define E_Ssusp        "\342"		# Scanning suspension 
$define E_Stack        "\353"		# stack depth 
$define E_StrDeAlc     "\176"		# String deallocation 
$define E_String       "\163"		# String allocation 
$define E_Sval         "\324"		# Set value 
$define E_Table        "\156"		# Table allocation 
$define E_Tbang        "\325"		# Table generation 
$define E_Tconv        "\113"		# Conversion target 
$define E_Tcreate      "\326"		# Table creation 
$define E_Tdelete      "\327"		# Table deletion 
$define E_Telem        "\157"		# Table element allocation 
$define E_TenureBlock  "\362"		# Tenure a block region 
$define E_TenureString "\361"		# Tenure a string region 
$define E_Tick         "\056"		# Clock tick 
$define E_Tinsert      "\330"		# Table insertion 
$define E_Tkey         "\331"		# Table key generation 
$define E_Tmember      "\332"		# Table membership 
$define E_Trand        "\337"		# Table random reference 
$define E_Tref         "\333"		# Table reference 
$define E_Tsub         "\334"		# Table subscript 
$define E_Tval         "\335"		# Table value 
$define E_Tvsubs       "\151"		# Substring tv allocation 
$define E_Tvtbl        "\160"		# Table-element tv allocation 
$define E_Value        "\350"		# Value assigned 
$define E_Disable 1000000
$define E_Enable 1000001
$define E_Quit 1000002
$define E_ALoc 2000000
$define E_Spoof 1728345
$define AllocMask cset(E_List || E_Lelem || E_File || E_Lrgint || E_Real || E_Record || E_Selem || E_Set || E_Slots || E_Table || E_Telem || E_Tvsubs || E_Tvtbl || E_Cset || E_Refresh || E_String || E_Coexpr)
$define AssignMask cset(E_Assign || E_Value)
$define TypeMask AllocMask ++ (E_Integer || E_Null || E_Proc)
$define ConvMask cset(E_Aconv || E_Tconv || E_Sconv || E_Nconv || E_Fconv)
$define ProcMask cset(E_Pcall || E_Pfail || E_Pret || E_Psusp || E_Presum || E_Prem)
$define FncMask cset(E_Fcall || E_Ffail || E_Fret || E_Fsusp || E_Fresum || E_Frem)
$define OperMask cset(E_Ocall || E_Ofail || E_Oret || E_Osusp || E_Oresum || E_Orem)
$define EvalMask (FncMask ++ ProcMask ++ OperMask)
$define ListMask cset(E_Lbang || E_Lcreate || E_Lpop || E_Lpull || E_Lpush || E_Lput || E_Lrand || E_Lsub)
$define RecordMask cset(E_Rbang || E_Rcreate || E_Rrand || E_Rsub)
$define ScanMask cset(E_Snew || E_Sfail || E_Spos || E_Ssusp || E_Sresum || E_Srem)
$define SetMask cset(E_Sbang || E_Screate || E_Sdelete || E_Sinsert || E_Smember || E_Sval)
$define TableMask cset(E_Tbang || E_Tcreate || E_Tdelete || E_Tinsert || E_Tkey || E_Tmember || E_Trand || E_Tsub)
$define StructMask ListMask ++ RecordMask ++ SetMask ++TableMask
$define EmptyMask ''
$define AllMask &cset
