1 // operator.h -- Go frontend operators.     -*- C++ -*-
2 
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
6 
7 #ifndef GO_OPERATOR_H
8 #define GO_OPERATOR_H
9 
10 // The operators.
11 
12 enum Operator
13 {
14   OPERATOR_INVALID,
15   OPERATOR_OROR,	// ||
16   OPERATOR_ANDAND,	// &&
17   OPERATOR_EQEQ,	// ==
18   OPERATOR_NOTEQ,	// !=
19   OPERATOR_LT,		// <
20   OPERATOR_LE,		// <=
21   OPERATOR_GT,		// >
22   OPERATOR_GE,		// >=
23   OPERATOR_PLUS,	// +
24   OPERATOR_MINUS,	// -
25   OPERATOR_OR,		// |
26   OPERATOR_XOR,		// ^
27   OPERATOR_MULT,	// *
28   OPERATOR_DIV,		// /
29   OPERATOR_MOD,		// %
30   OPERATOR_LSHIFT,	// <<
31   OPERATOR_RSHIFT,	// >>
32   OPERATOR_AND,		// &
33   OPERATOR_NOT,		// !
34   OPERATOR_BITCLEAR,	// &^
35   OPERATOR_CHANOP,	// <-
36 
37   OPERATOR_EQ,		// =
38   OPERATOR_PLUSEQ,	// +=
39   OPERATOR_MINUSEQ,	// -=
40   OPERATOR_OREQ,	// |=
41   OPERATOR_XOREQ,	// ^=
42   OPERATOR_MULTEQ,	// *=
43   OPERATOR_DIVEQ,	// /=
44   OPERATOR_MODEQ,	// %=
45   OPERATOR_LSHIFTEQ,	// <<=
46   OPERATOR_RSHIFTEQ,	// >>=
47   OPERATOR_ANDEQ,	// &=
48   OPERATOR_BITCLEAREQ,	// &^=
49   OPERATOR_PLUSPLUS,	// ++
50   OPERATOR_MINUSMINUS,	// --
51 
52   OPERATOR_COLON,	// :
53   OPERATOR_COLONEQ,	// :=
54   OPERATOR_SEMICOLON,	// ;
55   OPERATOR_DOT,		// .
56   OPERATOR_ELLIPSIS,	// ...
57   OPERATOR_COMMA,	// ,
58   OPERATOR_LPAREN,	// (
59   OPERATOR_RPAREN,	// )
60   OPERATOR_LCURLY,	// {
61   OPERATOR_RCURLY,	// }
62   OPERATOR_LSQUARE,	// [
63   OPERATOR_RSQUARE	// ]
64 };
65 
66 #endif // !defined(GO_OPERATOR_H)
67