grammar RecordParser
# record { key1: text; key2: 42; value1; value2; }
rule record
'record' space '{' space? (pair / value)* space? '}' <IcAgent::Ast::Nodes::IcBaseTypeRecord>
end
rule pair
space? identifier space? ':' space? identifier ';' <IcAgent::Ast::Nodes::IcBaseTypeChild>
end
rule value
space? identifier ';' <IcAgent::Ast::Nodes::IcBaseTypeChild>
end
rule identifier
[a-zA-Z0-9_]*
end
rule space
[\s]+
end
end