Your code is syntactically correct if the file is named "gmgatedemulti.hdl". Usually when the Hardware Simulator complains about syntax problems when none are apparent, it is because the HDL file was saved with Unicode text encoding. You need to make sure that your text editor is saving files with ANSI text encoding.
Note that you should be starting with the skeleton files supplied in the project\01 directory, keeping their original names. If the file has the wrong name. it cannot be tested with the supplied test script.