home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ruby164.zip / rbemx164.zip / ruby / share / doc / racc-1.3.9 / sample / yyerr.y < prev   
Text File  |  2001-04-07  |  490b  |  49 lines

  1. #
  2. # yyerr.y
  3. #
  4. # error/yyerror/yyerrok/yyaccept test
  5. #
  6.  
  7. class A
  8. rule
  9.  
  10. target: a b c
  11.  
  12. a :
  13.       {
  14.         yyerror
  15.         raise ArgumentError, "yyerror failed"
  16.       }
  17.   | error
  18.  
  19. b :
  20.       {
  21.         yyerrok
  22.       }
  23.  
  24. c :
  25.       {
  26.         yyaccept
  27.         raise "yyaccept failed"
  28.       }
  29.  
  30. end
  31.  
  32. ---- inner
  33.  
  34.   def parse
  35.     do_parse
  36.   end
  37.  
  38.   def next_token
  39.     [false, '$end']
  40.   end
  41.  
  42.   def on_error( *args )
  43.     $stderr.puts "on_error called: args=#{args.inspect}"
  44.   end
  45.  
  46. ---- footer
  47.  
  48. A.new.parse
  49.