コード例 #1
0
ファイル: test_1.py プロジェクト: JohnnyDankseed/pybrainfuck
def test_run(main=False):

    fout = StringIO()
    bfck = BrainFck(fout=fout,
                    linemode=True,
                    multiline=True,
                    comments=True,
                    breakline=True)

    bfck.run(test_program)

    if main:
        print(fout.getvalue())
        print('len fout:', len(fout.getvalue()))
        print('len output:', len(test_output))

    assert fout.getvalue() == test_output
コード例 #2
0
ファイル: bf.py プロジェクト: k-freeman/IRCbot
class bf(object):
        
    def __init__(self):
        self.queue_in=Queue()
        self.queue_out=Queue()
        thread.start_new_thread(self.run,())
        self.resttime=0
        self.lastcmd=0
        self.fo=StringIO()
        self.bfck = BrainFck(fout=self.fo)
    
    def run(self):
        while 1:
            recv=self.queue_in.get()
            try:
                _, msg_header, msg_payload = recv.split(":",2)
                identification, msg_type, msg_receiver = msg_header.strip(" ").split(" ")
                sender=identification.split("!")
                
                if msg_payload[0]=="!" and msg_payload[1:3]=="bf" and msg_receiver[0]=="#":
                    inbf=io.BytesIO(msg_payload.split(" ",1)[1])
                    #signal.alarm(2)   #
                    try:
                        print "start"
                        self.bfck.run(inbf)
                        for i,c in enumerate(self.fo.buflist):
                            if not curses.ascii.isprint(c):
                                self.fo.buflist[i]=""
                        outbf="".join(self.fo.buflist).strip("\n\r")
                        self.fo.read()
                    except Exception:
                        outbf="Timed out!"
                    

                    self.queue_out.put("PRIVMSG "+ msg_receiver +" :"+outbf+"\n")
                
            except IndexError:
                pass
            except ValueError: # no normal channel/private message
                pass

    def cmd(self,msg):
        self.queue_in.put(msg)
コード例 #3
0
ファイル: brainfuck.py プロジェクト: k-freeman/IRCbot
from StringIO import StringIO
import sys,io

from pybrainfuck import BrainFck

a=io.BytesIO("++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.+++.")

fo=StringIO()
bfck = BrainFck(fout=fo)
bfck.run(a)
out="".join(fo.buflist).strip("\n\r")