122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===- CommandAction.cpp --------------------------------------------------===// 222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// The MCLinker Project 422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// This file is distributed under the University of Illinois Open Source 622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// License. See LICENSE.TXT for details. 722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/MC/CommandAction.h> 1022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/MC/InputBuilder.h> 1122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/MC/SearchDirs.h> 1222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/MC/Attribute.h> 1322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/Support/MsgHandling.h> 1422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 1522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaousing namespace mcld; 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// Derived Positional Option 1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 2022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// InputFileAction 2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoInputFileAction::InputFileAction(unsigned int pPosition, 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const sys::fs::Path &pPath) 2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition), m_Path(pPath) { 2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool InputFileAction::activate(InputBuilder& pBuilder) const 2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 2922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.createNode<InputTree::Positional>(path().stem().native(), path()); 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 3422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// NamespecAction 3522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoNamespecAction::NamespecAction(unsigned int pPosition, 3722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const std::string &pNamespec, 3822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao SearchDirs& pSearchDirs) 3922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition), m_Namespec(pNamespec), m_SearchDirs(pSearchDirs) { 4022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool NamespecAction::activate(InputBuilder& pBuilder) const 4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 4422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao sys::fs::Path* path = NULL; 4522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // find out the real path of the namespec. 4622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao if (pBuilder.getConstraint().isSharedSystem()) { 4722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // In the system with shared object support, we can find both archive 4822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // and shared object. 4922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 5022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao if (pBuilder.getAttributes().isStatic()) { 5122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // with --static, we must search an archive. 5222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao path = m_SearchDirs.find(namespec(), Input::Archive); 5322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 5422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao else { 5522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // otherwise, with --Bdynamic, we can find either an archive or a 5622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // shared object. 5722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao path = m_SearchDirs.find(namespec(), Input::DynObj); 5822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 5922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 6022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao else { 6122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // In the system without shared object support, we only look for an archive 6222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao path = m_SearchDirs.find(namespec(), Input::Archive); 6322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 6422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 6522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao if (NULL == path) { 6622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao fatal(diag::err_cannot_find_namespec) << namespec(); 6722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return false; 6822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 6922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 7022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.createNode<InputTree::Positional>(namespec(), *path); 7122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 7222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 7322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 7422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 7522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// BitcodeAction 7622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 7722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoBitcodeAction::BitcodeAction(unsigned int pPosition, const sys::fs::Path &pPath) 7822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition), m_Path(pPath) { 7922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 8022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 8122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool BitcodeAction::activate(InputBuilder& pBuilder) const 8222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 8322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.createNode<InputTree::Positional>("bitcode", path(), Input::External); 8422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 8522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 8622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 8722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 8822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// StartGroupAction 8922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 9022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoStartGroupAction::StartGroupAction(unsigned int pPosition) 9122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 9222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 9322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 9422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool StartGroupAction::activate(InputBuilder& pBuilder) const 9522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 9622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao if (pBuilder.isInGroup()) { 9722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao fatal(diag::fatal_forbid_nest_group); 9822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return false; 9922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao } 10022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.enterGroup(); 10122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 10222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 10322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 10422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 10522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// EndGroupAction 10622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 10722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoEndGroupAction::EndGroupAction(unsigned int pPosition) 10822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 10922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 11022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 11122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool EndGroupAction::activate(InputBuilder& pBuilder) const 11222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 11322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.exitGroup(); 11422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 11522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 11622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 11722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 11822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// WholeArchiveAction 11922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 12022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoWholeArchiveAction::WholeArchiveAction(unsigned int pPosition) 12122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 12222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 12322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 12422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool WholeArchiveAction::activate(InputBuilder& pBuilder) const 12522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 12622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().setWholeArchive(); 12722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 12822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 12922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 13022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 13122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// NoWholeArchiveAction 13222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 13322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoNoWholeArchiveAction::NoWholeArchiveAction(unsigned int pPosition) 13422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 13522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 13622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 13722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool NoWholeArchiveAction::activate(InputBuilder& pBuilder) const 13822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 13922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().unsetWholeArchive(); 14022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 14122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 14222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 14322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 14422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// AsNeededAction 14522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 14622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoAsNeededAction::AsNeededAction(unsigned int pPosition) 14722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 14822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 14922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 15022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool AsNeededAction::activate(InputBuilder& pBuilder) const 15122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 15222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().setAsNeeded(); 15322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 15422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 15522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 15622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 15722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// NoAsNeededAction 15822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 15922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoNoAsNeededAction::NoAsNeededAction(unsigned int pPosition) 16022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 16122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 16222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 16322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool NoAsNeededAction::activate(InputBuilder& pBuilder) const 16422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 16522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().unsetAsNeeded(); 16622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 16722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 16822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 16922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 17022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// AddNeededAction 17122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 17222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoAddNeededAction::AddNeededAction(unsigned int pPosition) 17322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 17422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 17522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 17622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool AddNeededAction::activate(InputBuilder& pBuilder) const 17722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 17822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().setAddNeeded(); 17922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 18022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 18122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 18222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 18322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// NoAddNeededAction 18422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 18522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoNoAddNeededAction::NoAddNeededAction(unsigned int pPosition) 18622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 18722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 18822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 18922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool NoAddNeededAction::activate(InputBuilder& pBuilder) const 19022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 19122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().unsetAddNeeded(); 19222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 19322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 19422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 19522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 19622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// BDynamicAction 19722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 19822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoBDynamicAction::BDynamicAction(unsigned int pPosition) 19922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 20022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 20122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 20222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool BDynamicAction::activate(InputBuilder& pBuilder) const 20322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 20422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().setDynamic(); 20522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 20622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 20722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 20822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 20922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// BStaticAction 21022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 21122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoBStaticAction::BStaticAction(unsigned int pPosition) 21222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : InputAction(pPosition) { 21322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 21422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 21522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool BStaticAction::activate(InputBuilder& pBuilder) const 21622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 21722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao pBuilder.getAttributes().setStatic(); 21822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao return true; 21922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 22022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 221