Allow one-line case: break; constructs.

Ignore the 'break' statement if it is on the same line as the case:/default: label, to support code which looks like this:

switch(i) {
case 0: action0(); break;
case 1: action1(); break;
default: defaultAction(); break;
}
Merge pull request #230 from Typz/casebreak

Allow one-line case: break; constructs.
#243 import coverage for files at top level
prevent server from not starting in case of invalid xml

(cherry picked from commit 3d982e74cff3c8b3c960db37bb4f7355e0ce70cf)
Support C99 designed initializers.

Standard C89 and C++ require the elements of an initializer to appear in a fixed order, the same as the order of the elements in the array or structure being initialized.

In ISO C99 you can give the elements in any order, specifying the array indices or structure field names they apply to.
To specify an array index, write `[index] =' before the element value. For example,

     int a[6] = { [4] = 29, [2] = 15 };

Gcc also adds an extension to initialize a range of elements to the same value, by writing `[first ... last] = value'. For example,

     int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };

In a structure initializer, specify the name of a field to initialize with `.fieldname =' before the element value. For example,

     struct point { int x, y; };
     struct point p = { .y = yvalue, .x = xvalue };
Support GCC case range extension.

With GCC, you can specify a range of consecutive values in a single case label, like this:

     case low ... high:

This has the same effect as the proper number of individual case labels, one for each integer value from low to high, inclusive.
Generate violation for each missing include file.
Generate include dependencies.
Add metrics to count number of violations of each type.
Merge pull request #235 from Typz/rangecase

Support GCC case range extension.
Merge pull request #236 from Typz/designedinitializers

Support C99 designed initializers.
Support C99 compound literals.

ISO C99 supports compound literals. A compound literal looks like a cast
containing an initializer. Its value is an object of the type specified
in the cast, containing the elements specified in the initializer; it is
an lvalue.

For example,
    struct foo {int a; char b[2];} structure;
    structure = ((struct foo) {x + y, 'a', 0});
Merge pull request #237 from Typz/compoundliterals

Support C99 compound literals.
Merge pull request #177 from Typz/metrics

Add metrics to count number of violations of each type.
Add design metrics based on include dependencies between files and directories.

Conflicts:
	sonar-cxx-plugin/src/main/java/org/sonar/plugins/cxx/squid/CxxSquidSensor.java
fix typo
Extend the set of metrics checked by the smoketests
Extend the smoketests by a design metrics check
smoketests: correct the expected metric values
fix pc-lint rule respository

- add 5 new messages beta 9.0k2
- remove XML issue