GRAYBYTE WORDPRESS FILE MANAGER1166

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /lib64/python2.7/Demo/threads/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /lib64/python2.7/Demo/threads//squasher.py
# Coroutine example:  general coroutine transfers
#
# The program is a variation of a Simula 67 program due to Dahl & Hoare,
# (Dahl/Dijkstra/Hoare, Structured Programming; Academic Press, 1972)
# who in turn credit the original example to Conway.
#
# We have a number of input lines, terminated by a 0 byte.  The problem
# is to squash them together into output lines containing 72 characters
# each.  A semicolon must be added between input lines.  Runs of blanks
# and tabs in input lines must be squashed into single blanks.
# Occurrences of "**" in input lines must be replaced by "^".
#
# Here's a test case:

test = """\
   d    =   sqrt(b**2  -  4*a*c)
twoa    =   2*a
   L    =   -b/twoa
   R    =   d/twoa
  A1    =   L + R
  A2    =   L - R\0
"""

# The program should print:

# d = sqrt(b^2 - 4*a*c);twoa = 2*a; L = -b/twoa; R = d/twoa; A1 = L + R;
#A2 = L - R
#done

# getline: delivers the next input line to its invoker
# disassembler: grabs input lines from getline, and delivers them one
#    character at a time to squasher, also inserting a semicolon into
#    the stream between lines
# squasher:  grabs characters from disassembler and passes them on to
#    assembler, first replacing "**" with "^" and squashing runs of
#    whitespace
# assembler: grabs characters from squasher and packs them into lines
#    with 72 character each, delivering each such line to putline;
#    when it sees a null byte, passes the last line to putline and
#    then kills all the coroutines
# putline: grabs lines from assembler, and just prints them

from Coroutine import *

def getline(text):
    for line in string.splitfields(text, '\n'):
        co.tran(codisassembler, line)

def disassembler():
    while 1:
        card = co.tran(cogetline)
        for i in range(len(card)):
            co.tran(cosquasher, card[i])
        co.tran(cosquasher, ';')

def squasher():
    while 1:
        ch = co.tran(codisassembler)
        if ch == '*':
            ch2 = co.tran(codisassembler)
            if ch2 == '*':
                ch = '^'
            else:
                co.tran(coassembler, ch)
                ch = ch2
        if ch in ' \t':
            while 1:
                ch2 = co.tran(codisassembler)
                if ch2 not in ' \t':
                    break
            co.tran(coassembler, ' ')
            ch = ch2
        co.tran(coassembler, ch)

def assembler():
    line = ''
    while 1:
        ch = co.tran(cosquasher)
        if ch == '\0':
            break
        if len(line) == 72:
            co.tran(coputline, line)
            line = ''
        line = line + ch
    line = line + ' ' * (72 - len(line))
    co.tran(coputline, line)
    co.kill()

def putline():
    while 1:
        line = co.tran(coassembler)
        print line

import string
co = Coroutine()
cogetline = co.create(getline, test)
coputline = co.create(putline)
coassembler = co.create(assembler)
codisassembler = co.create(disassembler)
cosquasher = co.create(squasher)

co.tran(coputline)
print 'done'

# end of example

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 15 2024 08:34:37
root / root
0755
Coroutine.py
5.395 KB
April 19 2020 21:13:39
root / root
0644
Coroutine.pyc
4.147 KB
April 10 2024 04:58:47
root / root
0644
Coroutine.pyo
4.147 KB
April 10 2024 04:58:47
root / root
0644
Generator.py
2.477 KB
April 19 2020 21:13:39
root / root
0644
Generator.pyc
3.241 KB
April 10 2024 04:58:47
root / root
0644
Generator.pyo
3.241 KB
April 10 2024 04:58:47
root / root
0644
README
0.43 KB
April 19 2020 21:13:39
root / root
0644
fcmp.py
1.71 KB
April 19 2020 21:13:39
root / root
0644
fcmp.pyc
1.653 KB
April 10 2024 04:58:47
root / root
0644
fcmp.pyo
1.653 KB
April 10 2024 04:58:47
root / root
0644
find.py
4.116 KB
April 19 2020 21:13:39
root / root
0644
find.pyc
3.782 KB
April 10 2024 04:58:47
root / root
0644
find.pyo
3.782 KB
April 10 2024 04:58:47
root / root
0644
squasher.py
2.967 KB
April 19 2020 21:13:39
root / root
0644
squasher.pyc
2.063 KB
April 10 2024 04:58:47
root / root
0644
squasher.pyo
2.063 KB
April 10 2024 04:58:47
root / root
0644
sync.py
21.147 KB
April 19 2020 21:13:39
root / root
0644
sync.pyc
10.854 KB
April 10 2024 04:58:47
root / root
0644
sync.pyo
10.854 KB
April 10 2024 04:58:47
root / root
0644
telnet.py
3.005 KB
April 19 2020 21:13:39
root / root
0644
telnet.pyc
2.472 KB
April 10 2024 04:58:47
root / root
0644
telnet.pyo
2.472 KB
April 10 2024 04:58:47
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF