1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef TOOLS_GN_OPERATORS_H_ 6 #define TOOLS_GN_OPERATORS_H_ 7 8 class BinaryOpNode; 9 class Err; 10 class ParseNode; 11 class Scope; 12 class Token; 13 class UnaryOpNode; 14 class Value; 15 16 bool IsUnaryOperator(const Token& token); 17 bool IsBinaryOperator(const Token& token); 18 19 bool IsFunctionCallArgBeginScoper(const Token& token); // "(" 20 bool IsFunctionCallArgEndScoper(const Token& token); // ")" 21 22 bool IsScopeBeginScoper(const Token& token); // "{" 23 bool IsScopeEndScoper(const Token& token); // "}" 24 25 Value ExecuteUnaryOperator(Scope* scope, 26 const UnaryOpNode* op_node, 27 const Value& value, 28 Err* err); 29 Value ExecuteBinaryOperator(Scope* scope, 30 const BinaryOpNode* op_node, 31 const ParseNode* left, 32 const ParseNode* right, 33 Err* err); 34 35 #endif // TOOLS_GN_OPERATORS_H_ 36