module Harby

module Grammar
        grammar Numeric
                rule numeric
                        sign? number {
                                def parsed_value
                                        text_value =~ /\./ ? float_value : integer_value
                                end

                                def float_value
                                        text_value.to_f
                                end

                                def integer_value
                                        text_value.to_i
                                end
                        }
                end

                rule sign
                        [-+]
                end

                rule number
                        [0-9\.]+ ![^0-9\.\] ]
                end
        end
end

end