summaryrefslogtreecommitdiff
path: root/src/net/sourceforge/plantuml/utils/StartUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/sourceforge/plantuml/utils/StartUtils.java')
-rw-r--r--src/net/sourceforge/plantuml/utils/StartUtils.java39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/net/sourceforge/plantuml/utils/StartUtils.java b/src/net/sourceforge/plantuml/utils/StartUtils.java
index ac296b5..1b3f56d 100644
--- a/src/net/sourceforge/plantuml/utils/StartUtils.java
+++ b/src/net/sourceforge/plantuml/utils/StartUtils.java
@@ -2,7 +2,7 @@
* PlantUML : a free UML diagram generator
* ========================================================================
*
- * (C) Copyright 2009-2017, Arnaud Roques
+ * (C) Copyright 2009-2020, Arnaud Roques
*
* Project Info: http://plantuml.com
*
@@ -35,7 +35,7 @@
*/
package net.sourceforge.plantuml.utils;
-import net.sourceforge.plantuml.CharSequence2;
+import net.sourceforge.plantuml.StringLocated;
import net.sourceforge.plantuml.StringUtils;
import net.sourceforge.plantuml.command.regex.Matcher2;
import net.sourceforge.plantuml.command.regex.MyPattern;
@@ -50,14 +50,14 @@ public class StartUtils {
public static final String PAUSE_PATTERN = "(?i)((?:\\W|\\<[^<>]*\\>)*)[@\\\\]unpause";
public static final String START_PATTERN = "(?i)((?:[^\\w~]|\\<[^<>]*\\>)*)[@\\\\]start";
- public static String beforeStartUml(final CharSequence2 result) {
+ public static String beforeStartUml(final String s) {
boolean inside = false;
- for (int i = 0; i < result.length(); i++) {
- final CharSequence2 tmp = result.subSequence(i, result.length());
+ for (int i = 0; i < s.length(); i++) {
+ final String tmp = s.substring(i, s.length());
if (startsWithSymbolAnd("start", tmp)) {
- return result.subSequence(0, i).toString();
+ return s.substring(0, i);
}
- final String single = result.subSequence(i, i + 1).toString();
+ final String single = s.substring(i, i + 1);
if (inside) {
if (single.equals(">")) {
inside = false;
@@ -78,7 +78,7 @@ public class StartUtils {
// return null;
}
- public static boolean isArobaseStartDiagram(CharSequence s) {
+ public static boolean isArobaseStartDiagram(String s) {
final String s2 = StringUtils.trinNoTrace(s);
if (s2.startsWith("@") == false && s2.startsWith("\\") == false) {
return false;
@@ -86,33 +86,33 @@ public class StartUtils {
return DiagramType.getTypeFromArobaseStart(s2) != DiagramType.UNKNOWN;
}
- public static boolean startsWithSymbolAnd(String value, final CharSequence2 tmp) {
- return tmp.startsWith("@" + value) || tmp.startsWith("\\" + value);
+ public static boolean startsWithSymbolAnd(String value, final StringLocated tmp) {
+ return tmp.getString().startsWith("@" + value) || tmp.getString().startsWith("\\" + value);
}
public static boolean startsWithSymbolAnd(String value, final String tmp) {
return tmp.startsWith("@" + value) || tmp.startsWith("\\" + value);
}
- public static boolean startOrEnd(final CharSequence2 s) {
- final String s2 = StringUtils.trinNoTrace(s);
+ public static boolean startOrEnd(final StringLocated s) {
+ final String s2 = StringUtils.trinNoTrace(s.getString());
if (s2.startsWith("@") == false && s2.startsWith("\\") == false) {
return false;
}
return startsWithSymbolAnd("end", s2) || DiagramType.getTypeFromArobaseStart(s2) != DiagramType.UNKNOWN;
}
- public static boolean isArobaseEndDiagram(CharSequence s) {
+ public static boolean isArobaseEndDiagram(String s) {
final String s2 = StringUtils.trinNoTrace(s);
return startsWithSymbolAnd("end", s2);
}
- public static boolean isArobasePauseDiagram(CharSequence s) {
+ public static boolean isArobasePauseDiagram(String s) {
final String s2 = StringUtils.trinNoTrace(s);
return startsWithSymbolAnd("pause", s2);
}
- public static boolean isArobaseUnpauseDiagram(CharSequence s) {
+ public static boolean isArobaseUnpauseDiagram(String s) {
final String s2 = StringUtils.trinNoTrace(s);
return startsWithSymbolAnd("unpause", s2);
}
@@ -122,13 +122,14 @@ public class StartUtils {
return s2.equals("!exit");
}
- private static final Pattern2 append = MyPattern.cmpile("^\\W*[@\\\\]append");
+ private static final Pattern2 append = MyPattern.cmpile("^\\W*[@\\\\](append|a)\\b");
- public static CharSequence2 getPossibleAppend(CharSequence2 s) {
+ public static StringLocated getPossibleAppend(StringLocated cs) {
+ final String s = cs.getString();
final Matcher2 m = append.matcher(s);
if (m.find()) {
- return s.subSequence(m.group(0).length(), s.length()).trin();
- // return StringUtils.trin(s.toString().substring(m.group(0).length()));
+ final String tmp = s.substring(m.group(0).length(), s.length());
+ return new StringLocated(StringUtils.trin(tmp), cs.getLocation(), cs.getPreprocessorError());
}
return null;
}