source: git/Singular/tok.h @ 4f3177

fieker-DuValspielwiese
Last change on this file since 4f3177 was 4f3177, checked in by Hans Schönemann <hannes@…>, 19 years ago
*hannes: frwalk git-svn-id: file:///usr/local/Singular/svn/trunk@8056 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 5.7 KB
Line 
1#ifndef TOK_H
2#define TOK_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/*
7* ABSTRACT: tokens, types for interpreter; general macros
8*/
9/* $Id: tok.h,v 1.62 2005-05-05 10:42:00 Singular Exp $ */
10
11#ifndef MYYSTYPE
12#include "structs.h"
13#endif
14#ifndef UMINUS
15#include "grammar.h"
16#endif
17
18extern int      yylineno;
19extern char     my_yylinebuf[80];
20
21#if defined(__cplusplus)
22extern int  yyparse(void);
23#endif
24
25#define loop for(;;)
26
27#ifndef ABS
28#define ABS(x) ((x)<0?(-(x)):(x))
29#endif
30
31#if defined(__cplusplus)
32inline int max(const int a, const int b)  { return (a>b) ? a : b; }
33inline int min(const int a, const int b)  { return (a<b) ? a : b; }
34#else
35#define max(A,B) ((A) > (B) ? (A) : (B))
36#define min(A,B) ((A) < (B) ? (A) : (B))
37#endif
38
39/* Define to use old mechanismen for saving currRing with procedures
40 * Does work with HAVE_NAMESPACES enabled
41 */
42#define USE_IILOCALRING 1
43
44
45/* the follwing defines for infix operators should not be changed: *
46*  grammar.y does not use the symbolic names                       *
47*  scanner.l uses the identies for some optimzations              */
48#define LOGIC_OP         '&'
49#define MULDIV_OP        '/'
50#define COMP_OP          '<'
51
52#define COMMAND           UMINUS+2 /* in tok.h */
53#define ANY_TYPE          UMINUS+3
54#define IDHDL             UMINUS+4
55#define NSHDL             UMINUS+5
56
57enum {
58  ALIAS_CMD     = UMINUS + 15,
59  ATTRIB_CMD,
60  BAREISS_CMD,
61  BRACKET_CMD,
62  BREAKPOINT_CMD,
63  CHARACTERISTIC_CMD,
64  CHARSTR_CMD,
65  CHAR_SERIES_CMD,
66  CLOSE_CMD,
67  COLS_CMD,
68  CONTENT_CMD,
69  COUNT_CMD,
70  DBPRINT_CMD,
71  DEF_CMD,
72  DEFINED_CMD,
73  DELETE_CMD,
74  DET_CMD,
75  DUMP_CMD,
76  END_GRAMMAR,
77  ENVELOPE_CMD,
78  ERROR_CMD,
79  EXECUTE_CMD,
80  EXPORTTO_CMD,
81  EXTGCD_CMD,
82  FAC_CMD,
83  FIND_CMD,
84  FACSTD_CMD,
85  FWALK_CMD,
86  FGLM_CMD,
87  FGLMQUOT_CMD,
88  FINDUNI_CMD,
89  GCD_CMD,
90  GETDUMP_CMD,
91  HIGHCORNER_CMD,
92  HRES_CMD,
93  IMPART_CMD,
94  IMPORTFROM_CMD,
95  INSERT_CMD,
96  INT_CMD,
97  INTDIV_CMD,
98  INTMOD_CMD,
99  INTVEC_CMD,
100  IS_RINGVAR,
101  JANET_CMD,
102  KILLATTR_CMD,
103  KRES_CMD,
104  LAGSOLVE_CMD,
105  LINK_CMD,
106  LIST_CMD,
107  LOAD_CMD,
108  LRES_CMD,
109  MEMORY_CMD,
110  MONITOR_CMD,
111  MPRES_CMD,
112  MSTD_CMD,
113  NAMEOF_CMD,
114  NAMES_CMD,
115  NCALGEBRA_CMD,
116  NEWTONPOLY_CMD,
117  NPARS_CMD,
118  NVARS_CMD,
119  OPEN_CMD,
120  OPPOSE_CMD,
121  OPPOSITE_CMD,
122  OPTION_CMD,
123  ORDSTR_CMD,
124  PACKAGE_CMD,
125  PARSTR_CMD,
126  POINTER_CMD,
127  PRIME_CMD,
128  PRINT_CMD,
129  PRUNE_CMD,
130  QRING_CMD,
131  RANDOM_CMD,
132  READ_CMD,
133  REPART_CMD,
134  RESERVEDNAME_CMD,
135  RESULTANT_CMD,
136  RINGLIST_CMD,
137  ROWS_CMD,
138  SIMPLEX_CMD,
139  SLIM_GB_CMD,
140  SQR_FREE_DEC_CMD,
141  STATUS_CMD,
142  STRING_CMD,
143  SYSTEM_CMD,
144  TEST_CMD,
145  TRANSPOSE_CMD,
146  TRACE_CMD,
147  TWOSTD_CMD,
148  TYPEOF_CMD,
149  UNLOAD_CMD,
150  URSOLVE_CMD,
151  VANDER_CMD,
152  VARSTR_CMD,
153  WRITE_CMD,
154  /* start system var section: VECHO */
155  VECHO,
156  VPAGELENGTH,
157  VCOLMAX,
158  VTIMER,
159  VRTIMER,
160  TRACE,
161  VOICE,
162  VSHORTOUT,
163  VPRINTLEVEL,
164  /* end system var section: VPRINTLEVEL */
165
166  MAX_TOK /* must be the last, biggest token number */
167};
168
169#define NONE END_RING
170#define UNKNOWN 0
171
172/*
173**  Set operations (small sets only)
174*/
175
176#define Sy_bit(x)     ((unsigned)1<<(x))
177#define Sy_inset(x,s) ((Sy_bit(x)&(s))?TRUE:FALSE)
178#define BTEST1(a)     Sy_inset((a), test)
179#define BVERBOSE(a)   Sy_inset((a), verbose)
180
181/*
182** defines for BITSETs
183*/
184
185#define V_SHOW_MEM  2
186#define V_YACC      3
187#define V_REDEFINE  4
188#define V_READING   5
189#define V_LOAD_LIB  6
190#define V_DEBUG_LIB 7
191#define V_LOAD_PROC 8
192#define V_DEF_RES   9
193#define V_DEBUG_MEM 10
194#define V_SHOW_USE  11
195#define V_IMAP      12
196#define V_PROMPT    13
197#define V_NSB       14
198#define V_CONTENTSB 15
199#define V_CANCELUNIT 16
200#define V_DEG_STOP  31
201
202
203#define OPT_PROT           0
204#define OPT_REDSB          1
205#define OPT_NOT_BUCKETS    2
206#define OPT_NOT_SUGAR      3
207#define OPT_INTERRUPT      4
208#define OPT_SUGARCRIT      5
209#define OPT_DEBUG          6
210#define OPT_REDTHROUGH     7
211#define OPT_RETURN_SB      9
212#define OPT_FASTHC        10
213#define OPT_OLDSTD        20
214#define OPT_KEEPVARS      21
215#define OPT_STAIRCASEBOUND 22
216#define OPT_MULTBOUND     23
217#define OPT_DEGBOUND      24
218#define OPT_REDTAIL       25
219#define OPT_INTSTRATEGY   26
220#define OPT_INFREDTAIL    28
221#define OPT_SB_1          29
222#define OPT_NOTREGULARITY 30
223#define OPT_WEIGHTM       31
224
225/* define ring dependent options */ 
226#define TEST_RINGDEP_OPTS \
227 (Sy_bit(OPT_INTSTRATEGY) | Sy_bit(OPT_REDTHROUGH) | Sy_bit(OPT_REDTAIL))
228
229#define TEST_OPT_PROT              BTEST1(OPT_PROT)
230#define TEST_OPT_REDSB             BTEST1(OPT_REDSB)
231#define TEST_OPT_NOT_BUCKETS       BTEST1(OPT_NOT_BUCKETS)
232#define TEST_OPT_NOT_SUGAR         BTEST1(OPT_NOT_SUGAR)
233#define TEST_OPT_SUGARCRIT         BTEST1(OPT_SUGARCRIT)
234#define TEST_OPT_DEBUG             BTEST1(OPT_DEBUG)
235#define TEST_OPT_FASTHC            BTEST1(OPT_FASTHC)
236#define TEST_OPT_INTSTRATEGY       BTEST1(OPT_INTSTRATEGY)
237#define TEST_OPT_RETURN_SB         BTEST1(OPT_RETURN_SB)
238#define TEST_OPT_KEEPVARS          BTEST1(OPT_KEEPVARS)
239#define TEST_OPT_DEGBOUND          BTEST1(OPT_DEGBOUND)
240#define TEST_OPT_MULTBOUND         BTEST1(OPT_MULTBOUND)
241#define TEST_OPT_STAIRCASEBOUND    BTEST1(OPT_STAIRCASEBOUND)
242#define TEST_OPT_REDTAIL           BTEST1(OPT_REDTAIL)
243#define TEST_OPT_INFREDTAIL        BTEST1(OPT_INFREDTAIL)
244#define TEST_OPT_SB_1              BTEST1(OPT_SB_1)
245#define TEST_OPT_NOTREGULARITY     BTEST1(OPT_NOTREGULARITY)
246#define TEST_OPT_WEIGHTM           BTEST1(OPT_WEIGHTM)
247#define TEST_OPT_REDTHROUGH        BTEST1(OPT_REDTHROUGH)
248#define TEST_OPT_OLDSTD            BTEST1(OPT_OLDSTD)
249#define TEST_OPT_CONTENTSB         BVERBOSE(V_CONTENTSB)
250#define TEST_OPT_CANCELUNIT        BVERBOSE(V_CANCELUNIT)
251
252#define TEST_VERB_NSB              BVERBOSE(V_NSB)
253#define TEST_V_DEG_STOP            BVERBOSE(V_DEG_STOP)
254
255#endif
Note: See TracBrowser for help on using the repository browser.