⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 message.cxx

📁 SP是一个基于GNU C++编译器
💻 CXX
字号:
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#ifdef __GNUG__#pragma implementation#endif#include "splib.h"#include "Message.h"#include "MessageArg.h"#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifMessageFragment::MessageFragment(unsigned module, unsigned number, const char *#ifndef SP_NO_MESSAGE_TEXT				 text#endif				 ): module_(module),#ifndef SP_NO_MESSAGE_TEXT  text_(text),#endif  number_(number){}MessageType::MessageType(Severity severity, unsigned module, unsigned number,			 const char *text, const char *#ifndef SP_NO_MESSAGE_TEXT	     		 auxText#endif			 ): #ifndef SP_NO_MESSAGE_TEXT  auxText_(auxText),#endif  MessageFragment(module, number, text){  spare_ = severity;}     MessageType0::MessageType0(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType1::MessageType1(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType2::MessageType2(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType3::MessageType3(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType4::MessageType4(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType5::MessageType5(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType6::MessageType6(Severity severity, unsigned module, unsigned number,			   const char *text): MessageType(severity, module, number, text){}MessageType0L::MessageType0L(Severity severity, unsigned module, unsigned number,			     const char *text, const char *auxText): MessageType(severity, module, number, text, auxText){}MessageType1L::MessageType1L(Severity severity, unsigned module, unsigned number,			     const char *text, const char *auxText): MessageType(severity, module, number, text, auxText){}OpenElementInfo::OpenElementInfo(): included(0), matchIndex(0){}Message::Message(){}Message::Message(int nArgs): args(nArgs){}void Message::swap(Message &to){  const MessageType *tem = type;  type = to.type;  to.type = tem;  to.loc.swap(loc);  to.auxLoc.swap(auxLoc);  args.swap(to.args);  openElementInfo.swap(to.openElementInfo);}Messenger::Messenger(): haveNextLocation_(0){}Messenger::~Messenger(){}void Messenger::dispatchMessage(Message &msg){  const Message &tem = msg;  dispatchMessage(tem);}void Messenger::message(const MessageType0 &type){  Message msg(0);  doInitMessage(msg);  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType1 &type, const MessageArg &arg0){  Message msg(1);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType2 &type,			const MessageArg &arg0,			const MessageArg &arg1){  Message msg(2);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.args[1] = arg1.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType3 &type,			const MessageArg &arg0,			const MessageArg &arg1,			const MessageArg &arg2){  Message msg(3);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.args[1] = arg1.copy();  msg.args[2] = arg2.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType4 &type,			const MessageArg &arg0,			const MessageArg &arg1,			const MessageArg &arg2,			const MessageArg &arg3){  Message msg(4);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.args[1] = arg1.copy();  msg.args[2] = arg2.copy();  msg.args[3] = arg3.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType5 &type,			const MessageArg &arg0,			const MessageArg &arg1,			const MessageArg &arg2,			const MessageArg &arg3,			const MessageArg &arg4){  Message msg(5);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.args[1] = arg1.copy();  msg.args[2] = arg2.copy();  msg.args[3] = arg3.copy();  msg.args[4] = arg4.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType6 &type,			const MessageArg &arg0,			const MessageArg &arg1,			const MessageArg &arg2,			const MessageArg &arg3,			const MessageArg &arg4,			const MessageArg &arg5){  Message msg(6);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.args[1] = arg1.copy();  msg.args[2] = arg2.copy();  msg.args[3] = arg3.copy();  msg.args[4] = arg4.copy();  msg.args[5] = arg5.copy();  msg.type = &type;  dispatchMessage(msg);}void Messenger::message(const MessageType0L &type, const Location &loc){  Message msg(0);  doInitMessage(msg);  msg.type = &type;  msg.auxLoc = loc;  dispatchMessage(msg);}void Messenger::message(const MessageType1L &type, const MessageArg &arg0,			const Location &loc){  Message msg(1);  doInitMessage(msg);  msg.args[0] = arg0.copy();  msg.type = &type;  msg.auxLoc = loc;  dispatchMessage(msg);}void Messenger::setNextLocation(const Location &loc){  haveNextLocation_ = 1;  nextLocation_ = loc;}void Messenger::initMessage(Message &){}void Messenger::doInitMessage(Message &msg){  initMessage(msg);  if (haveNextLocation_) {    msg.loc = nextLocation_;    haveNextLocation_ = 0;  }}ForwardingMessenger::ForwardingMessenger(Messenger &to): to_(&to){}void ForwardingMessenger::dispatchMessage(Message &msg){  to_->dispatchMessage(msg);}void ForwardingMessenger::dispatchMessage(const Message &msg){  to_->dispatchMessage(msg);}void ForwardingMessenger::initMessage(Message &msg){  to_->initMessage(msg);}ParentLocationMessenger::ParentLocationMessenger(Messenger &mgr): ForwardingMessenger(mgr){}void ParentLocationMessenger::initMessage(Message &msg){  ForwardingMessenger::initMessage(msg);  if (!msg.loc.origin().isNull())    msg.loc = msg.loc.origin()->parent();}NullMessenger::NullMessenger(){}void NullMessenger::dispatchMessage(const Message &){}#ifdef SP_NAMESPACE}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -