1 /*
2     $Id: oper_e.h 2593 2021-04-18 13:00:11Z soci $
3 
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8 
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13 
14     You should have received a copy of the GNU General Public License along
15     with this program; if not, write to the Free Software Foundation, Inc.,
16     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 
18 */
19 #ifndef OPER_TYPES_E_H
20 #define OPER_TYPES_E_H
21 
22 typedef enum Oper_types {
23     O_TUPLE,         /* )     */
24     O_LIST,          /* ]     */
25     O_DICT,          /* }     */
26     O_RPARENT,       /* )     */
27     O_RBRACKET,      /* ]     */
28     O_RBRACE,        /* }     */
29     O_FUNC,          /* a(    */
30     O_INDEX,         /* a[    */
31     O_BRACE,         /* {a}   */
32     O_BRACKET,       /* [a]   */
33     O_PARENT,        /* (a)   */
34     O_COMMA,         /* ,     */
35     O_ASSIGN,        /* =     */
36     O_COLON_ASSIGN,  /* :=    */
37     O_MIN_ASSIGN,    /* <?=   */
38     O_MAX_ASSIGN,    /* >?=   */
39     O_OR_ASSIGN,     /* |=    */
40     O_XOR_ASSIGN,    /* ^=    */
41     O_AND_ASSIGN,    /* &=    */
42     O_BLS_ASSIGN,    /* <<=   */
43     O_BRS_ASSIGN,    /* >>=   */
44     O_ADD_ASSIGN,    /* +=    */
45     O_SUB_ASSIGN,    /* -=    */
46     O_MUL_ASSIGN,    /* *=    */
47     O_DIV_ASSIGN,    /* /=    */
48     O_MOD_ASSIGN,    /* %=    */
49     O_EXP_ASSIGN,    /* **=   */
50     O_CONCAT_ASSIGN, /* ..=   */
51     O_X_ASSIGN,      /* x=    */
52     O_MEMBER_ASSIGN, /* .=    */
53     O_LOR_ASSIGN,    /* ||=   */
54     O_LAND_ASSIGN,   /* &&=   */
55     O_COND_ASSIGN,   /* :?=   */
56     O_QUEST,         /* ?     */
57     O_DQUEST,        /* ??    */
58     O_COLON,         /* :     */
59     O_COND,          /* ?     */
60     O_DCOND,         /* ??    */
61     O_COLON2,        /* :     */
62     O_HASH,          /* #     */
63     O_HASH_SIGNED,   /* #+    */
64     O_WORD,          /* <>    */
65     O_HWORD,         /* >`    */
66     O_BSWORD,        /* ><    */
67     O_LOWER,         /* <     */
68     O_HIGHER,        /* >     */
69     O_BANK,          /* `     */
70     O_STRING,        /* ^     */
71     O_LOR,           /* ||    */
72     O_LXOR,          /* ^^    */
73     O_LAND,          /* &&    */
74     O_IDENTITY,      /* ===   */
75     O_IN,            /* in    */
76     O_CMP,           /* <=>   */
77     O_EQ,            /* ==    */
78     O_NE,            /* !=    */
79     O_LT,            /* <     */
80     O_GT,            /* >     */
81     O_GE,            /* >=    */
82     O_LE,            /* <=    */
83     O_MIN,           /* <?    */
84     O_MAX,           /* >?    */
85     O_OR,            /* |     */
86     O_XOR,           /* ^     */
87     O_AND,           /* &     */
88     O_LSHIFT,        /* <<    */
89     O_RSHIFT,        /* >>    */
90     O_ADD,           /* +     */
91     O_SUB,           /* -     */
92     O_MUL,           /* *     */
93     O_DIV,           /* /     */
94     O_MOD,           /* %     */
95     O_EXP,           /* **    */
96     O_NEG,           /* -     */
97     O_POS,           /* +     */
98     O_INV,           /* ~     */
99     O_LNOT,          /* !     */
100     O_SPLAT,         /* *     */
101     O_CONCAT,        /* ..    */
102     O_X,             /* x     */
103     O_COMMAX,        /* ,x    */ /* there's a check for  */
104     O_COMMAY,        /* ,y    */ /* O_COMMAX to O_COMMAK */
105     O_COMMAZ,        /* ,z    */ /* in eval.c            */
106     O_COMMAS,        /* ,s    */
107     O_COMMAR,        /* ,r    */
108     O_COMMAD,        /* ,d    */
109     O_COMMAB,        /* ,b    */
110     O_COMMAK,        /* ,k    */
111     O_MEMBER,        /* .     */
112     O_NONE
113 } Oper_types;
114 
115 #endif
116