[BACK]Return to printSVector.modified.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / lib

Annotation of OpenXM/src/k097/lib/printSVector.modified.sm1, Revision 1.1

1.1     ! maekawa     1: %%% supporting code for printSVector.
        !             2: /greaterThanOrEqual {
        !             3:   /arg2 set /arg1 set
        !             4:   arg1 arg2 gt { 1 }
        !             5:   { arg1 arg2 eq {1} {0} ifelse} ifelse
        !             6: } def
        !             7:
        !             8: /lengthUniv {
        !             9:  length (universalNumber) dc
        !            10: } def
        !            11:
        !            12: /getUniv {
        !            13:  (integer) dc get
        !            14: } def  %% Do not forget to thow away /.
        !            15:
        !            16: [(printSVector)
        !            17:  [( vector printSVector   outputs the <<vector>> in a pretty way.)
        !            18:   ( The elements of the vector must be strings.)
        !            19:  ]
        !            20: ] putUsages
        !            21:
        !            22: %%% compiled code by d0, 1996, 8/17.
        !            23: /printSVector {
        !            24:  /arg1 set
        !            25: [ %%start of local variables
        !            26: /keys /i /j /n /max /width /m /k /kk /tmp0 ] pushVariables [ %%local variables
        !            27: /keys arg1 def
        !            28: /n
        !            29: keys lengthUniv
        !            30:  def
        !            31: /max (0)..  def
        !            32: /i (0)..  def
        !            33: %%for init.
        !            34: %%for
        !            35: { i n  lt
        !            36:  {  } {exit} ifelse
        !            37: [ {%%increment
        !            38: /i  i (1).. add def
        !            39: } %%end of increment{A}
        !            40: {%%start of B part{B}
        !            41: keys i  getUniv lengthUniv
        !            42: max  gt
        !            43:  %% if-condition
        !            44:   { %%ifbody
        !            45: /max
        !            46: keys i   getUniv lengthUniv
        !            47:  def
        !            48:   }%%end if if body
        !            49:   { %%if- else part
        !            50:   } ifelse
        !            51: } %% end of B part. {B}
        !            52:  2 1 roll] {exec} map
        !            53: } loop %%end of for
        !            54: /max max (3)..  add
        !            55:  def
        !            56: /width (80)..  def
        !            57: /m (0)..  def
        !            58:
        !            59: %%while
        !            60: { m max  mul
        !            61: (80)..  lt
        !            62:  { } {exit} ifelse
        !            63:  /m m (1)..  add
        !            64:  def
        !            65: } loop
        !            66: /k (0)..  def
        !            67: /kk (0)..  def
        !            68: /i (0)..  def
        !            69: %%for init.
        !            70: %%for
        !            71: { i n  lt
        !            72:  {  } {exit} ifelse
        !            73: [ {%%increment
        !            74: /i  i (1).. add def
        !            75: } %%end of increment{A}
        !            76: {%%start of B part{B}
        !            77: keys i getUniv messagen
        !            78: /kk kk (1)..  add
        !            79:  def
        !            80: /k k
        !            81: keys i getUniv lengthUniv
        !            82:  add
        !            83:  def
        !            84: /tmp0 max
        !            85: keys i  getUniv lengthUniv
        !            86:  sub
        !            87:  def
        !            88: /j (0)..  def
        !            89: %%for init.
        !            90: %%for
        !            91: { j tmp0  lt
        !            92:  {  } {exit} ifelse
        !            93: [ {%%increment
        !            94: /j  j (1).. add def
        !            95: } %%end of increment{A}
        !            96: {%%start of B part{B}
        !            97: /k k (1)..  add
        !            98:  def
        !            99: kk m  lt
        !           100:  %% if-condition
        !           101:   { %%ifbody
        !           102: ( ) messagen
        !           103:   }%%end if if body
        !           104:   { %%if- else part
        !           105:   } ifelse
        !           106: } %% end of B part. {B}
        !           107:  2 1 roll] {exec} map
        !           108: } loop %%end of for
        !           109: kk m  greaterThanOrEqual
        !           110:  %% if-condition
        !           111:   { %%ifbody
        !           112: /kk (0)..  def
        !           113: /k (0)..  def
        !           114: newline
        !           115:   }%%end if if body
        !           116:   { %%if- else part
        !           117:   } ifelse
        !           118: } %% end of B part. {B}
        !           119:  2 1 roll] {exec} map
        !           120: } loop %%end of for
        !           121: newline
        !           122: /ExitPoint ]pop popVariables %%pop the local variables
        !           123: } def
        !           124: %%end of function
        !           125:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>