0b450b1184
A couple problems: 1. We should probably also support negative ranges, but this is a bit annoying since we can't tell if the range is negative or positive until expr evaluation. 2. Evaluating the range exprs at compile-time is inconsistent from other C exprs in our tests/benches (normal defines, if filters, etc), and severely limiting since we can't use other defines before the define system is initialized. 2. Attempting to move these range exprs into their own lazily evaluated functions does not seem tractable... We'd need to evaluate defines to know how many permutations there are, but how can we evaluate defines before knowing which permutation we're on? I think this circular dependency would make the permutation count undecidable? Even if we could move these exprs to their own lazily evaluated functions (which would solve the inconsistency issue), the complexity risks outweighing the benefit. Keep in mind it's useful if external tools can parse our tests. So reverting for now. Though I am keeping some of the refactoring in test.py/bench.py. Having a special DRange type is useful if we ever want to add more define functions in the future.