diff options
-rw-r--r-- | lib/coderay/scanners/ruby.rb | 4 | ||||
-rw-r--r-- | test/scanners/ruby/example.expected.raydebug | 4 | ||||
-rw-r--r-- | test/scanners/ruby/pleac.expected.raydebug | 76 | ||||
-rw-r--r-- | test/scanners/ruby/rails.expected.raydebug | 12 | ||||
-rw-r--r-- | test/scanners/ruby/sidebarize.expected.raydebug | 2 | ||||
-rw-r--r-- | test/scanners/ruby/strange.expected.raydebug | 2 |
6 files changed, 52 insertions, 48 deletions
diff --git a/lib/coderay/scanners/ruby.rb b/lib/coderay/scanners/ruby.rb index 90c640a..721f0e4 100644 --- a/lib/coderay/scanners/ruby.rb +++ b/lib/coderay/scanners/ruby.rb @@ -147,6 +147,10 @@ module Scanners tokens << [match, kind] next + elsif bol? && match = scan(/\#!.*/) + tokens << [match, :doctype] + next + elsif match = scan(/\#.*/) or ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) ) kind = :comment diff --git a/test/scanners/ruby/example.expected.raydebug b/test/scanners/ruby/example.expected.raydebug index 9e17af6..ed828cd 100644 --- a/test/scanners/ruby/example.expected.raydebug +++ b/test/scanners/ruby/example.expected.raydebug @@ -2636,7 +2636,7 @@ reserved(end) comment(# vim:foldmethod=syntax) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) ident(require) string<delimiter(')content(fox12)delimiter(')> @@ -2885,7 +2885,7 @@ reserved(if) pre_constant(__FILE__) operator(==) global_variable($0) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) ident(require) string<delimiter(')content(fox)delimiter(')> reserved(begin) diff --git a/test/scanners/ruby/pleac.expected.raydebug b/test/scanners/ruby/pleac.expected.raydebug index 07ef0f2..aec8df3 100644 --- a/test/scanners/ruby/pleac.expected.raydebug +++ b/test/scanners/ruby/pleac.expected.raydebug @@ -642,7 +642,7 @@ comment(# dunno if an equivalent to Lingua::EN::Inflect exists...) comment(# @@PLEAC@@_2.19) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# bigfact - calculating prime factors) reserved(def) method(factorize)operator(()ident(orig)operator(\)) ident(factors) operator(=) operator({)operator(}) @@ -808,7 +808,7 @@ comment(# (may be interrupted by sending the process a SIGALRM\)) comment(# @@PLEAC@@_3.11) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# hopdelta - feed mail header, produce lines) comment(# showing delay at each hop.) ident(require) string<delimiter(')content(time)delimiter(')> @@ -919,7 +919,7 @@ comment(# So, needs:) ident(print) string<delimiter(")content(I have )inline<inline_delimiter(#{)ident(array)operator(.)ident(join)operator(()string<delimiter(')content( )delimiter(')>operator(\))inline_delimiter(})>content( marbles)char(\\n)delimiter(")> comment(# -> I have red yellow green marbles) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# communify_series - show proper comma insertion in list output) reserved(def) method(commify_series)operator(()ident(arr)operator(\)) @@ -1222,7 +1222,7 @@ reserved(end) comment(# @@PLEAC@@_4.18) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(# example 4-2 words) comment(# words - gather lines, present in colums) @@ -1481,7 +1481,7 @@ ident(food_color)operator(.)ident(keys)operator(.)ident(sort)operator(.)ident(ea operator(}) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# countfrom - count number of messages from each sender) comment(# Default value is 0) @@ -1528,7 +1528,7 @@ ident(puts) ident(surname)operator(.)ident(index)operator(()string<delimiter(")c comment(# If you really needed to 'invert' the whole hash, use Hash#invert) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# foodfind - find match for food or color) ident(given) operator(=) pre_constant(ARGV)operator(.)ident(shift) reserved(or) ident(raise) string<delimiter(")content(usage: foodfind food_or_color)delimiter(")> @@ -1962,7 +1962,7 @@ reserved(end) comment(# @@PLEAC@@_6.6) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# killtags - very bad html killer) global_variable($/) operator(=) pre_constant(nil)operator(;) comment(# each read is whole file) reserved(while) ident(file) operator(=) ident(gets)operator(()operator(\)) reserved(do) @@ -1970,7 +1970,7 @@ reserved(while) ident(file) operator(=) ident(gets)operator(()operator(\)) reser ident(puts) ident(file) comment(# print file to STDOUT) reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(#headerfy - change certain chapter headers to html) global_variable($/) operator(=) string<delimiter(')delimiter(')> reserved(while) ident(file) operator(=) ident(gets)operator(()operator(\)) reserved(do) @@ -1990,7 +1990,7 @@ reserved(end) comment(#-----------------------------) comment(#% ruby -00pe "gsub!(/\\A(Chapter\\s+\\d+\\s*:.*\)/,'<H1>\\1</H1>'\)" datafile) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(#-----------------------------) reserved(for) ident(file) reserved(in) pre_constant(ARGV) ident(file) operator(=) constant(File)operator(.)ident(open)operator(()pre_constant(ARGV)operator(.)ident(shift)operator(\)) @@ -2113,7 +2113,7 @@ reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# popgrep1 - grep for abbreviations of places that say "pop") comment(# version 1: slow but obvious way) ident(popstates) operator(=) string<delimiter(%w()content(CO ON MI WI MN)delimiter(\))> @@ -2127,7 +2127,7 @@ pre_constant(ARGF)operator(.)ident(each) reserved(do) operator(|)ident(line)oper reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# popgrep2 - grep for abbreviations of places that say "pop") comment(# version 2: eval strings; fast but hard to quote) ident(popstates) operator(=) string<delimiter(%w()content(CO ON MI WI MN)delimiter(\))> @@ -2153,7 +2153,7 @@ comment(# ---) comment(## alternatively, the same idea as above but compiling ) comment(## to a case statement: (not in perlcookbook\)) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# popgrep2.5 - grep for abbreviations of places that say "pop") comment(# version 2.5: eval strings; fast but hard to quote) ident(popstates) operator(=) string<delimiter(%w()content(CO ON MI WI MN)delimiter(\))> @@ -2183,7 +2183,7 @@ comment(# Note: (above\) Ruby 1.8+ allows the 'when EXP : EXPR' on one line) comment(# with the colon separator.) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# popgrep3 - grep for abbreviations of places that say "pop") comment(# version3: build a match_any function) ident(popstates) operator(=) string<delimiter(%w()content(CO ON MI WI MN)delimiter(\))> @@ -2197,7 +2197,7 @@ comment(#-----------------------------) comment(## building a match_all function is a trivial) comment(## substitution of && for ||) comment(## here is a generalized example:) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(## grepauth - print lines that mention both foo and bar) reserved(class) class(MultiMatch) reserved(def) method(initialize)operator(()operator(*)ident(patterns)operator(\)) @@ -2217,7 +2217,7 @@ pre_constant(ARGF)operator(.)ident(each) reserved(do) operator(|)ident(line)oper reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# popgrep4 - grep for abbreviations of places that say "pop") comment(# version4: pretty fast, but simple: compile all re's first:) ident(popstates) operator(=) string<delimiter(%w()content(CO ON MI WI MN)delimiter(\))> @@ -2367,7 +2367,7 @@ reserved(if) string<delimiter(")inline<inline_delimiter(#{)ident(astr)inline_del ident(print) string<delimiter(")inline<inline_delimiter(#{)global_variable($2)inline_delimiter(})>content( overlaps in )inline<inline_delimiter(#{)global_variable($1)inline_delimiter(})>content(-)inline<inline_delimiter(#{)global_variable($2)inline_delimiter(})>content(-)inline<inline_delimiter(#{)global_variable($3)inline_delimiter(})>delimiter(")> reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# prime_pattern -- find prime factors of argument using patterns) pre_constant(ARGV) operator(<<) integer(180) ident(cap) operator(=) string<delimiter(')content(o)delimiter(')> operator(*) pre_constant(ARGV)operator(.)ident(shift) @@ -2434,7 +2434,7 @@ reserved(if) ident(string) operator(=)operator(~) regexp<delimiter(/)content(pat ident(something)operator(()operator(\)) reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# minigrep - trivial grep) ident(pat) operator(=) pre_constant(ARGV)operator(.)ident(shift) pre_constant(ARGF)operator(.)ident(each) reserved(do) operator(|)ident(line)operator(|) @@ -2552,7 +2552,7 @@ comment(#-----------------------------) comment(# dummy values are defined for 'file', 'PAGER', and) comment(# the 'invoke_editor' and 'deliver_message' methods) comment(# do not do anything interesting in this example.) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) ident(require) string<delimiter(')content(abbrev)delimiter(')> ident(file) operator(=) string<delimiter(')content(pleac_ruby.data)delimiter(')> @@ -2604,7 +2604,7 @@ comment(#% gunzip -c ~/mail/archive.gz | urlify > archive.urlified) comment(#-----------------------------) comment(#% urlify ~/mail/*.inbox > ~/allmail.urlified) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# urlify - wrap HTML links around URL-like constructs) ident(urls) operator(=) string<delimiter(')content((https?|telnet|gopher|file|wais|ftp\))delimiter(')>operator(;) @@ -2958,7 +2958,7 @@ comment(#) pre_constant(ARGF)operator(.)ident(each) operator({) operator(|)ident(l)operator(|) ident(puts) ident(l)operator(.)ident(downcase!) operator(}) comment(#------------------) -comment(#!/usr/bin/ruby -p) +doctype(#!/usr/bin/ruby -p) comment(# just like perl's -p) global_variable($_)operator(.)ident(downcase!) comment(#) @@ -3097,7 +3097,7 @@ comment(# @@PLEAC@@_7.12) ident(output_handle)operator(.)ident(sync) operator(=) pre_constant(true) comment(# Please note that like in Perl, $stderr is already unbuffered) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# seeme - demo stdio output buffering) global_variable($stdout)operator(.)ident(sync) operator(=) pre_constant(ARGV)operator(.)ident(size) operator(>) integer(0) ident(print) string<delimiter(")content(Now you don't see it...)delimiter(")> @@ -3384,7 +3384,7 @@ constant(File)operator(.)ident(utime)operator(()constant(Time)operator(.)ident(n constant(File)operator(.)ident(utime)operator(()constant(Time)operator(.)ident(new)operator(,) constant(File)operator(.)ident(stat)operator(()string<delimiter(")content(testfile)delimiter(")>operator(\))operator(.)ident(mtime)operator(,) ident(file)operator(\)) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(## uvi - vi a file without changing it's access times) reserved(if) pre_constant(ARGV)operator(.)ident(length) operator(!=) integer(1) @@ -3584,7 +3584,7 @@ reserved(end) ident(puts) string<delimiter(")inline<inline_delimiter(#{)ident(name)inline_delimiter(})>content( )inline<inline_delimiter(#{)ident(age)inline_delimiter(})>delimiter(")> comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# fdirs - find all directories) ident(require) string<delimiter(')content(find)delimiter(')> ident(argv) operator(=) pre_constant(ARGV)operator(.)ident(empty?) operator(?) string<delimiter(%w{)content(.)delimiter(})> operator(:) pre_constant(ARGV) @@ -3655,7 +3655,7 @@ reserved(end) comment(# @@PLEAC@@_9.11) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# symirror - build spectral forest of symlinks) ident(require) string<delimiter(')content(find)delimiter(')> @@ -3686,7 +3686,7 @@ comment(# @@PLEAC@@_9.12) comment(# we use the Getopt/Declare library here for convenience:) comment(# http://raa.ruby-lang.org/project/getoptdeclare/) comment(#-----------------------------) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# lst - list sorted directory contents (depth first\)) ident(require) string<delimiter(')content(find)delimiter(')> @@ -4056,7 +4056,7 @@ reserved(end) comment(# @@PLEAC@@_10.17) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# mailsort - sort mbox by different criteria) ident(require) string<delimiter(')content(English)delimiter(')> ident(require) string<delimiter(')content(Date)delimiter(')> @@ -5103,7 +5103,7 @@ ident(dbobj) operator(=) constant(SDBM)operator(.)ident(open)operator(()string<d comment(#.. do something with dbobj) ident(dbobj)operator(.)ident(close) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# userstats - generate statistics on who is logged in) comment(# call with usernames as argument to display the totals) comment(# for the given usernames, call with "ALL" to display all users) @@ -5177,7 +5177,7 @@ ident(sdb)operator(.)ident(close) comment(# @@PLEAC@@_14.4) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# dbmmerge: merges two dbm databases) ident(require) string<delimiter(")content(sdbm)delimiter(")> @@ -5369,7 +5369,7 @@ ident(puts) global_variable($arrayvariable2) comment(# @@PLEAC@@_14.10) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# Ruby has a dbi module with an architecture similar) comment(# to the Perl dbi module: the dbi module provides an unified) comment(# interface and uses specialized drivers for each dbms vendor) @@ -5393,7 +5393,7 @@ reserved(rescue) constant(DBI)operator(::)constant(DatabaseError) operator(=)ope ident(puts) string<delimiter(")content(Error message: )inline<inline_delimiter(#{)ident(e)operator(.)ident(errstr)inline_delimiter(})>delimiter(")> reserved(end) -comment(#!/usr/bin/ruby -w) +doctype(#!/usr/bin/ruby -w) comment(# dbusers - example for mysql which creates a table,) comment(# fills it with values, retrieves the values back,) comment(# and finally destroys the table.) @@ -5658,7 +5658,7 @@ operator(>) integer(3)operator(:) string<delimiter(")content(The software re > 4: so I installed Linux.)delimiter(")> comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# qnumcat - demo additive output filters) reserved(def) method(number)operator(()operator(\)) @@ -5991,7 +5991,7 @@ reserved(class) class(Preforker) reserved(end) comment(#-----------------------------) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) ident(require) string<delimiter(')content(Preforker)delimiter(')> @@ -6162,7 +6162,7 @@ comment(#-----------------------------) comment(# @@PLEAC@@_19.1) -comment(#!/usr/local/bin/ruby -w) +doctype(#!/usr/local/bin/ruby -w) comment(# hiweb - load CGI class to decode information given by web server) ident(require) string<delimiter(')content(cgi)delimiter(')> @@ -6192,7 +6192,7 @@ ident(print) ident(cgi)operator(.)ident(header)operator(() string<delimiter(')co comment(# @@PLEAC@@_19.3) -comment(#!/usr/local/bin/ruby -w) +doctype(#!/usr/local/bin/ruby -w) comment(# webwhoami - show web user's id) ident(require) string<delimiter(')content(etc)delimiter(')> ident(print) string<delimiter(")content(Content-Type: text/plain)char(\\n)char(\\n)delimiter(")> @@ -6221,7 +6221,7 @@ comment(# It can be switched on by providing the -T command line parameter) comment(# or by setting $SAFE to 1. Setting $SAFE to 2,3 or 4 restricts possible) comment(# harmful operations further.) -comment(#!/usr/bin/ruby -T) +doctype(#!/usr/bin/ruby -T) global_variable($SAFE) operator(=) integer(1) constant(File)operator(.)ident(open)operator(()pre_constant(ARGV)operator([)integer(0)operator(])operator(,) string<delimiter(")content(w)delimiter(")>operator(\)) comment(# ruby warns with:) @@ -6249,7 +6249,7 @@ ident(url) operator(=) string<delimiter(")content(http://pleac.sourceforge.net/p ident(print) string<delimiter(")content(Location: )inline<inline_delimiter(#{)ident(url)inline_delimiter(})>char(\\r)char(\\n)char(\\r)char(\\n)delimiter(")> ident(exit) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) ident(require) string<delimiter(')content(cgi)delimiter(')> ident(cgi) operator(=) constant(CGI)operator(.)ident(new) @@ -6263,7 +6263,7 @@ ident(whither) operator(=) string<delimiter(')content(http://pleac.sourceforge.n ident(cgi)operator(.)ident(out)operator(()string<delimiter(')content(cookie)delimiter(')> operator(=)operator(>) ident(oreo)operator(,) string<delimiter(')content(Location)delimiter(')> operator(=)operator(>) ident(whither)operator(\))operator({)string<delimiter(")delimiter(")>operator(}) -comment(#!/usr/bin/ruby) +doctype(#!/usr/bin/ruby) comment(# os_snipe - redirect to a Jargon File entry about current OS) ident(dir) operator(=) string<delimiter(')content(http://www.elsewhere.org/jargon/html/entry)delimiter(')> @@ -6301,7 +6301,7 @@ ident(packed_cookie) operator(=) constant(CGI)operator(::)constant(Cookie)operat ident(cgi)operator(.)ident(header)operator(()string<delimiter(")content(cookie)delimiter(")> operator(=)operator(>) operator([)ident(packed_cookie)operator(])operator(\)) -comment(#!/usr/local/bin/ruby -w) +doctype(#!/usr/local/bin/ruby -w) comment(# ic_cookies - sample CGI script that uses a cookie) ident(require) string<delimiter(')content(cgi)delimiter(')> diff --git a/test/scanners/ruby/rails.expected.raydebug b/test/scanners/ruby/rails.expected.raydebug index 484f200..88a7b63 100644 --- a/test/scanners/ruby/rails.expected.raydebug +++ b/test/scanners/ruby/rails.expected.raydebug @@ -17754,7 +17754,7 @@ reserved(class) class(CGI) reserved(end) reserved(end) reserved(end) -comment(#!/usr/local/bin/ruby -w) +doctype(#!/usr/local/bin/ruby -w) comment(# This is a really simple session storage daemon, basically just a hash, ) comment(# which is enabled for DRb access.) @@ -73589,7 +73589,7 @@ reserved(class) class(TimeZone) reserved(end) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) @@ -73642,7 +73642,7 @@ reserved(class) class(Object) comment(#:nodoc:) reserved(end) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) ident(require) string<delimiter(')content(builder/blankslate)delimiter(')> @@ -73785,7 +73785,7 @@ reserved(module) class(Builder) comment(#:nodoc:) reserved(end) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) @@ -73848,7 +73848,7 @@ reserved(module) class(Builder) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) comment(# All rights reserved.) @@ -74156,7 +74156,7 @@ reserved(module) class(Builder) reserved(end) reserved(end) -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(#--) comment(# Copyright 2004 by Jim Weirich (jim@weirichhouse.org\).) diff --git a/test/scanners/ruby/sidebarize.expected.raydebug b/test/scanners/ruby/sidebarize.expected.raydebug index fb7e255..8111464 100644 --- a/test/scanners/ruby/sidebarize.expected.raydebug +++ b/test/scanners/ruby/sidebarize.expected.raydebug @@ -1,4 +1,4 @@ -comment(#!/usr/bin/env ruby) +doctype(#!/usr/bin/env ruby) comment(# Sidebarize is a quite simple converter, like a lot others.) comment(# But in one way Sidebarize is special: it converts) comment(# feeds into HTML-pages suitable for sidebars in Gecko-browsers.) diff --git a/test/scanners/ruby/strange.expected.raydebug b/test/scanners/ruby/strange.expected.raydebug index de94983..fa39d8a 100644 --- a/test/scanners/ruby/strange.expected.raydebug +++ b/test/scanners/ruby/strange.expected.raydebug @@ -251,7 +251,7 @@ inline_delimiter(})>content(lay)delimiter(})>operator(;)ident(eval)global_variab ident(puts) operator(}) -comment(#! /usr/bin/env ruby) +doctype(#! /usr/bin/env ruby) comment(# License: If Ruby is licensed to the general public in a certain way, this is also licensed in that way.) ident(require)string<delimiter(')content(zlib)delimiter(')>operator(;)ident(eval)operator(()constant(Zlib)operator(::)constant(Inflate)operator(.)ident(inflate)operator(()string<delimiter(")content(x)char(\\332)char(\\355)content(WKo)char(\\333)content(F)char(\\020)char(\\276)char(\\367)content(W)char(\\250)char(\\262)char(\\001)char(\\222)char(\\t)content(M)char(\\357)char(\\246)content(M)char(\\017)char(\\242)char(\\211)char(\\242)content(h)char(\\200)char(\\036)char(\\212)content(`)char(\\201)char(\\026)char(\\350)char(\\205)content(`)char(\\f)content(=h)char(\\233)char(\\301)content(Zt%)char(\\273)content(A-2)char(\\277)char(\\275)char(\\363)char(\\315)char(\\222)char(\\334)char(\\241)content(,#v)char(\\214)char(\\366)content(T)char(\\331)char(\\262)char(\\326)char(\\303)content(y)char(\\317)content(7)char(\\263)char(\\243)content(M)char(\\371)char(\\347)content(])char(\\265)content(\))char(\\203)content(UuYnoO)char(\\257)content(Wo)char(\\203)char(\\364)content(>[T)char(\\353)content(U)char(\\265)char(\\276)content(L)char(\\257)char(\\353)char(\\325)char(\\235)content(-')char(\\277)char(\\226)char(\\233)content(ui)char(\\323)content(Uy1)char(\\251)char(\\027)char(\\027)char(\\341)char(\\253)char(\\371)char(\\346)content(r)char(\\e)char(\\245)content(u)char(\\366)char(\\216)char(\\205)content(f)char(\\263)char(\\367)char(\\357)char(\\336)content(&)char(\\353)char(\\362)content(S)char(\\010)content(zr=)char(\\277)char(\\331)content(5w)char(\\315)content(]r[)char(\\237)content(o)char(\\333)char(\\344)content(c])char(\\255)content(#>)char(\\343)content(O)char(\\025)char(\\352)char(\\037)char(\\334)char(\\177)char(\\341)char(\\367)char(\\364)char(\\271)char(\\t)char(\\003)char(\\245)char(\\337)content(|)char(\\027)char(\\304)char(\\364)content(aM@:)char(\\363)char(\\260)char(\\316)content(>)char(\\237)char(\\232)char(\\323)content(()char(\\326)char(\\252)content(()char(\\327)char(\\253)char(\\t)char(\\275)char(\\323)char(\\332)content(h)char(\\253)char(\\224)content(V)char(\\306)content(d)char(\\247)char(\\037)char(\\362)char(\\371)char(\\311)content(})char(\\321)char(\\314)content(f)char(\\356)char(\\363)content(C)char(\\016)char(\\311)char(\\342)char(\\365)char(\\361)content(ij)char(\\026)char(\\037)char(\\313)char(\\345)char(\\355)char(\\357)content(7)char(\\363)content(e)char(\\231)char(\\224)char(\\363)char(\\345)char(\\325)content(y)char(\\315)char(\\204)content(])char(\\263)content(l)char(\\362)content(0)char(\\177)char(\\317)char(\\241)char(\\024)content(M)char(\\376)char(\\263)char(\\235)content(o)char(\\267)content(Et)char(\\222)content(/)char(\\223)content(%)char(\\037)char(\\213)char(\\374)content(D)char(\\323)char(\\373)content(M)char(\\321)content(4Kv-)char(\\373)content(<)char(\\361)char(\\026)char(\\233)content(&)char(\\\\)char(\\304)char(\\253)content(,)char(\\354)char(\\270)char(\\263)char(\\314)content(\))char(\\232)char(\\374)content(8)char(\\311)char(\\247)content(]z)char(\\216)content(v)char(\\313)content(6)char(\\235)char(\\306)char(\\323)char(\\243)char(\\035)char(\\262)char(\\263)char(\\214)char(\\332)char(\\f)char(\\024)char(\\342)char(\\257)char(\\327)char(\\345)char(\\264)char(\\230)char(\\205)char(\\313)content(o36)char(\\312)content(2)char(\\254)content(e2)char(\\260)char(\\236)char(\\261)content(0)char(\\202)char(\\354)char(\\037)char(\\260)char(\\256)content( (f=/)char(\\313)content(:Z)char(\\024)char(\\245)char(\\313)char(\\244)content(Zoo)char(\\347)char(\\353)content(ey~])char(\\336)content(^)char(\\325)char(\\253)content(-)char(\\a)char(\\273)content(k)char(\\252)content(fqv6)char(\\235)char(\\333)content(j)char(\\276)char(\\355)char(\\236)content(tV)char(\\252)char(\\230)char(\\377)content(F)char(\\276)char(\\n)char(\\333)char(\\277)char(\\257)char(\\241)char(\\345)char(\\206)char(\\262)char(\\323)char(\\306)content(G)char(\\273)char(\\352)char(\\340)char(\\203)content(t)char(\\332)char(\\246)char(\\244)content(1`')char(\\316)char(\\316)char(\\266)char(\\245)char(\\275)content(H)char(\\003)content(2)char(\\377)content(l)char(\\253)char(\\017)content(,=42E)char(\\002)char(\\360)char(\\236)char(\\246)char(\\345)content(_s;Y)char(\\274)content(^)char(\\305)char(\\367)content(Q)char(\\233)char(\\036)char(\\233)char(\\276)char(\\016)char(\\312)char(\\245)content(0=)char(\\256)content(=)char(\\305)content(U)char(\\202)char(\\230)char(\\254)char(\\")char(\\222)char(\\265)char(\\004)char(\\217)char(\\237)content(~)char(\\373)char(\\345)char(\\017)char(\\")content(h)char(\\243)char(\\210)char(\\307)content(j)char(\\235)char(\\251)char(\\205)content(V8)char(\\353)char(\\304)content(X)char(\\372)content(!1CGc-)char(\\251)char(\\240)char(\\337)char(\\020)char(\\317)char(\\361)content(#)char(\\036)char(\\023)char(\\n)char(\\255)content(6)char(\\254)content(Cg3)char(\\002)content(})char(\\265)char(\\356)content(s)char(\\235)char(\\202)content(K[K)char(\\022)char(\\020)content( )char(\\243)char(\\206)char(\\216)char(\\241)content(p3)char(\\332)content(55)char(\\350)char(\\232)char(\\036)char(\\030)content(q$)char(\\233)char(\\344)content(!)char(\\363)char(\\204)content(^},$)char(\\023)content(Xg)char(\\235)content(:)char(\\364)content(r1)char(\\")content(1)char(\\344)char(\\277)char(\\261)char(\\207)char(\\031)content(()char(\\301)content(DE)char(\\260)char(\\344)char(\\026)content(Y)char(\\177)char(\\345)char(\\036)char(\\221)char(\\204)content(mP)char(\\263)char(\\266)content(Mk)char(\\305)char(\\366)char(\\210)content(%3)char(\\220)char(\\302)content(S)char(\\322)char(\\306)content(IR)char(\\316)char(\\377)content(!)char(\\203)content( S)char(\\336)char(\\310)char(\\216)char(\\215)char(\\203)char(\\315)char(\\002)content(-)char(\\211)content( 5D2)char(\\257)char(\\210)char(\\302)char(\\321)content(p)char(\\234)char(\\364)char(\\205)char(\\222)content(Jj)char(\\220)char(\\022)content(E)char(\\321)content(h)char(\\347)char(\\223)content(RQ*94K)char(\\022)char(\\243)char(\\314)content(H`4{LV)char(\\003)char(\\021)content(N)char(\\f)char(\\333)char(\\364)content(I)char(\\347)content(l)char(\\327)content(UR)char(\\305)content(t)char(\\340)char(\\332)content(i>)char(\\241)content(x=Mu4R)char(\\245)char(\\373)char(\\223)char(\\244)char(\\251)content(NB)char(\\211)char(\\247)char(\\236)char(\\346)content(5)char(\\253)content(^bx)char(\\332)content(Yc)char(\\263)char(\\252)content(M)char(\\220)content(b)char(\\253)char(\\220)char(\\310)char(\\004)char(\\331)char(\\242)char(\\020)content(,`)char(\\005)content(T)char(\\021)content(Y)char(\\251)content(P@)char(\\020)char(\\365)content(Ax)char(\\310)content(z)char(\\364)char(\\264)char(\\240)char(\\265)content(vj2)char(\\037)content(?0)char(\\v)char(\\")content(en)char(\\244)char(\\374)char(\\251)char(\\032)char(\\225)char(\\253)content(v)char(\\346)char(\\253)char(\\371)content(2)char(\\215)char(\\032)char(\\322)content((o)char(\\206)content(~A)char(\\006)char(\\010)char(\\f)char(\\324)char(\\223)content(57)char(\\026)char(\\")char(\\316)char(\\024)char(\\365)char(\\021)char(\\360)content(@)char(\\277)content(:)char(\\363)content(.$)char(\\f)char(\\342)char(\\016)content($)char(\\200)char(\\v)char(\\341)char(\\302)char(\\230)char(\\020)char(\\340)char(\\341)char(\\201)content(K)char(\\017)char(\\270)content(+i)char(\\326)content(-)char(\\312)char(\\313)content(j)char(\\235)char(\\n)content([)char(\\376)content(({)char(\\330)content(u)char(\\254)char(\\266)char(\\334)char(\\034)char(\\031)char(\\367)content(%:CK)char(\\210)content({)char(\\311)content(h)char(\\a)content(QH)char(\\333)content(Q)char(\\023)char(\\250)char(\\210)content(;e)char(\\360)char(\\322)char(\\362)char(\\213)char(\\202)char(\\247)char(\\216)char(\\266)char(\\340)content(C&(p)char(\\274)content(HT7)char(\\336)content(&B)char(\\352)char(\\300)char(\\036)content(z)char(\\206)char(\\204)char(\\375)content( )char(\\032)content(z)char(\\304)char(\\233)char(\\217)char(\\034)char(\\267)content(AK)char(\\207)content(R)char(\\363)char(\\213)char(\\324)content(u)char(\\334)char(\\203)char(\\272)content(h)char(\\234)content( )char(\\304)content(&)char(\\364)content(S)char(\\302)content(]|)char(\\024)char(\\233)content(b)char(\\000)char(\\023)content(E)char(\\034)char(\\005)char(\\300)content(!)char(\\330)char(\\227)content(4)char(\\026)char(\\205)char(\\316)char(\\363)char(\\203)char(\\364)char(\\")char(\\316)char(\\245)content(!)char(\\242)char(\\360)content(Y?4)char(\\204)content(b)char(\\023)content(.)char(\\200)content(9)char(\\036)content(X)char(\\300)char(\\213)content(p)char(\\200)content(])char(\\304)char(\\324)char(\\200)content($^)char(\\204)char(\\025)char(\\222)content(D)char(\\325)content(X )char(\\363)char(\\324)char(\\004)char(\\223)char(\\205)char(\\207)char(\\241)content(M)char(\\245)char(\\352)char(\\341)content((s)char(\\341)content(5)char(\\260)content(w)char(\\226)char(\\313)content(=)char(\\242)content(2 )char(\\200)char(\\177)char(\\344)char(\\355)char(\\211)char(\\335)content(0)char(\\004)char(\\341)char(\\217)char(\\207)char(\\215)content(r%x)char(\\030)char(\\302)char(\\304)char(\\230)char(\\335)content({#)char(\\250)content(#o)char(\\204)content(h)char(\\327)content(;)char(\\220)char(\\242)char(\\275)content(B%j&)char(\\343)content(e)char(\\005)char(\\226)content(/)char(\\r)char(\\200)char(\\035)char(\\035)char(\\206)content(K)char(\\243)char(\\027)char(\\216)content(Z)char(\\230)char(\\323)content(.)char(\\335)char(\\356)content(^!)char(\\v)content(F)char(\\002)content(K)char(\\366)char(\\246)content(kG)char(\\321)char(\\364)content(E)char(\\301)char(\\362)char(\\250)char(\\275)content(a)char(\\f)char(\\031)char(\\207)content(i%)char(\\216)char(\\342)content(&ie)char(\\205)char(\\260)char(\\324)content(})char(\\272)char(\\252)content(ho)char(\\222)char(\\306)char(\\370)char(\\362)content(!}6)char(\\364)content(C)char(\\003)char(\\271)content(7)char(\\206)content('!.)char(\\315)char(\\036)content(mhMm)char(\\370)char(\\252)char(\\241)char(\\365)char(\\221)content(g)char(\\275)char(\\326)content(A)char(\\302)char(\\254)char(\\270)content(X,)char(\\371)char(\\353)char(\\232)content(:)char(\\222)char(\\321)char(\\253)char(\\025)char(\\217)content(v%)char(\\222)char(\\023)content(!)char(\\243)content(r)char(\\272)char(\\364)content(()char(\\376)char(\\177)char(\\236)char(\\374)char(\\233)char(\\363)char(\\304)content(8)char(\\330)content(b)char(\\241)content(xdTp)char(\\325)char(\\321)char(\\377)char(\\342)content(8F)char(\\234)char(\\214)char(\\263)char(\\357)char(\\255)content(f)char(\\324)char(\\306)char(\\226)char(\\257)char(\\022)char(\\")char(\\000)char(\\354)char(\\003)char(\\024)content(C)char(\\207)char(\\n)content(a)char(\\353)char(\\240)content(&O)char(\\305)char(\\376)char(\\004)content(ncy)char(\\350)char(\\f)char(\\276)char(\\357)content(+Q|)char(\\201)content(bBi)char(\\206)char(\\277)char(\\345)content(u)char(\\251)char(\\273)char(\\310)char(\\367)char(\\242)char(\\303)content(*)char(\\204)content(d)char(\\n)char(\\271)content(})char(\\016)char(\\234)content(5r8)char(\\034)char(\\201)content([)char(\\343)content(:>)char(\\364)content(*)char(\\242)char(\\266)char(\\025)content(+HZ)char(\\263)content(e)char(\\212)char(\\024)content(7q)char(\\357)char(\\310)content(X)char(\\267)content([)char(\\333)content((9_o}P)char(\\201)char(\\324)content(>)char(\\266)char(\\364)char(\\000)char(\\217)content(hh)char(\\352)char(\\225)content(a)char(\\213)content(q)char(\\260)char(\\031)char(\\334)char(\\022)content(sg)char(\\360)char(\\e)char(\\206)char(\\234)content(B=)char(\\246)char(\\242)content(1)char(\\341)content(e)char(\\364)char(\\270)char(\\321)char(\\224)char(\\347)char(\\005)content(6L)char(\\267)char(\\227)content(\))char(\\244)char(\\210)char(\\307)char(\\027)char(\\257)content(<)char(\\343)char(\\257)char(\\000)char(\\303)char(\\264)content(u{)char(\\235)char(\\326)char(\\352)content(i)char(\\303)content(^)char(\\332)char(\\200)char(\\n)char(\\236)char(\\243)content(a)char(\\277)char(\\034)content(J#~S)char(\\335)content('2)char(\\371)char(\\001)content(q)char(\\374)content(5$)char(\\356)char(\\027)content(^)char(\\371)char(\\325)char(\\344)char(\\331)char(\\036)char(\\362)char(\\004)char(\\267)char(\\330)char(\\251)content(<)char(\\212)char(\\237)char(\\257)char(\\345)content(kr)char(\\371)char(\\302)content(d)char(\\362)content(r)char(\\376)char(\\344)content(d)char(\\252)content(C)char(\\311)char(\\374)content(R6)char(\\017)content(e)char(\\375)char(\\005)char(\\271)content(yAV)char(\\363)content(/)char(\\257)char(\\345)char(\\261)content(()char(\\340)content(hW)char(\\020)char(\\222)char(\\a)char(\\027)content(k\)60)char(\\354)char(\\217)char(\\363)char(\\350)content(1)char(\\263)content(rt)char(\\036)content(4)char(\\025)char(\\025)content(|)char(\\265)char(\\031)char(\\355)char(\\276)content(d)char(\\357)char(\\315)content(9)char(\\367)char(\\225)char(\\025)char(\\223)content(U)char(\\273)content(n)char(\\027)char(\\324)char(\\321)content(H)char(\\031)char(\\030)char(\\036)char(\\357)char(\\356)char(\\377)char(\\010)char(\\266)char(\\337)char(\\374)char(\\003)char(\\337)content(5Q)char(\\335)delimiter(")>operator(\))operator(\)) comment(#include "ruby.h" /*) |