API Tomfoolery?

Holy crap, Fizzy.

That’s perfect.

I’ll work on folding it in.

I’ve got the actual parsing of the macro almost done.

I have a table with lines.
Lines are defined as a command followed by a set of 0-n command objects.
That set is delimited by semi-colons.
Next is parsing out the conditional sets.
Then it’s just a matter of interpreting it all, which shouldn’t be too difficult.

I kinda want to tie the abilities in to the known spells/talents/items to give warnings about things that aren’t going to work, but I’m not sure that’ll be in a first release.

Test output thru today’s work.

["18"] = {
	{
		["cmd"] = "#showtooltip",
		["cmdObjTbl"] = {
			{
				["cObjConds"] = false,
				["cObjVerb"] = false,
			}, -- [1]
		},
		["cmdType"] = "D",
		["rawLine"] = "#showtooltip",
	}, -- [1]
	{
		["cmd"] = "/cast",
		["cmdObjTbl"] = {
			{
				["cObjConds"] = "[combat][mod:shift]",
				["cObjVerb"] = "Disengage",
			}, -- [1]
			{
				["cObjConds"] = "[mod:alt]",
				["cObjVerb"] = "Traveler's Tundra Mammoth",
			}, -- [2]
			{
				["cObjConds"] = "[mod]",
				["cObjVerb"] = "Albino Drake",
			}, -- [3]
			{
				["cObjConds"] = false,
				["cObjVerb"] = "Vicious War Spider",
			}, -- [4]
		},
		["cmdType"] = "S",
		["rawLine"] = "/cast [combat][mod:shift]Disengage;[mod:alt]Traveler's Tundra Mammoth;[mod]Albino Drake;Vicious War Spider",
	}, -- [2]
}

Tomorrow I tackle parsing the conditionals into “and” and “or” groups.