1234567891011121314151617181920212223242526 |
- #!/usr/bin/ruby
- # Execute Brain**** code, by first translating it into Sidef code.
- # Translation of:
- # https://rosettacode.org/wiki/Execute_Brain****/Ruby
- var code = ('var(p=0,m=[]);' + ARGF.slurp.gsub(
- /(.)/s, {|c|
- :(
- '>' => 'p++;',
- '<' => 'p--;',
- '+' => '(m[p]:=0)++;',
- '-' => '(m[p]:=0)--;',
- '[' => 'do{',
- ']' => '}while((m[p]&=255)!=0);',
- '.' => '(m[p]&=255).chr.print;',
- ',' => 'STDIN.eof||(m[p]=STDIN.getc.ord)'
- ){c} || ''
- }
- ))
- say code
- say '__END__'
- eval code
|