Home | History | Annotate | Download | only in gn
      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