Edit

kc3-lang/angle/src/compiler/preprocessor/new/Macro.cpp

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2011-09-13 04:10:41
    Hash : 16efbbae
    Message : Complete implementation for handling #define directive. Review URL: http://codereview.appspot.com/4963062 git-svn-id: https://angleproject.googlecode.com/svn/trunk@752 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/compiler/preprocessor/new/Macro.cpp
  • //
    // Copyright (c) 2011 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    #include "Macro.h"
    
    #include <algorithm>
    
    #include "stl_utils.h"
    
    namespace pp
    {
    
    Macro::Macro(Type type,
                 std::string* name,
                 TokenVector* parameters,
                 TokenVector* replacements)
        : mType(type),
          mName(name),
          mParameters(parameters),
          mReplacements(replacements)
    {
    }
    
    Macro::~Macro()
    {
        delete mName;
    
        if (mParameters)
        {
            std::for_each(mParameters->begin(), mParameters->end(), Delete());
            delete mParameters;
        }
    
        if (mReplacements)
        {
            std::for_each(mReplacements->begin(), mReplacements->end(), Delete());
            delete mReplacements;
        }
    }
    
    }  // namespace pp