| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'sol_pretty_printer/src/Strings.java')
| -rw-r--r-- | sol_pretty_printer/src/Strings.java | 89 |
1 files changed, 89 insertions, 0 deletions
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<String, String> FROM_ID; + + static + { + FROM_ID = new HashMap<String, String>(); + } + + 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; + } +} |


