Predict output of macros: text replacement without brackets, SQ(2+1), side effects, # and ## operators and conditional compilation.