############################################################################
#
#	File:     evdefs.icn
#
#	Subject:  Definitions for event codes
#
#	Author:   Ralph E. Griswold
#
#	Date:     February 28, 1997
#
############################################################################
#
#  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_Deref        "\363"		# Dereference
$define E_BlkDeAlc     "\055"		# Block deallocation
$define E_Bsusp        "\250"		# Suspension from operation
$define E_Coact        "\101"		# Co-expression activation
$define E_CoCreate     "\177"		# Co-expression creation
$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_Cstack       "\271"		# C stack size
$define E_Syntax       "\242"           # Expression syntax change
$define E_Ecall        "\143"		# Call of operation
$define E_Efail        "\251"		# Failure from expression
$define E_EndCollect   "\360"		# End of garbage collection
$define E_Erem         "\237"		# Removal of a suspended generator
$define E_Eresum       "\236"		# 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        "\252"		# Function call
$define E_Fconv        "\112"		# Conversion failure
$define E_Ffail        "\256"		# Function failure
$define E_File         "\147"		# File allocation
$define E_Free         "\132"		# Free region
$define E_Frem         "\257"		# Function suspension removal
$define E_Fresum       "\254"		# Function resumption
$define E_Fret         "\255"		# Function return
$define E_Fsusp        "\253"		# Function suspension
$define E_HashNum      "\173"		# Hash number
$define E_HashSlots    "\174"		# Hash slots
$define E_HashChain    "\175"		# Hash chain
$define E_Intcall      "\275"		# interpreter call
$define E_Integer      "\100"		# Integer value pseudo-event
$define E_Intret       "\276"		# 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         "\274"		# Line change
$define E_List         "\153"		# List allocation
$define E_Literal      "\277"		# Literal (constant) reference
$define E_Loc          "\273"		# 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        "\260"		# Operator call
$define E_Ofail        "\262"		# Operator failure
$define E_Opcode       "\240"		# Virtual-machine instruction
$define E_Operand      "\241"		# Virtual-machine Operand
$define E_Orem         "\265"		# Operator suspension removal
$define E_Oresum       "\264"		# Operator resumption
$define E_Oret         "\261"		# Operator return
$define E_Osusp        "\263"		# Operator suspension
$define E_PatCode      "\062"           # Pattern code
$define E_Pattern      "\060"           # Pattern block allocation
$define E_Pelem        "\061"           # Pattern element block allocation
$define E_PatAttempt   "\063"           # Attempt to Pattern Match
$define E_PatMatch     "\064"           # Pattern match success
$define E_PatFail      "\065"           # Pattern match failure
$define E_PelemAttempt "\066"		# Pattern element attempt
$define E_PelemMatch   "\067"		# Pattern element match succeeded
$define E_PelemFail    "\070"		# Pattern element match failed
$define E_PatArg       "\071"		# Pattern element arg matched against
$define E_PatVal       "\072"		# Result of evaluating uneval expr
$define E_PatPush      "\073"           # Pattern Stack Push indication
$define E_PatPop       "\074"           # Pattern Stack Pop indication
$define E_Pcall        "\103"		# Procedure call
$define E_Pfail        "\246"		# Procedure failure
$define E_Prem         "\247"		# Suspended procedure removal
$define E_Presum       "\244"		# Procedure resumption
$define E_Pret         "\245"		# Procedure return
$define E_Proc         "\045"		# Procedure value pseudo-event
$define E_Psusp        "\243"		# 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_Signal       "\300"           # C Signals
$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       "\267"		# Scanning resumption
$define E_Ssasgn       "\354"		# Sub-string assignment
$define E_Ssusp        "\266"		# Scanning suspension
$define E_Stack        "\272"		# 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         "\270"		# 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 || E_Lref)
$define RecordMask cset(E_Rbang || E_Rcreate || E_Rrand || E_Rsub || E_Rref)
$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 || E_Tref)
$define StructMask ListMask ++ RecordMask ++ SetMask ++TableMask
$define EmptyMask ''
$define AllMask &cset
