rename map to dict

because 'map', a name of data structure, comes into collision with a
name of a common function, 'map'.
add skeleton classes for symbols and scopes
fix redundant type name specifying at object construction
add rule names for compilation error
allow multiple condition in when clause at switch statement
add test for postfix, unary and primary expression, type specifier
test for cast, binary, assignment and if expression, and variable decl statement