139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
# File 'lib/tins/unit.rb', line 139
def parse
reset
until eos? || @unit_parser.eos?
case
when scan(/%f/)
@unit_parser.scan_number or
raise ParserError, "\"%f\" expected at #{location}"
when scan(/%U/)
@unit_parser.scan_unit or
raise ParserError, "\"%U\" expected at #{location}"
when scan(/%%/)
@unit_parser.scan_char(?%) or
raise ParserError, "#{?%.inspect} expected at #{location}"
else
char = scan(/./)
@unit_parser.scan_char(char) or
raise ParserError, "#{char.inspect} expected at #{location}"
end
end
unless eos? && @unit_parser.eos?
raise ParserError,
"format #{string.inspect} and string "\
"#{@unit_parser.string.inspect} do not match"
end
@unit_parser.number
end
|