summaryrefslogtreecommitdiffstats
path: root/parsers/WordDecoration.java
diff options
context:
space:
mode:
Diffstat (limited to 'parsers/WordDecoration.java')
-rw-r--r--parsers/WordDecoration.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/parsers/WordDecoration.java b/parsers/WordDecoration.java
new file mode 100644
index 0000000..b2df37e
--- /dev/null
+++ b/parsers/WordDecoration.java
@@ -0,0 +1,31 @@
+package scruf.parsers;
+
+import java.util.regex.*;
+import java.util.*;
+import java.io.*;
+import scruf.io.*;
+
+public class WordDecoration implements Parser {
+ private HashMap<String, String> tagMap;
+ public WordDecoration() {
+ tagMap = new HashMap<String, String>();
+ tagMap.put("''","<i>$6</i>");
+ tagMap.put("__","<u>$6</u>");
+ tagMap.put("'''","<b>$6</b>");
+ tagMap.put("%%%","<blockquote>$6</blockquote>");
+ }
+ public String parse(String fileContent) {
+ Pattern pattern =
+ Pattern.compile("((\\'\\'\\')|(\\_\\_)|(\\'\\')|(\\%\\%\\%))(.+?)((\\2)|(\\3)|(\\4)|(\\5))",
+ Pattern.DOTALL);
+ Matcher matcher = pattern.matcher(fileContent);
+ StringBuffer sbuffer = new StringBuffer();
+ String replacement;
+ while(matcher.find()) {
+ replacement = tagMap.get(matcher.group(1));
+ matcher.appendReplacement(sbuffer,replacement);
+ }
+ matcher.appendTail(sbuffer);
+ return sbuffer.toString();
+ }
+} \ No newline at end of file