#! /bin/sed -f

# This is an alternative approach to summing numbers,
# which works a digit at a time and hence has unlimited
# precision.  This time it is done with lookup tables,
# and uses only 10 commands.

G  
s/\n/-/
s/$/-/
s/$/;9aaaaaaaaa98aaaaaaaa87aaaaaaa76aaaaaa65aaaaa54aaaa43aaa32aa21a100/

:loop
/^--[^a]/ !{
    # Convert next digit from both terms into analog form
    # and put the two groups next to each other
    s/^\([0-9a]*\)\([0-9]\)-\([^-]*\)-\(.*;.*\2\(a*\)\2.*\)/\1-\3-\5\4/
    s/^\([^-]*\)-\([0-9a]*\)\([0-9]\)-\(.*;.*\3\(a*\)\3.*\)/\1-\2-\5\4/

    # Back to decimal, but keeping the carry in analog form
    # \2 matches an `a' if there are at least ten a's, else nothing
    #
    #    1-------------      3-    4----------------------
    #               2                          5----
    s/-\(aaaaaaaaa\(a\)\)\?\(a*\)\([0-9b]*;.*\([0-9]\)\3\5\)/-\2\5\4/
    b loop
}  
s/^--\([^;]*\);.*/\1/
h  

### colorized by sedsed, a debugger and code formatter for sed scripts
### original script: http://sed.sf.net/grabbag/scripts/add_decs.sed