summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index 7e76729..d738b78 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -1073,7 +1073,7 @@ public final class UnitDatabase {
// add data to expression replacements
static {
// add spaces around operators
- for (final String operator : Arrays.asList("\\*", "/", "\\^")) {
+ for (final String operator : Arrays.asList("\\*", "/", "\\|", "\\^")) {
EXPRESSION_REPLACEMENTS.put(Pattern.compile(operator),
" " + operator + " ");
}
@@ -1231,6 +1231,7 @@ public final class UnitDatabase {
.addBinaryOperator("*", (o1, o2) -> o1.times(o2), 1)
.addSpaceFunction("*")
.addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 1)
+ .addBinaryOperator("|", (o1, o2) -> o1.dividedBy(o2), 3)
.addBinaryOperator("^", UnitDatabase::exponentiateUnits, 2)
.build();
@@ -1246,6 +1247,7 @@ public final class UnitDatabase {
.addBinaryOperator("*", (o1, o2) -> o1.times(o2), 1)
.addSpaceFunction("*")
.addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 1)
+ .addBinaryOperator("|", (o1, o2) -> o1.dividedBy(o2), 3)
.addBinaryOperator("^", UnitDatabase::exponentiateUnitValues, 2)
.build();
@@ -1261,6 +1263,7 @@ public final class UnitDatabase {
.addBinaryOperator("*", (o1, o2) -> o1.times(o2), 1)
.addSpaceFunction("*")
.addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 1)
+ .addBinaryOperator("|", (o1, o2) -> o1.dividedBy(o2), 3)
.addBinaryOperator("^",
(o1, o2) -> o1.toExponent(o2.getMultiplier()), 2)
.build();
@@ -1275,6 +1278,7 @@ public final class UnitDatabase {
this::getDimension).addBinaryOperator("*", (o1, o2) -> o1.times(o2), 0)
.addSpaceFunction("*")
.addBinaryOperator("/", (o1, o2) -> o1.dividedBy(o2), 0)
+ .addBinaryOperator("|", (o1, o2) -> o1.dividedBy(o2), 2)
.addNumericOperator("^", (o1, o2) -> {
int exponent = (int) Math.round(o2.value());
return o1.toExponent(exponent);
@@ -1570,7 +1574,7 @@ public final class UnitDatabase {
// FIXME the previous operaton also breaks stuff like "1e-5"
for (int i = 0; i < modifiedExpression.length(); i++) {
if (modifiedExpression.charAt(i) == '-'
- && (i < 2 || Arrays.asList('+', '-', '*', '/', '^')
+ && (i < 2 || Arrays.asList('+', '-', '*', '/', '|', '^')
.contains(modifiedExpression.charAt(i - 2)))) {
// found a broken negative number
modifiedExpression = modifiedExpression.substring(0, i + 1)
@@ -1870,7 +1874,7 @@ public final class UnitDatabase {
// (i.e. -2 becomes - 2)
for (int i = 0; i < modifiedExpression.length(); i++) {
if (modifiedExpression.charAt(i) == '-'
- && (i < 2 || Arrays.asList('+', '-', '*', '/', '^')
+ && (i < 2 || Arrays.asList('+', '-', '*', '/', '|', '^')
.contains(modifiedExpression.charAt(i - 2)))) {
// found a broken negative number
modifiedExpression = modifiedExpression.substring(0, i + 1)