Macros: base classes for macro parsers