Changeset 1767

Show
Ignore:
Timestamp:
11/19/07 01:56:36 (11 months ago)
Author:
nishio
Message:

lang/unlambda/impl/in_python: remove FinalTask?, FinalCont?

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/unlambda/impl/in_python/unlambda_lambda.py

    r1766 r1767  
    2424import sys 
    2525 
    26 # Main loop 
    27 # 
    28 def run(s): 
    29     task = lambda:parse(s)(FinalCont) 
    30     try: 
    31         while True: 
    32             task = task() 
    33     except StopIteration, e: 
    34         return 
    35  
    36 # Continuation 
    37 FinalCont = lambda f:FinalTask 
    38  
    39 # Task 
    40 # 
    41  
    42 def FinalTask(X=None): 
    43     raise StopIteration() 
    44  
    45 ApplyTask = lambda X,Y,c:lambda:X(Y,c) 
    46  
    4726# Node 
    48 # 
    49 I = lambda: lambda c:c(lambda X,c:c(X)) 
    50 Dot = lambda char: (lambda c: c(lambda X, c: sys.stdout.write(char) or c(X))) 
     27I = lambda:lambda c:c(lambda X,c:c(X)) 
     28Dot = lambda char:lambda c:c( 
     29    lambda X,c:sys.stdout.write(char)or c(X)) 
    5130Apply = lambda nX,nY:lambda c:\ 
    52     lambda:nX(lambda X:\ 
    53         lambda:\ 
     31    lambda:nX(lambda X: 
     32        lambda: 
    5433            (X == D_)and( 
    5534                c(lambda Y,c:nY(lambda X:c(lambda X,c:X(Y,c)))) 
    5635            )or( 
    5736                nY(lambda Y: lambda :X(Y, c)))) 
     37D = lambda:D_ 
    5838D_ = lambda c:c(D_) 
    59 D = lambda :D_ 
    60 C = lambda :lambda c:c(lambda Y,c: lambda :Y(lambda F,c_:c(F),c)) 
    6139V0 = lambda X,c:c(V0) 
    6240V = lambda:lambda c:c(V0) 
    6341K = lambda:lambda c:c(lambda X,c:c(lambda Y,c:c(X))) 
     42C = lambda:lambda c:c(lambda Y,c:lambda:Y(lambda F,c_:c(F),c)) 
    6443S = lambda:lambda c:c( 
    6544        lambda X,c:c( 
     
    7756    return { 
    7857        "i": lambda: I(), 
    79         ".": lambda: Dot(iter.next()), 
    80         "`": lambda: Apply(_parse(iter), _parse(iter)), 
    81         "r": lambda: Dot("\n"), 
    82         "d": lambda: D(), # special form 
     58        "d": lambda: D(), 
    8359        "c": lambda: C(), 
    8460        "v": lambda: V(), 
    8561        "s": lambda: S(), 
    8662        "k": lambda: K(), 
     63        "r": lambda: Dot("\n"), 
     64        ".": lambda: Dot(iter.next()), 
     65        "`": lambda: Apply(_parse(iter), _parse(iter)), 
    8766    }.get(iter.next(), lambda: _parse(iter))() 
    8867 
     
    9069    return _parse(list(s).__iter__()) 
    9170 
     71# Main loop 
     72def run(s): 
     73    task = lambda:parse(s)(lambda f:lambda:None) 
     74    while task: 
     75        task = task() 
     76 
     77# Test 
    9278def _test(): 
    9379    import doctest