Skip to content
This repository has been archived by the owner on Oct 11, 2020. It is now read-only.

Hello World fails #1

Open
rdebath opened this issue Nov 26, 2018 · 0 comments
Open

Hello World fails #1

rdebath opened this issue Nov 26, 2018 · 0 comments

Comments

@rdebath
Copy link

rdebath commented Nov 26, 2018

I think this program should print "Hello World!" but your interpreter is not interpreting loops as while loops.

aaag gagu gaga gagu gugu uuug gagu guga gaga aaag gagu gaga aaag aaag
aaag gaga gagu aaag aaag aaag aaag aaag aaag aaag aaag aaag aaag aaag
gaga guga gagu gaga guga uuug gagu gugu guga gaga uuug guga guga aaag
aaag aaag aaag aaag aaag aaag aaag aaag aaag gugu guga gaga gaga gaga
gaga gaga gaga uuug uuug uuug uuug guuu gugu gugu aaag aaag aaag guuu
gugu uuug guuu guuu aaag aaag aaag guuu gugu uuug guuu gaga gaga gaga
guuu gugu gugu guuu aaag aaag aaag guuu uuug uuug uuug uuug uuug uuug
guuu gaga uuug guuu gugu gugu aaag guuu gugu guuu

This is a direct translation "interpreter".

#!/usr/bin/ruby
eval 'm=Hash.new(p=0);'+ARGF.read.downcase.gsub(
        /[a-z][a-z0-9]*|./,
        'gaga' => 'p+=1;',
        'gugu' => 'p-=1;',
        'aaag' => 'm[p]+=1;',
        'uuug' => 'm[p]-=1;',
        'unga' => 'm[p]=0;',
        'guuu' => 'putc m[p];',
        'gaaa' => 'm[p]=STDIN.getbyte if !STDIN.eof;',
        'gagu' => '(',
        'guga' => ')while((m[p]&=255)!=0);')
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant