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