I'm looking for a way to write Treetop rules which will find some values in any order. So:
rule top
# ?
end
rule gender
('women'/'men') / ''
end
rule age_under
('under' age) / ''
end
rule age
[0-9]+
end
I would like to parse these inputs:
"women under 10"
"under 10 women"
"under 10"
"women"
How can I achieve this ? Thanks
Here's an example of parsing in any order. The only trouble is you would have to handle duplicates by hand since Treetop doesn't have a rule for unordered-non-repeating elements.
rule top
((gender / age_under) ' '?)*
end
rule gender
'women' / 'men'
end
rule age_under
'under ' age
end
rule age
[0-9]+
end