Add an extra newline between automata sources.
Ignore .clang_complete, too.
More parentheses make precedence clearer.

In this macro, 'x' and 'y' could be complex expressions with their own operator precedence rules.
All variables to be marked as 'free'.

Let assertions define local variables that bind multiple events together, even though we don't currently know their value. For instance, we should be able to specify that foo(x) and bar(x) were called with the same x, even though we don't currently know what x was.
Trivial: drop unused declarations.
Add a mask of free variables to tesla_key.

This will be used to tell automata instances with a particular name mask that an event occurred, even if we don't know what the names should be.

For instance, we can say "all automata with name (a,b,x,*)", where 'x' is "a value that we don't currently know" and '*' is "a value may or may not be set".
Use free variables in instrumentation code.