36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
|
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef TOOLS_GN_OPERATORS_H_
|
||
|
#define TOOLS_GN_OPERATORS_H_
|
||
|
|
||
|
class BinaryOpNode;
|
||
|
class Err;
|
||
|
class ParseNode;
|
||
|
class Scope;
|
||
|
class Token;
|
||
|
class UnaryOpNode;
|
||
|
class Value;
|
||
|
|
||
|
bool IsUnaryOperator(const Token& token);
|
||
|
bool IsBinaryOperator(const Token& token);
|
||
|
|
||
|
bool IsFunctionCallArgBeginScoper(const Token& token); // "("
|
||
|
bool IsFunctionCallArgEndScoper(const Token& token); // ")"
|
||
|
|
||
|
bool IsScopeBeginScoper(const Token& token); // "{"
|
||
|
bool IsScopeEndScoper(const Token& token); // "}"
|
||
|
|
||
|
Value ExecuteUnaryOperator(Scope* scope,
|
||
|
const UnaryOpNode* op_node,
|
||
|
const Value& value,
|
||
|
Err* err);
|
||
|
Value ExecuteBinaryOperator(Scope* scope,
|
||
|
const BinaryOpNode* op_node,
|
||
|
const ParseNode* left,
|
||
|
const ParseNode* right,
|
||
|
Err* err);
|
||
|
|
||
|
#endif // TOOLS_GN_OPERATORS_H_
|