1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package bjc.utils.ioutils.format;
import bjc.utils.esodata.Tape;
import java.util.regex.Matcher;
class GotoDirective implements Directive {
@Override
public void format(StringBuffer sb, Object item, CLModifiers mods, CLParameters params, Tape<Object> formatParams,
Matcher dirMatcher, CLFormatter fmt) {
if(mods.colonMod) {
int num = 1;
if(params.length() > 1) {
num = params.getIntDefault(0, "number of arguments backward", '*', 1);
}
formatParams.left(num);
} else if(mods.atMod) {
int num = 0;
if(params.length() > 1) {
num = params.getIntDefault(0, "argument index", '*', 0);
}
formatParams.first();
formatParams.right(num);
} else {
int num = 1;
if(params.length() > 1) {
num = params.getIntDefault(0, "number of arguments forward", '*', 1);
}
formatParams.right(num);
}
}
}
|