Rev 5766 | Rev 11210 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
32 | reyssat | 1 | !! +exec+ +var+ +string+ |
2 | $lst_tit text $lst_titend$type_both |
||
5921 | bpr | 3 | $(lst_syntax)text $emph operation $emphend $emph parameter $emphend</span> |
32 | reyssat | 4 | $lst_mean This is intended to be a very powerful text manipulation tool, |
5766 | bpr | 5 | allowing very sophisticated processing of long text strings with high speed. <br/> |
32 | reyssat | 6 | Many of the $emph operations$emphend accept masks. A mask is a string |
7 | composed of '0's and '1's. For operations |
||
8 | which accept a mask, only characters at positions whose corresponding |
||
9 | character in the mask is not a '0' are processed. (In this sense positions |
||
10 | corresponding to '0's are $emph masked$emphend.) Empty mask is considered |
||
5766 | bpr | 11 | as of being entirely composed of '1's. <br/> |
32 | reyssat | 12 | A mask which is too short repeats itself, unless it terminates with a '+', |
13 | in which case it fills the rest with '1's, or with a '-', in which case |
||
5766 | bpr | 14 | it fills the rest with '0's. <br/> |
32 | reyssat | 15 | For the time being, implemented $emph operations $emphend are as follows. |
16 | <ul> |
||
5921 | bpr | 17 | <li><span class="tt">!text common $emph text1$emphend and $emph text2$emphend |
18 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 19 | Extracts characters in $emph text1$emphend one by one, for those identical |
20 | to the corresponding characters in $emph text2$emphend and whose |
||
21 | positions are not masked by $emph maskstring$emphend. |
||
5921 | bpr | 22 | <li><span class="tt">!text compare $emph text1$emphend and $emph text2$emphend |
23 | </span> <br/> |
||
32 | reyssat | 24 | Compares the strings $emph text1 $emphend and $emph text2 |
25 | $emphend character by character, and returns a mask string with '0's on |
||
26 | positions where the corresponding characters in $emph text1 $emphend |
||
27 | and $emph text2$emphend are equal, and '1's otherwise. |
||
5921 | bpr | 28 | <li><span class="tt">!text copy $emph text$emphend |
29 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 30 | Returns non-masked characters in $emph text$emphend. |
5921 | bpr | 31 | <li><span class="tt">!text count $emph charlist$emphend in $emph text$emphend |
32 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 33 | Returns the number of characters in $emph text$emphend whose positions |
34 | are not masked by $emph maskstring$emphend, and who appear in $emph |
||
35 | charlist$emphend. |
||
5921 | bpr | 36 | <li><span class="tt">!text diff $emph text1$emphend from $emph text2$emphend |
37 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 38 | Extracts characters in $emph text1$emphend one by one, for those different |
39 | to the corresponding characters in $emph text2$emphend and whose |
||
5766 | bpr | 40 | positions are not masked by $emph maskstring$emphend. <br/> |
32 | reyssat | 41 | (Synonyme of diff: differ). |
5921 | bpr | 42 | <li><span class="tt">!text expand $emph text$emphend using $emph maskstring$emphend |
43 | </span> <br/> |
||
32 | reyssat | 44 | Produces a string, where positions corresponding to '0's in |
45 | $emph maskstring$emphend are filled by ' ' (the space character), |
||
46 | and where positions corresponding to '1's in $emph maskstring |
||
47 | $emphend are filled by characters of $emph text$emphend. The |
||
48 | characters in $emph text$emphend are used one by one, and the |
||
49 | resulting string stops when all the characters in $emph text |
||
50 | $emphend are exhausted (or when the string reaches the length limit). |
||
5921 | bpr | 51 | <li><span class="tt">!text insert $emph text1$emphend into $emph text2$emphend |
52 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 53 | Returns $emph text2$emphend with non-masked characters replaced by |
54 | characters $emph text1$emphend. Characters in $emph text1 $emphend |
||
55 | are used one by one (without taking into account the masking), and |
||
56 | the replacement stops when there is no character left in |
||
57 | $emph text1$emphend. |
||
5921 | bpr | 58 | <li><span class="tt">!text interact $emph text1$emphend and $emph text2$emphend |
59 | table $emph itab$emphend [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 60 | Returns a new text which is result of interactions of characters |
61 | in corresponding positions in $emph text1$emphend and |
||
62 | $emph text2$emphend. The rule of the interaction is defined in |
||
5766 | bpr | 63 | $emph itab$emphend. <br/> |
32 | reyssat | 64 | $emph itab$emphend contains n+1 lines, each of n characters. |
65 | The first line defines the characters corresponding to each position |
||
66 | in the following n lines which defines the multiplication table. |
||
5766 | bpr | 67 | <br/> |
32 | reyssat | 68 | The multiplication table needs not to be symmetric. In this case, the |
69 | rows correspond to characters in $emph text1$emphend, and the columns |
||
70 | correspond to characters in $emph text2$emphend. |
||
5766 | bpr | 71 | <br/> |
32 | reyssat | 72 | If $emph text1$emphend or $emph text2$emphend contains a character |
73 | not in the first line of $emph itab$emphend, the interaction at |
||
74 | the corresponding position is considered as empty. Also, masked |
||
75 | positions are ignored. |
||
5766 | bpr | 76 | <br/> |
32 | reyssat | 77 | If $emph text1$emphend and $emph text2$emphend have different |
78 | lengths, the longer is cut to fit the shorter. |
||
5921 | bpr | 79 | <li><span class="tt">!text mark $emph charlist$emphend in $emph text$emphend |
80 | </span> <br/> |
||
32 | reyssat | 81 | Returns a mask string with '1's on positions where the |
82 | corresponding character in $emph text$emphend appears in |
||
83 | $emph charlist$emphend, and with '0's on other positions. |
||
5921 | bpr | 84 | <li><span class="tt">!text max $emph text1$emphend and $emph text2$emphend |
85 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 86 | Returns a string which at each position is the character with highest |
87 | ASCII code between corresponding characters in $emph text1$emphend |
||
88 | and $emph text2$emphend. The length of the result is that of the |
||
89 | longest of the two. Masked positions are skipped. |
||
5921 | bpr | 90 | <li><span class="tt">!text min $emph text1$emphend and $emph text2$emphend |
91 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 92 | Returns a string which at each position is the character with lowest |
93 | ASCII code between corresponding characters in $emph text1$emphend |
||
94 | and $emph text2$emphend. The length of the result is that of the |
||
95 | shortest of the two. Masked positions are skipped. |
||
5921 | bpr | 96 | <li><span class="tt">!text occur $emph charlist$emphend in $emph text$emphend |
97 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 98 | Returns characters in $emph charlist$emphend which occur in |
5766 | bpr | 99 | unmasked positions in $emph text$emphend. <br/> |
32 | reyssat | 100 | (Synonymes of occur: appear, occurrence). |
5921 | bpr | 101 | <li><span class="tt">!text remove $emph charlist$emphend in $emph text$emphend |
102 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 103 | Returns $emph text$emphend in which masked characters and characters |
5766 | bpr | 104 | appearing in $emph charlist$emphend are removed. <br/> |
32 | reyssat | 105 | (Synonymes of remove: drop, delete). |
5921 | bpr | 106 | <li><span class="tt">!text reorder $emph text$emphend by $emph orderlist$emphend |
107 | </span> <br/> |
||
32 | reyssat | 108 | Returns a reordered $emph text$emphend using the order list |
109 | $emph orderlist$emphend. Reordering is cyclic if $emph orderlist$emphend |
||
5766 | bpr | 110 | is shorter than $emph text$emphend. <br/> |
32 | reyssat | 111 | $emph orderlist$emphend must be a list of n positive integers, which |
112 | is a permutation of the set {1,...,n}. If $emph orderlist$emphend contains |
||
113 | items other than integers within the bound, empty string is returned. |
||
114 | However, unicity check is not performed on items of $emph |
||
115 | orderlist$emphend. |
||
5921 | bpr | 116 | <li><span class="tt">!text repeat $emph text$emphend to $emph len$emphend |
117 | </span> <br/> |
||
32 | reyssat | 118 | Repeat the string $emph text$emphend cyclicly, up to length |
119 | $emph len$emphend. |
||
5921 | bpr | 120 | <li><span class="tt">!text reverse $emph text$emphend</span> <br/> |
32 | reyssat | 121 | Reverse the order of $emph text$emphend, with the last character coming |
122 | first, etc. |
||
5921 | bpr | 123 | <li><span class="tt">!text select $emph charlist$emphend in $emph text$emphend |
124 | [mask $emph maskstring$emphend]</span> <br/> |
||
32 | reyssat | 125 | Returns $emph text$emphend in which masked characters and characters |
5766 | bpr | 126 | not appearing in $emph charlist$emphend are removed. <br/> |
32 | reyssat | 127 | (Synonymes of select: pick, pickup). |
128 | </ul> |
||
129 | |||
130 |