Interface StringFormulaManager
- All Known Implementing Classes:
AbstractStringFormulaManager,DebuggingStringFormulaManager
-
Method Summary
Modifier and TypeMethodDescriptionall()Note: The size of the used alphabet depends on the underlying SMT solver.allChar()Note: The size of the used alphabet depends on the underlying SMT solver.charAt(StringFormula str, NumeralFormula.IntegerFormula index) Get a substring of length 1 from the given String.closure(RegexFormula regex) complement(RegexFormula regex) concat(List<StringFormula> parts) default RegexFormulaconcat(RegexFormula... parts) default StringFormulaconcat(StringFormula... parts) concatRegex(List<RegexFormula> parts) contains(StringFormula str, StringFormula part) cross(RegexFormula regex) difference(RegexFormula regex1, RegexFormula regex2) equal(StringFormula str1, StringFormula str2) greaterOrEquals(StringFormula str1, StringFormula str2) greaterThan(StringFormula str1, StringFormula str2) in(StringFormula str, RegexFormula regex) indexOf(StringFormula str, StringFormula part, NumeralFormula.IntegerFormula startIndex) Get the first index for a substring in a String, or -1 if the substring is not found.intersection(RegexFormula regex1, RegexFormula regex2) length(StringFormula str) lessOrEquals(StringFormula str1, StringFormula str2) lessThan(StringFormula str1, StringFormula str2) Returns aRegexFormularepresenting the given constant.makeString(String value) Returns aStringFormularepresenting the given constant.makeVariable(String pVar) Creates a variable of type String with exactly the given name.none()optional(RegexFormula regex) prefix(StringFormula prefix, StringFormula str) Check whether the given prefix is a real prefix of str.default RegexFormularange(char start, char end) range(StringFormula start, StringFormula end) replace(StringFormula fullStr, StringFormula target, StringFormula replacement) Replace the first appearances of target in fullStr with the replacement.replaceAll(StringFormula fullStr, StringFormula target, StringFormula replacement) Replace all appearances of target in fullStr with the replacement.substring(StringFormula str, NumeralFormula.IntegerFormula index, NumeralFormula.IntegerFormula length) Get a substring from the given String.suffix(StringFormula suffix, StringFormula str) Check whether the given suffix is a real suffix of str.times(RegexFormula regex, int repetitions) Interpret a String formula as an Integer formula.Interpret an Integer formula as a String formula.union(RegexFormula regex1, RegexFormula regex2)
-
Method Details
-
makeString
Returns aStringFormularepresenting the given constant.- Parameters:
value- the string value the returnedFormulashould represent- Returns:
- a Formula representing the given value
-
makeVariable
Creates a variable of type String with exactly the given name.This variable (symbol) represents a "String" for which the SMT solver needs to find a model.
Please make sure that the given name is valid in SMT-LIB2. Take a look at
FormulaManager.isValidName(java.lang.String)for further information.This method does not quote or unquote the given name, but uses the plain name "AS IS".
Formula.toString()can return a different String than the given one. -
equal
-
greaterThan
-
greaterOrEquals
-
lessThan
-
lessOrEquals
-
prefix
Check whether the given prefix is a real prefix of str. -
suffix
Check whether the given suffix is a real suffix of str. -
contains
-
indexOf
NumeralFormula.IntegerFormula indexOf(StringFormula str, StringFormula part, NumeralFormula.IntegerFormula startIndex) Get the first index for a substring in a String, or -1 if the substring is not found. startIndex (inlcuded) denotes the start of the search for the index. -
charAt
Get a substring of length 1 from the given String.The result is underspecified, if the index is out of bounds for the given String.
-
substring
StringFormula substring(StringFormula str, NumeralFormula.IntegerFormula index, NumeralFormula.IntegerFormula length) Get a substring from the given String.The result is underspecified, if the start index is out of bounds for the given String or if the requested length is negative. The length of the result is the minimum of the requested length and the remaining length of the given String.
-
replace
Replace the first appearances of target in fullStr with the replacement. -
replaceAll
Replace all appearances of target in fullStr with the replacement. -
length
-
concat
-
concat
-
in
- Parameters:
str- formula representing the string to matchregex- formula representing the regular expression- Returns:
- a formula representing the acceptance of the string by the regular expression
-
makeRegex
Returns aRegexFormularepresenting the given constant.This method does not parse an existing regex from String, but uses the String directly as a constant.
- Parameters:
value- the regular expression the returnedFormulashould represent
-
none
RegexFormula none()- Returns:
- formula denoting the empty set of strings
-
all
RegexFormula all()Note: The size of the used alphabet depends on the underlying SMT solver.- Returns:
- formula denoting the set of all strings, also known as Regex
".*".
-
allChar
RegexFormula allChar()Note: The size of the used alphabet depends on the underlying SMT solver.- Returns:
- formula denoting the set of all strings of length 1, also known as DOT operator which
represents one arbitrary char, or as Regex
".".
-
range
- Returns:
- formula denoting the range regular expression over two sequences of length 1.
-
range
- Returns:
- formula denoting the range regular expression over two chars.
- See Also:
-
concat
- Returns:
- formula denoting the concatenation
-
concatRegex
- Returns:
- formula denoting the concatenation
-
union
- Returns:
- formula denoting the union
-
intersection
- Returns:
- formula denoting the intersection
-
complement
- Returns:
- formula denoting the Kleene closure
-
closure
- Returns:
- formula denoting the Kleene closure (0 or more), also known as STAR operand.
-
difference
- Returns:
- formula denoting the difference
-
cross
- Returns:
- formula denoting the Kleene cross (1 or more), also known as PLUS operand.
-
optional
- Returns:
- formula denoting the optionality, also known as QUESTIONMARK operand.
-
times
- Returns:
- formula denoting the concatenation n times
-
toIntegerFormula
Interpret a String formula as an Integer formula.The number is interpreted in base 10 and has no leading zeros. The method works as expected for positive numbers, including zero. It returns the constant value of
-1for negative numbers or invalid number representations, for example if any char is no digit. -
toStringFormula
Interpret an Integer formula as a String formula.The number is in base 10. The method works as expected for positive numbers, including zero. It returns the empty string
""for negative numbers.
-