Parameter definition for macros not only name with default

Parameters could be defined by expressions

name?:42 // the value of the parameter or 42
name?!upper_case?:'' // the value of the parameter in upper case or an empty string