X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2FDocument.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2FDocument.java;h=c4e18cdd59805c570d821432c0b9aa75ada0df67;hp=262bee3581c925c0544bbe9ed40dd6fb0c903173;hb=e8052e0b1948260c3701bfe80dfaa8fdf5c38053;hpb=e6e265a23ae9e32b65ba6a70d302ae680e73138f diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Document.java b/src/main/java/eu/svjatoslav/sixth/core/document/Document.java index 262bee3..c4e18cd 100644 --- a/src/main/java/eu/svjatoslav/sixth/core/document/Document.java +++ b/src/main/java/eu/svjatoslav/sixth/core/document/Document.java @@ -1,6 +1,5 @@ package eu.svjatoslav.sixth.core.document; -import eu.svjatoslav.commons.string.String2; import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException; import eu.svjatoslav.commons.string.tokenizer.Tokenizer; import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch; @@ -28,14 +27,10 @@ public class Document { return createHeading(name, targetLevel); } - try { - Heading missingIntermediate = new Heading(fromOrg(""), currentHeading.level + 1, currentHeading); - currentHeading.addChild(missingIntermediate); - currentHeading = missingIntermediate; - return createHeading(name, targetLevel); - } catch (InvalidSyntaxException e) { - throw new IllegalStateException("impossible situation"); - } + Heading missingIntermediate = new Heading(fromOrg(""), currentHeading.level + 1, currentHeading); + currentHeading.addChild(missingIntermediate); + currentHeading = missingIntermediate; + return createHeading(name, targetLevel); } public Heading getCurrentHeading(){ @@ -43,10 +38,7 @@ public class Document { } private void parseHeading(TokenizerMatch token) throws InvalidSyntaxException { - // expected sample heading: - // ***** test heading - - String[] headingSections = String2.getGroups(token.token, "(\\*+)[ \\t](.*)\\r?\\n"); + String[] headingSections = token.getRegExpGroups(); int level = headingSections[0].length(); String title = headingSections[1]; createHeading(fromOrg(title), level); @@ -57,15 +49,15 @@ public class Document { // Org heading: // "*** Example Heading 1234" - tokenizer.addTerminator(PRESERVE, "\\*+[ \\t].*\\r?\\n", TG_HEADING); + tokenizer.addTerminator(PRESERVE, "(\\*+)[ \\t](.*)\\r?\\n", TG_HEADING); // Org list. Examples: // " + my list title" // " - my list title" - tokenizer.addTerminator(PRESERVE, "[ \\t]*(\\+|-)([ \\t].*)?\\r?\\n", TG_LIST); + tokenizer.addTerminator(PRESERVE, "([ \\t]*)(\\+|-)[ \\t]?(.*)?\\r?\\n", TG_LIST); // " * my list title" - tokenizer.addTerminator(PRESERVE, "[ \\t]+\\*([ \\t].*)?\\r?\\n", TG_LIST); + tokenizer.addTerminator(PRESERVE, "([ \\t]+)(\\*)[ \\t]?(.*)?\\r?\\n", TG_LIST); // DocumentProperty: // "#+OPTIONS: H:20 num:20" @@ -83,8 +75,7 @@ public class Document { continue; } - tokenizer.unreadToken(); - currentHeading.parse(tokenizer); + currentHeading.parse(tm); } }