1 // This file was autogenerated by binjs_generate_spidermonkey,
2 // please DO NOT EDIT BY HAND.
3 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4  * vim: set ts=8 sts=2 et sw=2 tw=80:
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
8 
9 // To generate this file, see the documentation in
10 // js/src/frontend/binast/README.md.
11 
12 #ifndef frontend_BinASTEnum_h
13 #define frontend_BinASTEnum_h
14 
15 namespace js {
16 namespace frontend {
17 namespace binast {
18 
19 // ----- Declaring string enums (by lexicographical order)
20 
21 enum class AssertedDeclaredKind {
22   // "var"
23   Var,
24   // "non-const lexical"
25   NonConstLexical,
26   // "const lexical"
27   ConstLexical,
28 };
29 
30 enum class BinaryOperator {
31   // ","
32   Comma,
33   // "||"
34   LogicalOr,
35   // "&&"
36   LogicalAnd,
37   // "|"
38   BitOr,
39   // "^"
40   BitXor,
41   // "&"
42   BitAnd,
43   // "=="
44   Eq,
45   // "!="
46   Neq,
47   // "==="
48   StrictEq,
49   // "!=="
50   StrictNeq,
51   // "<"
52   LessThan,
53   // "<="
54   LeqThan,
55   // ">"
56   GreaterThan,
57   // ">="
58   GeqThan,
59   // "in"
60   In,
61   // "instanceof"
62   Instanceof,
63   // "<<"
64   Lsh,
65   // ">>"
66   Rsh,
67   // ">>>"
68   Ursh,
69   // "+"
70   Plus,
71   // "-"
72   Minus,
73   // "*"
74   Mul,
75   // "/"
76   Div,
77   // "%"
78   Mod,
79   // "**"
80   Pow,
81 };
82 
83 enum class CompoundAssignmentOperator {
84   // "+="
85   PlusAssign,
86   // "-="
87   MinusAssign,
88   // "*="
89   MulAssign,
90   // "/="
91   DivAssign,
92   // "%="
93   ModAssign,
94   // "**="
95   PowAssign,
96   // "<<="
97   LshAssign,
98   // ">>="
99   RshAssign,
100   // ">>>="
101   UrshAssign,
102   // "|="
103   BitOrAssign,
104   // "^="
105   BitXorAssign,
106   // "&="
107   BitAndAssign,
108 };
109 
110 enum class UnaryOperator {
111   // "+"
112   Plus,
113   // "-"
114   Minus,
115   // "!"
116   Not,
117   // "~"
118   BitNot,
119   // "typeof"
120   Typeof,
121   // "void"
122   Void,
123   // "delete"
124   Delete,
125 };
126 
127 enum class UpdateOperator {
128   // "++"
129   Incr,
130   // "--"
131   Decr,
132 };
133 
134 enum class VariableDeclarationKind {
135   // "var"
136   Var,
137   // "let"
138   Let,
139   // "const"
140   Const,
141 };
142 
143 }  // namespace binast
144 }  // namespace frontend
145 }  // namespace js
146 
147 #endif  // frontend_BinASTEnum_h
148