Macro definition requires a semicolon to mark the end. For example:
But invoked through command line, the macro definitions without semicolon also work except in the case of dryrun. This discrepancy is due to GruntParser automatic appending a semicolon to Pig statements if semicolon is absent at the end. Dryrun GruntParser should do the same.