Macro API Syntax Exception?

I’m looking at the EBNF for the Macro API and I think I found a non-compliant but working command.

EBNF for the Macro API

command = "/", command-verb, [ {command-object, ";" } command-object] ]|
  command-verb = ? any secure command word ?|
  command-object = { condition } parameters|
  parameters = ? anything which may be passed to the command word ?|
  condition = "[" condition-phrase { "," condition-phrase } "]"|
  condition-phrase = ([ "no" ], option-word, [ ":" option-argument { "/" option-argument } ] | "@", target)|
  option-argument = ? any one-word option, such as 'shift, 'ctrl', 'target', '1', '2' ?|
  target = ? a target pattern ?|

The /run command - I do not think that this will work (the game is coming down or I’d test it myself) - I’m looking for confirmation from someone who might have tried it.

/run [mounted]print("This should only work when mounted");print("This should only work when not mounted")

I might be wrong. It’s never occurred to me to try to use /run like this. I’m hoping it has to someone else.

I think /script and /run were omitted from macro conditionals in 2.0 based on the blue post below. (The thread has dozens of posts where Slouken discussed what would and would not be possible as the system was being built.)

Original: http://forums.worldofwarcraft.com/thread.html?topicId=36975623&pageNo=7&sid=1#131,

Archived: http://blue.cardplace.com/newcache/forums.worldofwarcraft.com/36975623.htm

Thanks, Dahk.

I reworked how I implemented my conditional parsing to deal with it either way, but I was pretty sure that wouldn’t work.

As with most reworked designs, it’s cleaner now anyway, so . . . good exercise on my part.

I will have to put in exception processing for /run and /script lines so that I indicate that macro conditional processing is not allowed in them, but that’s simpler than what I was facing with my older conditional extraction code if they were allowed (dealing with either “[” or “]” in Lua code after a /run command).