Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h')
-rw-r--r--deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h198
1 files changed, 0 insertions, 198 deletions
diff --git a/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h b/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h
deleted file mode 100644
index 37c9acfa534..00000000000
--- a/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
- * Use of this file is governed by the BSD 3-clause license that
- * can be found in the LICENSE.txt file in the project root.
- */
-
-#pragma once
-
-#include "Exceptions.h"
-#include "misc/Interval.h"
-
-namespace antlr4 {
-namespace misc {
-
-/**
- * This class implements the {@link IntSet} backed by a sorted array of
- * non-overlapping intervals. It is particularly efficient for representing
- * large collections of numbers, where the majority of elements appear as part
- * of a sequential range of numbers that are all part of the set. For example,
- * the set { 1, 2, 3, 4, 7, 8 } may be represented as { [1, 4], [7, 8] }.
- *
- * <p>
- * This class is able to represent sets containing any combination of values in
- * the range {@link Integer#MIN_VALUE} to {@link Integer#MAX_VALUE}
- * (inclusive).</p>
- */
-class ANTLR4CPP_PUBLIC IntervalSet {
- public:
- static IntervalSet const COMPLETE_CHAR_SET;
- static IntervalSet const EMPTY_SET;
-
- private:
- /// The list of sorted, disjoint intervals.
- std::vector<Interval> _intervals;
-
- explicit IntervalSet(std::vector<Interval>&& intervals);
-
- public:
- IntervalSet();
- IntervalSet(IntervalSet const& set);
- IntervalSet(IntervalSet&& set);
-
- template <typename T1, typename... T_NEXT>
- IntervalSet(int, T1 t1, T_NEXT&&... next) : IntervalSet() {
- // The first int argument is an ignored count for compatibility
- // with the previous varargs based interface.
- addItems(t1, std::forward<T_NEXT>(next)...);
- }
-
- IntervalSet& operator=(IntervalSet const& set);
- IntervalSet& operator=(IntervalSet&& set);
-
- /// Create a set with a single element, el.
- static IntervalSet of(ssize_t a);
-
- /// Create a set with all ints within range [a..b] (inclusive)
- static IntervalSet of(ssize_t a, ssize_t b);
-
- void clear();
-
- /// Add a single element to the set. An isolated element is stored
- /// as a range el..el.
- void add(ssize_t el);
-
- /// Add interval; i.e., add all integers from a to b to set.
- /// If b<a, do nothing.
- /// Keep list in sorted order (by left range value).
- /// If overlap, combine ranges. For example,
- /// If this is {1..5, 10..20}, adding 6..7 yields
- /// {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.
- void add(ssize_t a, ssize_t b);
-
- /// combine all sets in the array returned the or'd value
- static IntervalSet Or(const std::vector<IntervalSet>& sets);
-
- // Copy on write so we can cache a..a intervals and sets of that.
- void add(const Interval& addition);
- IntervalSet& addAll(const IntervalSet& set);
-
- template <typename T1, typename... T_NEXT>
- void addItems(T1 t1, T_NEXT&&... next) {
- add(t1);
- addItems(std::forward<T_NEXT>(next)...);
- }
-
- IntervalSet complement(ssize_t minElement, ssize_t maxElement) const;
-
- /// Given the set of possible values (rather than, say UNICODE or MAXINT),
- /// return a new set containing all elements in vocabulary, but not in
- /// this. The computation is (vocabulary - this).
- ///
- /// 'this' is assumed to be either a subset or equal to vocabulary.
- IntervalSet complement(const IntervalSet& vocabulary) const;
-
- /// Compute this-other via this&~other.
- /// Return a new set containing all elements in this but not in other.
- /// other is assumed to be a subset of this;
- /// anything that is in other but not in this will be ignored.
- IntervalSet subtract(const IntervalSet& other) const;
-
- /**
- * Compute the set difference between two interval sets. The specific
- * operation is {@code left - right}. If either of the input sets is
- * {@code null}, it is treated as though it was an empty set.
- */
- static IntervalSet subtract(const IntervalSet& left,
- const IntervalSet& right);
-
- IntervalSet Or(const IntervalSet& a) const;
-
- /// Return a new set with the intersection of this set with other. Because
- /// the intervals are sorted, we can use an iterator for each list and
- /// just walk them together. This is roughly O(min(n,m)) for interval
- /// list lengths n and m.
- IntervalSet And(const IntervalSet& other) const;
-
- /// Is el in any range of this set?
- bool contains(size_t el) const; // For mapping of e.g. Token::EOF to -1 etc.
- bool contains(ssize_t el) const;
-
- /// return true if this set has no members
- bool isEmpty() const;
-
- /// If this set is a single integer, return it otherwise Token.INVALID_TYPE.
- ssize_t getSingleElement() const;
-
- /**
- * Returns the maximum value contained in the set.
- *
- * @return the maximum value contained in the set. If the set is empty, this
- * method returns {@link Token#INVALID_TYPE}.
- */
- ssize_t getMaxElement() const;
-
- /**
- * Returns the minimum value contained in the set.
- *
- * @return the minimum value contained in the set. If the set is empty, this
- * method returns {@link Token#INVALID_TYPE}.
- */
- ssize_t getMinElement() const;
-
- /// <summary>
- /// Return a list of Interval objects. </summary>
- std::vector<Interval> const& getIntervals() const;
-
- size_t hashCode() const;
-
- /// Are two IntervalSets equal? Because all intervals are sorted
- /// and disjoint, equals is a simple linear walk over both lists
- /// to make sure they are the same.
- bool operator==(const IntervalSet& other) const;
- std::string toString() const;
- std::string toString(bool elemAreChar) const;
-
- /**
- * @deprecated Use {@link #toString(Vocabulary)} instead.
- */
- std::string toString(const std::vector<std::string>& tokenNames) const;
- std::string toString(const dfa::Vocabulary& vocabulary) const;
-
- protected:
- /**
- * @deprecated Use {@link #elementName(Vocabulary, int)} instead.
- */
- std::string elementName(const std::vector<std::string>& tokenNames,
- ssize_t a) const;
- std::string elementName(const dfa::Vocabulary& vocabulary, ssize_t a) const;
-
- public:
- size_t size() const;
- std::vector<ssize_t> toList() const;
- std::set<ssize_t> toSet() const;
-
- /// Get the ith element of ordered set. Used only by RandomPhrase so
- /// don't bother to implement if you're not doing that for a new
- /// ANTLR code gen target.
- ssize_t get(size_t i) const;
- void remove(size_t el); // For mapping of e.g. Token::EOF to -1 etc.
- void remove(ssize_t el);
-
- private:
- void addItems() { /* No-op */
- }
-};
-
-} // namespace misc
-} // namespace antlr4
-
-// Hash function for IntervalSet.
-
-namespace std {
-using antlr4::misc::IntervalSet;
-
-template <>
-struct hash<IntervalSet> {
- size_t operator()(const IntervalSet& x) const { return x.hashCode(); }
-};
-} // namespace std