Code

analyzer: Support more flexible iterator expressions.
authorSebastian Harl <sh@tokkee.org>
Mon, 31 Aug 2015 20:50:20 +0000 (22:50 +0200)
committerSebastian Harl <sh@tokkee.org>
Mon, 31 Aug 2015 20:50:20 +0000 (22:50 +0200)
commit5a53faeea89f0a24b113f6c273734808fdfccf31
tree242f1caf72a1538fbeb5647b3f61f25f55f3ad71
parent2a60a875d0938f44d21db79185d2f7c4f40424be
analyzer: Support more flexible iterator expressions.

In particular, more complex typed expressions may now include an iterator on a
lower level, like `LOOKUP services MATCHING ANY host.backend =~ 'foo'`. This
is done by adding more information to the analyzer context and pushing it down
to child nodes in the AST if necessary.

As a nice side-effect, the iterator analyzer does not longer have to know
about the specific type of its child node.
src/parser/analyzer.c
t/unit/parser/parser_test.c