a68g-masks.h
1 //! @file a68g-masks.h
2 //! @author J. Marcel van der Veer
3
4 //! @section Copyright
5 //!
6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
7 //! Copyright 2001-2024 J. Marcel van der Veer [algol68g@xs4all.nl].
8
9 //! @section License
10 //!
11 //! This program is free software; you can redistribute it and/or modify it
12 //! under the terms of the GNU General Public License as published by the
13 //! Free Software Foundation; either version 3 of the License, or
14 //! (at your option) any later version.
15 //!
16 //! This program is distributed in the hope that it will be useful, but
17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 //! more details. You should have received a copy of the GNU General Public
20 //! License along with this program. If not, see [http://www.gnu.org/licenses/].
21
22 //! @section Synopsis
23 //!
24 //! Bit masks.
25
26 #if !defined (__A68G_MASKS_H__)
27 #define __A68G_MASKS_H__
28
29 // Status macros
30 #define STATUS_CLEAR(p, q) {STATUS (p) &= (~(q));}
31 #define STATUS_SET(p, q) {STATUS (p) |= (q);}
32 #define STATUS_TEST(p, q) ((STATUS (p) & (q)) != (unt) 0)
33
34 // Status masks
35 #define NULL_MASK ((STATUS_MASK_T) 0x00000000)
36 #define IN_HEAP_MASK ((STATUS_MASK_T) 0x00000001)
37 #define IN_FRAME_MASK ((STATUS_MASK_T) 0x00000002)
38 #define IN_STACK_MASK ((STATUS_MASK_T) 0x00000004)
39 #define IN_COMMON_MASK ((STATUS_MASK_T) 0x00000008)
40 #define INIT_MASK ((STATUS_MASK_T) 0x00000010)
41 #define PLUS_INF_MASK ((STATUS_MASK_T) 0x00000020)
42 #define MINUS_INF_MASK ((STATUS_MASK_T) 0x00000040)
43 #define CONSTANT_MASK ((STATUS_MASK_T) 0x00000080)
44 #define BLOCK_GC_MASK ((STATUS_MASK_T) 0x00000100)
45 #define COOKIE_MASK ((STATUS_MASK_T) 0x00000200)
46 #define SCOPE_ERROR_MASK ((STATUS_MASK_T) 0x00000200)
47 #define ALLOCATED_MASK ((STATUS_MASK_T) 0x00000400)
48 #define STANDENV_PROC_MASK ((STATUS_MASK_T) 0x00000800)
49 #define COLOUR_MASK ((STATUS_MASK_T) 0x00001000)
50 #define MODULAR_MASK ((STATUS_MASK_T) 0x00002000)
51 #define OPTIMAL_MASK ((STATUS_MASK_T) 0x00004000)
52 #define SERIAL_MASK ((STATUS_MASK_T) 0x00008000)
53 #define CROSS_REFERENCE_MASK ((STATUS_MASK_T) 0x00010000)
54 #define TREE_MASK ((STATUS_MASK_T) 0x00020000)
55 #define CODE_MASK ((STATUS_MASK_T) 0x00040000)
56 #define NOT_NEEDED_MASK ((STATUS_MASK_T) 0x00080000)
57 #define SOURCE_MASK ((STATUS_MASK_T) 0x00100000)
58 #define ASSERT_MASK ((STATUS_MASK_T) 0x00200000)
59 #define NIL_MASK ((STATUS_MASK_T) 0x00400000)
60 #define SKIP_PROCEDURE_MASK ((STATUS_MASK_T) 0x00800000)
61 #define SKIP_FORMAT_MASK ((STATUS_MASK_T) 0x00800000)
62 #define SKIP_ROW_MASK ((STATUS_MASK_T) 0x00800000)
63 #define INTERRUPTIBLE_MASK ((STATUS_MASK_T) 0x01000000)
64 #define BREAKPOINT_MASK ((STATUS_MASK_T) 0x02000000)
65 #define BREAKPOINT_TEMPORARY_MASK ((STATUS_MASK_T) 0x04000000)
66 #define BREAKPOINT_INTERRUPT_MASK ((STATUS_MASK_T) 0x08000000)
67 #define BREAKPOINT_WATCH_MASK ((STATUS_MASK_T) 0x10000000)
68 #define BREAKPOINT_TRACE_MASK ((STATUS_MASK_T) 0x20000000)
69 #define SEQUENCE_MASK ((STATUS_MASK_T) 0x40000000)
70 #define BREAKPOINT_ERROR_MASK ((STATUS_MASK_T) 0xffffffff)
71
72 // CODEX masks
73
74 #define PROC_DECLARATION_MASK ((STATUS_MASK_T) 0x00000001)
75
76 #endif
© 2002-2024 J.M. van der Veer (jmvdveer@xs4all.nl)
|