summaryrefslogtreecommitdiff
path: root/JPratt/src/examples/java/bjc/pratt/examples/SwitchCommand.java
blob: 6c4e2b6cbb23c032a4d69e8ee6acd4fd3ab65320 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package bjc.pratt.examples;

import bjc.pratt.InitialCommand;
import bjc.pratt.ParserContext;
import bjc.pratt.Token;
import bjc.pratt.tokens.StringToken;
import bjc.utils.data.ITree;
import bjc.utils.data.Tree;
import bjc.utils.parserutils.ParserException;

class SwitchCommand implements InitialCommand<String, String, TestContext> {
	@Override
	public ITree<Token<String, String>> denote(final Token<String, String> operator,
			final ParserContext<String, String, TestContext> ctx) throws ParserException {
		final ITree<Token<String, String>> object = ctx.parse.parseExpression(0, ctx.tokens, ctx.state, false);

		final ITree<Token<String, String>> body = ctx.parse.parseExpression(0, ctx.tokens, ctx.state, false);

		return new Tree<>(new StringToken("switch", "switch"), object, body);
	}
}