Thanks, that got me in the right direction, just for reference something like this will work:
class FooBarMacro < Asciidoctor::Extensions::BlockMacroProcessor
use_dsl
named :foobar
def process parent, target, attrs
tab = ['[width="15%"]',
'|=======',
'|1 |2 |A',
'|3 |4 |B',
'|5 |6 |C',
'|=======']
block = create_open_block parent, '', attrs
parse_content block, tab, attrs
end
end