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

📄 sdtext.cxx

📁 SP是一个基于GNU C++编译器
💻 CXX
字号:
// Copyright (c) 1995 James Clark// See the file COPYING for copying permission.#ifdef __GNUG__#pragma implementation#endif#include "splib.h"#include "SdText.h"#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifSdText::SdText(){}SdText::SdText(const Location &loc, Boolean lita): lita_(lita){  items_.resize(items_.size() + 1);  items_.back().loc = loc;  items_.back().index = 0;}void SdText::addChar(SyntaxChar c, const Location &loc){  if (items_.size() == 0      || loc.origin().pointer() != items_.back().loc.origin().pointer()      || loc.index() != (items_.back().loc.index()			 + (chars_.size() - items_.back().index))) {    items_.resize(items_.size() + 1);    items_.back().loc = loc;    items_.back().index = chars_.size();  }  chars_ += c;}void SdText::swap(SdText &to){  items_.swap(to.items_);  chars_.swap(to.chars_);  {    Boolean tem = to.lita_;    to.lita_ = lita_;    lita_ = tem;  }}Location SdText::endDelimLocation() const{  Location loc(items_.back().loc);  loc += chars_.size() - items_.back().index;  return loc;}SdTextItem::SdTextItem(){}SdTextIter::SdTextIter(const SdText &text): ptr_(&text),  itemIndex_(0){}Boolean SdTextIter::next(const SyntaxChar *&ptr, size_t &length, Location &loc){  const Vector<SdTextItem> &items = ptr_->items_;  if (itemIndex_ >= items.size())    return 0;  loc = items[itemIndex_].loc;  const String<SyntaxChar> &chars = ptr_->chars_;  size_t charsIndex = items[itemIndex_].index;  ptr = chars.data() + charsIndex;  if (itemIndex_ + 1 < items.size())    length = items[itemIndex_ + 1].index - charsIndex;  else    length = chars.size() - charsIndex;  itemIndex_++;  return 1;}#ifdef SP_NAMESPACE}#endif

⌨️ 快捷键说明

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