Apple Script "Syntax Error"

Solution 1:

using {option,control,shift} down doesn't work; use using {option down, control down, shift down} instead.

BTW, I should probably describe how I found this problem, since it's a very general and useful troubleshooting technique. I don't know AppleScript syntax well enough to spot this as a problem, but I do know how to isolate a problem: by removing parts of the code (or replacing them with placeholders if necessary), and seeing if the problem goes away. By seeing which bits of code remove the problem, I can isolate where the specific problem is.

This technique is the basis of the "divide and conquer" method described here for creating a minimal, reproducible example of a problem before posting it here. This is an extremely useful process to go through before posting, both because it'll reduce the amount of irrelevant stuff people here have to look through to find the problem, and also because there's a good chance you'll spot the problem yourself once it's isolated out.

In this case, I used the opposite technique: rather than trying to remove everything except the problem, I tried to remove only the problem. That is, I removed sections of code, and if the problem remained I put that section back and tried removing something else instead. But if removing a section did remove the problem, I'd put it back and then try removing just a smaller piece of it.

So, the first thing I did was remove most of the contents of the tell application "Safari" ... end tell section (leaving just activate, so it wouldn't complain about an empty section), hit the Compile button, and got no error. So I put it back (Command-Z to undo), and removed just the repeat 100 times ... end repeat section. Compile, still get the error. Ok, put that back... and there's one other line that looks different from most of the others. So I removed the line with {option,control,shift}, Compiled, error gone!

So at that point I knew where the error was coming from, and it was just a matter of trying variations on the syntax until I found one that worked.