mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
lalr1.cc: simplify uses of size_t
* data/skeletons/stack.hh (stack::index_type): New type. (stack::size, stack::operator[]): Be about an index_type rather than a size_type and an int.
This commit is contained in:
@@ -35,6 +35,7 @@ m4_define([b4_stack_define],
|
|||||||
typedef typename S::reverse_iterator iterator;
|
typedef typename S::reverse_iterator iterator;
|
||||||
typedef typename S::const_reverse_iterator const_iterator;
|
typedef typename S::const_reverse_iterator const_iterator;
|
||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200)
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
@@ -43,39 +44,19 @@ m4_define([b4_stack_define],
|
|||||||
/// Random access.
|
/// Random access.
|
||||||
///
|
///
|
||||||
/// Index 0 returns the topmost element.
|
/// Index 0 returns the topmost element.
|
||||||
T&
|
const T&
|
||||||
operator[] (size_type i)
|
operator[] (index_type i) const
|
||||||
{
|
{
|
||||||
return seq_[size () - 1 - i];
|
return seq_[size_type (size () - 1 - i)];
|
||||||
}
|
|
||||||
T&
|
|
||||||
operator[] (std::ptrdiff_t i)
|
|
||||||
{
|
|
||||||
return operator[] (size_type (i));
|
|
||||||
}
|
|
||||||
T&
|
|
||||||
operator[] (int i)
|
|
||||||
{
|
|
||||||
return operator[] (size_type (i));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Random access.
|
/// Random access.
|
||||||
///
|
///
|
||||||
/// Index 0 returns the topmost element.
|
/// Index 0 returns the topmost element.
|
||||||
const T&
|
T&
|
||||||
operator[] (size_type i) const
|
operator[] (index_type i)
|
||||||
{
|
{
|
||||||
return seq_[size () - 1 - i];
|
return seq_[size_type (size () - 1 - i)];
|
||||||
}
|
|
||||||
const T&
|
|
||||||
operator[] (std::ptrdiff_t i) const
|
|
||||||
{
|
|
||||||
return operator[] (size_type (i));
|
|
||||||
}
|
|
||||||
const T&
|
|
||||||
operator[] (int i) const
|
|
||||||
{
|
|
||||||
return operator[] (size_type (i));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Steal the contents of \a t.
|
/// Steal the contents of \a t.
|
||||||
@@ -104,10 +85,10 @@ m4_define([b4_stack_define],
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Number of elements on the stack.
|
/// Number of elements on the stack.
|
||||||
size_type
|
index_type
|
||||||
size () const YY_NOEXCEPT
|
size () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return seq_.size ();
|
return index_type (seq_.size ());
|
||||||
}
|
}
|
||||||
std::ptrdiff_t
|
std::ptrdiff_t
|
||||||
ssize () const YY_NOEXCEPT
|
ssize () const YY_NOEXCEPT
|
||||||
@@ -133,20 +114,20 @@ m4_define([b4_stack_define],
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, std::ptrdiff_t range)
|
slice (const stack& stack, index_type range)
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
const T&
|
const T&
|
||||||
operator[] (std::ptrdiff_t i) const
|
operator[] (index_type i) const
|
||||||
{
|
{
|
||||||
return stack_[range_ - i];
|
return stack_[range_ - i];
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const stack& stack_;
|
const stack& stack_;
|
||||||
std::ptrdiff_t range_;
|
index_type range_;
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user