blob: 4c4d5fd2e29f4d4659cca484c46ffa9f8d2b9ea5 [file] [log] [blame]
alokp@chromium.org3a01d1b2011-08-30 05:10:53 +00001//
2// Copyright (c) 2011 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7#include "Macro.h"
8
Olli Etuaho6cb4c7f2015-08-13 11:27:17 +03009#include <sstream>
10
alokp@chromium.org98d04ec2012-05-21 22:47:20 +000011#include "Token.h"
alokp@chromium.org3a01d1b2011-08-30 05:10:53 +000012
13namespace pp
14{
15
Zhenyao Mod526f982014-05-13 14:51:19 -070016bool Macro::equals(const Macro &other) const
alokp@chromium.org3a01d1b2011-08-30 05:10:53 +000017{
alokp@chromium.org98d04ec2012-05-21 22:47:20 +000018 return (type == other.type) &&
19 (name == other.name) &&
20 (parameters == other.parameters) &&
21 (replacements == other.replacements);
alokp@chromium.org3a01d1b2011-08-30 05:10:53 +000022}
23
Olli Etuaho6cb4c7f2015-08-13 11:27:17 +030024void PredefineMacro(MacroSet *macroSet, const char *name, int value)
25{
26 std::ostringstream stream;
27 stream << value;
28
29 Token token;
30 token.type = Token::CONST_INT;
31 token.text = stream.str();
32
33 Macro macro;
34 macro.predefined = true;
35 macro.type = Macro::kTypeObj;
36 macro.name = name;
37 macro.replacements.push_back(token);
38
39 (*macroSet)[name] = macro;
40}
41
alokp@chromium.org3a01d1b2011-08-30 05:10:53 +000042} // namespace pp
43