support # operator which stringify functional macro argument
support C string concatenation
fix problem when functional macro is given as argument for functional macro (caused by unmatched parentheses parsing)
fix problem when , is included in string literal macro argument
considering macro expansion causes another expansion