summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/ioutils/format/GotoDirective.java
blob: b09053e64094bf3606660688194b8d3f87a8d6b8 (plain)
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);
		}
	}

}