I'm having a bit of difficulty parsing fractions in my treetop grammar.
My grammar looks like this
grammar Numbers
rule number
regular_number optional_frac {
def value
[:number, text_value]
end
}
end
rule optional_frac
frac_number? {
def value
[:optional_frac, text_value]
end
}
end
rule frac_number
(s? regular_number '/' regular_number)? / ('/' regular_number)? {
def value
[:frac_number, text_value]
end
}
end
rule regular_number
[0-9\.\/-]+ {
def value
text_value
end
}
end
end
When I try to get the values from
2 => number
1/2 => number, frac_number
2 2/4 => not recognized
I though the rule
s? regular_number '/' regular_number
would return as a fraction. any idea what is wrong in my grammar?