Hi Steve,
> It doesn't work like that, so we don't do multiple hash lookups and
> equality comparisons for each rule.
>
> We go through the tags and look each one up, based
> on an index consisting of the tag and value. So all rules that could
> be matched by say natural=mud are indexed by the string 'natural=mud'
>
> So if an element has the tag natural=mud then we find the [0x51 ...]
> directly without looking at natural=marsh or natural=wetland or doing
> any other comparison.
Thank you for clarifying that. I have some more questions:
1. What if there are multiple actions for natural=mud?
Which one(s) will be processed and in which order?
2. How and when are top-level AND expressions evaluated?
3. Why doesn't RuleFileReader.optimiseAndSaveBinaryOp() check for
second.isType(EXISTS)? Why doesn't it attempt to swap operands when
first.isType(NOT_EXISTS)?
I committed a non-functional change to RuleFileReader, making
optimiseAndSaveBinaryOp take a BinaryOp parameter.
Marko
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev