// Path: src/org/derric_lang/validator/ValueSet.java
// public class ValueSet implements ValueComparer {
// 
// 	private ArrayList<ValueComparer> _values = new ArrayList<ValueComparer>();
// 
// 	public void addEquals(long value) {
// 		_values.add(new Value(value, true));
// 	}
// 
// 	public void addNot(long value) {
// 		_values.add(new Value(value, false));
// 	}
// 
// 	public void addEquals(long lower, long upper) {
// 		_values.add(new Range(lower, upper, true));
// 	}
// 
// 	public void addNot(long lower, long upper) {
// 		_values.add(new Range(lower, upper, false));
// 	}
// 
// 	@Override
// 	public boolean equals(long value) {
// 		for (ValueComparer vc : _values) {
// 			if (vc.equals(value))
// 				return true;
// 		}
// 		return false;
// 	}
// 
// 	class Value implements ValueComparer {
// 		public long value;
// 		public boolean equals;
// 
// 		public Value(long value, boolean equals) {
// 			this.value = value;
// 			this.equals = equals;
// 		}
// 
// 		@Override
// 		public boolean equals(long value) {
// 			return (this.value == value) == equals;
// 		}
// 	}
// 
// 	class Range implements ValueComparer {
// 		public long lower;
// 		public long upper;
// 		public boolean equals;
// 
// 		public Range(long lower, long upper, boolean equals) {
// 			this.lower = lower;
// 			this.upper = upper;
// 			this.equals = equals;
// 		}
// 
// 		@Override
// 		public boolean equals(long value) {
// 			return (lower <= value && upper >= value) == equals;
// 		}
// 	}
// }


import java.util.Map;
import org.derric_lang.validator.ValueSet;
package org.derric_lang.validator.interpreter.structure;



public class Range extends ValueSetExpression {
	
	private final ValueExpression _lower;
	private final ValueExpression _upper;
	
	public Range(ValueExpression lower, ValueExpression upper) {
		_lower = lower;
		_upper = upper;
	}
	
	public ValueExpression getLower() {
		return _lower;
	}
	
	public ValueExpression getUpper() {
		return _upper;
	}
	
	@Override
// Path: src/org/derric_lang/validator/ValueSet.java
// public class ValueSet implements ValueComparer {
// 
// 	private ArrayList<ValueComparer> _values = new ArrayList<ValueComparer>();
// 
// 	public void addEquals(long value) {
// 		_values.add(new Value(value, true));
// 	}
// 
// 	public void addNot(long value) {
// 		_values.add(new Value(value, false));
// 	}
// 
// 	public void addEquals(long lower, long upper) {
// 		_values.add(new Range(lower, upper, true));
// 	}
// 
// 	public void addNot(long lower, long upper) {
// 		_values.add(new Range(lower, upper, false));
// 	}
// 
// 	@Override
// 	public boolean equals(long value) {
// 		for (ValueComparer vc : _values) {
// 			if (vc.equals(value))
// 				return true;
// 		}
// 		return false;
// 	}
// 
// 	class Value implements ValueComparer {
// 		public long value;
// 		public boolean equals;
// 
// 		public Value(long value, boolean equals) {
// 			this.value = value;
// 			this.equals = equals;
// 		}
// 
// 		@Override
// 		public boolean equals(long value) {
// 			return (this.value == value) == equals;
// 		}
// 	}
// 
// 	class Range implements ValueComparer {
// 		public long lower;
// 		public long upper;
// 		public boolean equals;
// 
// 		public Range(long lower, long upper, boolean equals) {
// 			this.lower = lower;
// 			this.upper = upper;
// 			this.equals = equals;
// 		}
// 
// 		@Override
// 		public boolean equals(long value) {
// 			return (lower <= value && upper >= value) == equals;
// 		}
// 	}
// }


// Path: src/org/derric_lang/validator/interpreter/structure/Range.java
import java.util.Map;
import org.derric_lang.validator.ValueSet;

package org.derric_lang.validator.interpreter.structure;



public class Range extends ValueSetExpression {
	
	private final ValueExpression _lower;
	private final ValueExpression _upper;
	
	public Range(ValueExpression lower, ValueExpression upper) {
		_lower = lower;
		_upper = upper;
	}
	
	public ValueExpression getLower() {
		return _lower;
	}
	
	public ValueExpression getUpper() {
		return _upper;
	}
	
	@Override
	public ValueSet eval(ValueSet vs, Map<String, Type> globals, Map<String, Type> locals) {