From c5a23ef9d6ab1e89b85016831fc8b2431f68f87f Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 3 Aug 2017 11:10:55 +0200 Subject: Finishes the sol_pretty_printer, 'xcept Makefile. --- sol_pretty_printer/src/Strings.java | 89 +++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sol_pretty_printer/src/Strings.java (limited to 'sol_pretty_printer/src/Strings.java') diff --git a/sol_pretty_printer/src/Strings.java b/sol_pretty_printer/src/Strings.java new file mode 100644 index 0000000..31f6145 --- /dev/null +++ b/sol_pretty_printer/src/Strings.java @@ -0,0 +1,89 @@ +import java.io.FileNotFoundException; +import java.io.IOException; + +import java.util.Map; +import java.util.HashMap; + +public class Strings +{ + private static final Map FROM_ID; + + static + { + FROM_ID = new HashMap(); + } + + private static void add_mapping (final String id, final String str) + { + FROM_ID.put(id, str); + } + + public static String get_string_from_id (final String id) + { + return FROM_ID.get(id); + } + + private static boolean handle_mapping_instruction (final String... instr) + { + if (instr.length < 3) + { + return false; + } + + if (!instr[0].equals("string->instr")) + { + return false; + } + + add_mapping(instr[2], instr[1]); + + return true; + } + + public static boolean load_file (final String filename) + throws FileNotFoundException + { + final QuickParser qp; + String[] input; + + qp = new QuickParser(filename); + + for (;;) + { + try + { + input = qp.parse_line(); + + if (input == null) + { + qp.finalize(); + + return false; + } + else if (input.length == 0) + { + qp.finalize(); + + break; + } + } + catch (final IOException e) + { + System.err.println + ( + "[E] IO error while parsing file \"" + + filename + + "\":" + /* FIXME: can be null */ + + e.getMessage() + ); + + return false; + } + + handle_mapping_instruction(input); + } + + return true; + } +} -- cgit v1.2.3-70-g09d2