diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitDatabase.java | 10 |
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) |