Skip to content

Commit 3ba6a02

Browse files
Simplified tokenizer code
1 parent 1073d4c commit 3ba6a02

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/org/sosy_lab/java_smt/basicimpl/Tokenizer.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,17 @@ public static List<String> tokenize(String input) {
133133
return builder.build();
134134
}
135135

136+
private static boolean matchesOneOf(String token, String... regexp) {
137+
return token.matches("\\(\\s*(" + String.join("|", regexp) + ")[\\S\\s]*");
138+
}
139+
136140
/**
137141
* Check if the token is a function or variable declaration.
138142
*
139143
* <p>Use {@link #tokenize(String)} to turn an SMT-LIB2 script into a string of input tokens.
140144
*/
141145
public static boolean isDeclarationToken(String token) {
142-
return token.matches("\\(\\s*(declare-const|declare-fun)[\\S\\s]*");
146+
return matchesOneOf(token, "declare-const", "declare-fun");
143147
}
144148

145149
/**
@@ -148,7 +152,7 @@ public static boolean isDeclarationToken(String token) {
148152
* <p>Use {@link #tokenize(String)} to turn an SMT-LIB2 script into a string of input tokens.
149153
*/
150154
public static boolean isDefinitionToken(String token) {
151-
return token.matches("\\(\\s*define-fun[\\S\\s]*");
155+
return matchesOneOf(token, "define-fun");
152156
}
153157

154158
/**
@@ -157,7 +161,7 @@ public static boolean isDefinitionToken(String token) {
157161
* <p>Use {@link #tokenize(String)} to turn an SMT-LIB2 script into a string of input tokens.
158162
*/
159163
public static boolean isAssertToken(String token) {
160-
return token.matches("\\(\\s*assert[\\S\\s]*");
164+
return matchesOneOf(token, "assert");
161165
}
162166

163167
/**
@@ -166,7 +170,7 @@ public static boolean isAssertToken(String token) {
166170
* <p>Use {@link #tokenize(String)} to turn an SMT-LIB2 script into a string of input tokens.
167171
*/
168172
public static boolean isSetLogicToken(String token) {
169-
return token.matches("\\(\\s*set-logic[\\S\\s]*");
173+
return matchesOneOf(token, "set-logic");
170174
}
171175

172176
/**
@@ -175,6 +179,6 @@ public static boolean isSetLogicToken(String token) {
175179
* <p>Use {@link #tokenize(String)} to turn an SMT-LIB2 script into a string of input tokens.
176180
*/
177181
public static boolean isExitToken(String token) {
178-
return token.matches("\\(\\s*exit[\\S\\s]*");
182+
return matchesOneOf(token, "exit");
179183
}
180184
}

0 commit comments

Comments
 (0)