grammar VariantParser
rule variant 'variant' space? '{' space? (pair / key)* space? '}' <IcAgent::Ast::Nodes::IcBaseTypeVariant> end rule pair space? identifier space? ':' space? identifier ';' <IcAgent::Ast::Nodes::IcBaseTypeChild> end rule key space? identifier ';' <IcAgent::Ast::Nodes::IcBaseTypeChild> end rule identifier [a-zA-Z0-9_]* end rule space [\s]+ end
end