Include precedence calculation in LexItemSet::transitions
This commit is contained in:
parent
e9be0ff24e
commit
73b3280fbb
11 changed files with 278 additions and 142 deletions
|
|
@ -7,6 +7,9 @@ PrecedenceRange::PrecedenceRange() : min(0), max(0), empty(true) {}
|
|||
PrecedenceRange::PrecedenceRange(int min, int max)
|
||||
: min(min), max(max), empty(false) {}
|
||||
|
||||
PrecedenceRange::PrecedenceRange(int value)
|
||||
: min(value), max(value), empty(false) {}
|
||||
|
||||
void PrecedenceRange::add(int new_value) {
|
||||
if (empty) {
|
||||
min = new_value;
|
||||
|
|
@ -20,6 +23,13 @@ void PrecedenceRange::add(int new_value) {
|
|||
}
|
||||
}
|
||||
|
||||
void PrecedenceRange::add(const PrecedenceRange &other) {
|
||||
if (!other.empty) {
|
||||
add(other.min);
|
||||
add(other.max);
|
||||
}
|
||||
}
|
||||
|
||||
bool PrecedenceRange::operator<(const PrecedenceRange &other) const {
|
||||
if (empty)
|
||||
return !other.empty;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue