@@ -57,39 +57,21 @@ K formKfCS(S s) // 0.0 $ "123\000456\000" is 123 ('\0' char)
57
57
R Kf (r ); //oom
58
58
}
59
59
60
- Z S formatBfn (K a ,I * n ){
61
- //XXX: This was copied from printAtDepth in k.c.
62
- I i ,k ,m ; S s ,r = alloc (1 ),rp = r ;
63
- V * v = kW (a ),* p ;
64
- * n = 0 ;
65
- for (i = 0 ;(p = v [i ]);i ++ )
66
- { //TODO: mute extraneous :
67
- I q = (L )p ;
68
- if (q < DT_SIZE && q >= DT_SPECIAL_VERB_OFFSET )
69
- { s = DT [q ].text ;
70
- k = strlen (s );
71
- m = s [k - 1 ]== ':' && 1 == DT [q ].arity ;
72
- U (r = realloc (r ,1 + (* n += k + m )))
73
- memcpy (rp ,s ,k );
74
- rp += k ;
75
- if (m )* rp ++ = ':' ;
76
- }
77
- else if ((k = sva (p ))){m = k != 2 ;U (r = realloc (r ,1 + (* n += 1 + m ))) * rp ++ = verbsChar (p );if (m )* rp ++ = ':' ;}
78
- else if ((k = adverbClass (p ))) {m = k != 1 ;U (r = realloc (r ,1 + (* n += 1 + m ))) * rp ++ = adverbsChar (p );if (m )* rp ++ = ':' ;}
79
- else ; //XXX
80
- }
81
- * rp = 0 ;R r ;
82
- }
83
-
84
- Z K formatFn (K a )
85
- {
60
+ Z K formatFn (K a ){
61
+ V * v = kW (a ),p = v [0 ]; L q = (L )p ; I k ,m ,n ; K z ;
86
62
SW (a -> n ){
87
- CS (1 ,{K k ;I n ;S s = formatBfn (a ,& n );U (s ) k = newK (-3 ,n );memcpy (kC (k ),s ,n + 1 );R k ;})
63
+ CS (1 ,if (q < DT_SIZE && q >= DT_SPECIAL_VERB_OFFSET ) {
64
+ S s = DT [q ].text ; n = strlen (s ); z = newK (-3 ,n );
65
+ memcpy (kC (z ),s ,n + 1 ); R z ; }
66
+ else if (k = sva (p )){
67
+ C t [3 ]; t [1 ]= t [2 ]= '\0' ; t [0 ]= verbsChar (p );
68
+ m = k != 2 ; if (m )t [1 ]= ':' ; n = strlen (t ); z = newK (-3 ,n );
69
+ memcpy (kC (z ),& t ,n + 1 ); R z ; }
70
+ else if (k = adverbClass (p ))R 0 ;
71
+ else R 0 ; )
88
72
CS (2 ,R 0 )
89
73
CS (3 ,{K k ;S f = kC (kV (a )[CODE ]);I n = strlen (f );k = newK (-3 ,n + 2 );kC (k )[0 ]= '{' ;memcpy (kC (k )+ 1 ,f ,n );kC (k )[n + 1 ]= '}' ;kC (k )[n + 2 ]= 0 ;R k ;})
90
- CD :R 0 ;
91
- }
92
- }
74
+ CD :R 0 ; } }
93
75
94
76
Z K formatS (S x )
95
77
{ I n = strlen (x );
0 commit comments