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

📄 vectorstack.h

📁 用于词法分析的词法分析器
💻 H
字号:
/*  $Id: VectorStack.h,v 1.2 1997/02/02 01:31:05 matt Exp $  Stack as vector.  (c) Matt Phillips Mar 1995.  */#ifndef _VSTACK_H#define _VSTACK_H#include "Stack.h"#include "Vector.h"template <class T, class E>class VectorStackImp : public Stack<T>, protected VectorImp<T, E>{public:  typedef class VectorStackImpIter<T, E> Iterator;   VectorStackImp (int _max) : VectorImp<T, E> (_max) {}  const char *name () const {return Stack<T>::name ();}  int nItems () const {return VectorImp<T, E>::nItems ();}  int isFull () const {return VectorImp<T, E>::isFull ();}  int isEmpty () const {return VectorImp<T, E>::isEmpty ();}  void clear () {VectorImp<T, E>::clear ();}  virtual void push (T &i)  {    STACK_OVERFLOW (!isFull ());    data [_nItems++].set (i);  }  virtual void pop ()  {    STACK_UNDERFLOW (!isEmpty ());    data [--_nItems].destroy ();  }  virtual T &top () const  {    STACK_UNDERFLOW (!isEmpty ());    return data [_nItems].ref ();  }  Iterator *makeIter () const {return new Iterator (*this);}  friend class Iterator;};template <class T, class E>class VectorStackImpIter : public VectorImpIter<T, E>{public:  VectorStackImpIter (const VectorStackImp<T, E> &s) :    VectorImpIter<T, E> (s) {}};#define TypeDVectorStack(T)  VectorStackImp<T, DCell<T> >#define TypeIVectorStack(T)  VectorStackImp<T, ICell<T, 0> >#define TypeIOVectorStack(T) VectorStackImp<T, ICell<T, 1> >#endif

⌨️ 快捷键说明

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