Dictionary names begin with uppercase letters
use FR_TOKEN, not int.  Better error message for parse errors

	case "foo {

is a syntax error.  It shouldn't print a complaint about an
invalid token.
If there's no dictionary entry, it's a literal.

And use the same literal code as the other cases
set fr_strerror() if the reference isn't an attribute
Added cf_section_name2_type

For switch and case statements
Precompile 'switch' and 'case' arguments.

and add regression tests.

Previously "switch blah" with a static string would always hit
the "case {..." block.  It will now match a "case blah {" block,
if it exists.