summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/scl/StreamControlConsole.java
blob: 8c71770e171d9b6dd47eebd7edd92fc9bf4a1906 (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
38
39
40
41
42
43
44
45
package bjc.dicelang.scl;

import bjc.utils.funcdata.FunctionalList;
import bjc.utils.funcdata.IList;

import java.util.Scanner;

public class StreamControlConsole {
	public static void main(String[] args) {
		/*
		 * We're not using the DiceLangEngine in the streams yet.
		 */
		StreamEngine sengine = new StreamEngine(null);
		
		StreamControlEngine sclengine = new StreamControlEngine(sengine);

		Scanner scn = new Scanner(System.in);

		System.out.print("Enter a SCL command string (blank to exit): ");

		while(scn.hasNextLine()) {
			String ln = scn.nextLine();

			if(ln.trim().equals("")) break;

			IList<String> res = new FunctionalList<>();

			String[] tokens = ln.split(" ");

			boolean succ = sengine.doStreams(tokens, res);

			if(!succ) continue;

			tokens = res.toArray(new String[res.getSize()]);

			succ = sclengine.runProgram(tokens);

			if(!succ) continue;

			System.out.print("Command string executed succesfully.\n\n");

			System.out.print("Enter a SCL command string (blank to exit): ");
		}
	}
}