Fixed #4381 (Inline type declaration on statics causes warning)
reduce: rename stdout to print to avoid name clash
update translations
version.h: update copyright year
Fixed #4385: lock_guard RAII throws unreadVariable
Match compiler: Split _replaceTokenMatch() into two small functions
Match compiler: Implement 'verify mode' for Token::Match

Verify mode runs the same ::Match pattern on a token
using the on-the-fly parser and the compiled match parser.
The result is compared and we abort on mismatch.

Already detected an error in our test suite, needs investigation.
Add TODO test case for a bug in Token::Match multicompare

The result of the %op% operator is wrong in the multicompare
case for C++ templates. Detected by comparing the output
of the compiled matches with the on-the-fly match parser.
Add another TODO test case for Token::Match
tools/reduce: change default timeout to 5 minutes no matter if --hang is used or not.
Change location of %op% operator in multicompare

When the %op% operator is the first element
of a multicompare, it properly executes Token::isOp().
Otherwise it uses it's "internal implementation".

Workaround inspired by Edoardo Prezioso.
Properly implement %op% for Token::multiCompare

Use tok->isOp() instead of doing it "manually".

This fixes false positives for the C++ template case since
the brackets in "template < something >" are not comparison operators.

Profiling showed using tok->isOp() is actually faster than before (-O2).
Revert "Change location of %op% operator in multicompare"
It's no longer needed with the proper fix for Token::Match().

This reverts commit 8b2adf1391f5ae02040ecf1fdc6c2d422e87c343.
Match compiler: Workaround broken optimizations in verify mode

If the match compiler uses the 'verify' mode and we
compile with -O2, some tests comparing the on-the-fly-parser
to the compiled match fail.

Small functions are inlined by the -O2 compile flag.
If we disable function inlining and still compile with -O2,
everything is back to normal.

gdb didn't show anything useful during the mismatch
since the needed variables are optimized out. Once
we start printing them, the problem vanishes, too.
-> Can only be diagnosed at the x86 assembly level.

The problem vanished by switching the invocation order
of Token::Match() and the compiled match, so just swap them.

Also add commented out helper code
to better diagnose mismatch problems.
Match compiler: Create 'build' directory if needed
Match compiler: Be more user friendly on how to invoke it
Match compiler: Workaround broken code generation for "!!foo" patterns

This is just meant for the upcoming release.
Match compiler: Add cmdline handling
Token::Match: removed harmless special code for initial '!!foo' patterns.
Add local copy of argparse module to support python 2.6 / python 3.0