ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ# # racc scanner tester # require 'racc/raccs' class ScanError < StandardError; end def testdata( dir, argv ) if argv.empty? then Dir.glob( dir + '/*' ) - Dir.glob( dir + '/*.swp' ) - [ dir + '/CVS' ] else argv.collect {|i| dir + '/' + i } end end if ARGV.delete '--print' then $raccs_print_type = true printonly = true else printonly = false end testdata( File.dirname($0) + '/scandata', ARGV ).each do |file| $stderr.print File.basename(file) + ': ' begin ok = File.read(file) s = Racc::GrammarFileScanner.new( ok ) sym, (val, _lineno) = s.scan if printonly then $stderr.puts $stderr.puts val next end val = '{' + val + "}\n" sym == :ACTION or raise ScanError, 'is not action!' val == ok or raise ScanError, "\n>>>\n#{ok}----\n#{val}<<<" $stderr.puts 'ok' rescue => err $stderr.puts 'fail (' + err.type.to_s + ')' $stderr.puts err.message $stderr.puts err.backtrace $stderr.puts end end