From 92ec9adfcb115fe86d5ba27fcc089db027374d6a Mon Sep 17 00:00:00 2001 From: student Date: Fri, 9 Feb 2018 11:52:03 -0500 Subject: Work on CL format strings --- .../main/java/bjc/utils/ioutils/CLParameters.java | 116 --------------------- 1 file changed, 116 deletions(-) delete mode 100644 base/src/main/java/bjc/utils/ioutils/CLParameters.java (limited to 'base/src/main/java/bjc/utils/ioutils/CLParameters.java') diff --git a/base/src/main/java/bjc/utils/ioutils/CLParameters.java b/base/src/main/java/bjc/utils/ioutils/CLParameters.java deleted file mode 100644 index 9d0c9c6..0000000 --- a/base/src/main/java/bjc/utils/ioutils/CLParameters.java +++ /dev/null @@ -1,116 +0,0 @@ -package bjc.utils.ioutils; - -import java.util.ArrayList; -import java.util.List; - -import bjc.utils.esodata.Tape; - -/** - * Represents a set of parameters to a CL format directive. - * - * @author Benjamin Culkin - */ -public class CLParameters { - private String[] params; - - public CLParameters(String[] params) { - this.params = params; - } - - public int length() { - return params.length; - } - - /** - * Creates a set of parameters from an array of parameters. - * - * Mostly, this just fills in V and # parameters. - * - * @param params - * The parameters of the directive. - * @param dirParams - * The parameters of the format string. - * - * @return A set of CL parameters. - */ - public static CLParameters fromDirective(String[] params, Tape dirParams) { - List parameters = new ArrayList<>(); - - for (String param : params) { - if (param.equalsIgnoreCase("V")) { - Object par = dirParams.item(); - boolean succ = dirParams.right(); - - if (!succ) { - throw new IllegalStateException("Couldn't advance tape for parameter"); - } - - if (par == null) { - throw new IllegalArgumentException( - "Expected a format parameter for V inline parameter"); - } - - if (par instanceof Number) { - int val = ((Number) par).intValue(); - - parameters.add(Integer.toString(val)); - } else if (par instanceof Character) { - char ch = ((Character) par); - - parameters.add(Character.toString(ch)); - } else { - throw new IllegalArgumentException( - "Incorrect type of parameter for V inline parameter"); - } - } else if (param.equals("#")) { - parameters.add(Integer.toString(dirParams.position())); - } else { - parameters.add(param); - } - } - - return new CLParameters(parameters.toArray(new String[0])); - } - - public char getCharDefault(int idx, String paramName, char directive, char def) { - if (!params[idx].equals("")) { - return getChar(idx, paramName, directive); - } - - return def; - } - - public char getChar(int idx, String paramName, char directive) { - String param = params[idx]; - - if (!param.startsWith("'")) { - throw new IllegalArgumentException( - String.format("Invalid %s %s to %c directive", paramName, param, directive)); - } - - return param.charAt(1); - } - - public int getIntDefault(int idx, String paramName, char directive, int def) { - if (!params[idx].equals("")) { - - } - - return def; - } - - public int getInt(int idx, String paramName, char directive) { - String param = params[idx]; - - try { - return Integer.parseInt(param); - } catch (NumberFormatException nfex) { - String msg = String.format("Invalid %s %s to %c directive", paramName, param, directive); - - IllegalArgumentException iaex = new IllegalArgumentException(msg); - iaex.initCause(nfex); - - throw iaex; - } - } -} -- cgit v1.2.3