Skip to content

Commit

Permalink
Merge pull request #11 from Mond1c/development
Browse files Browse the repository at this point in the history
improve errors
  • Loading branch information
Mond1c authored Jun 26, 2023
2 parents f7c0e08 + f358c8f commit 789eb81
Show file tree
Hide file tree
Showing 49 changed files with 25 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions src/main/java/org/linalg/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

public class Main {
public static void main(String[] args) {
try (final Scanner scanner = new Scanner(System.in)) {
Scanner scanner = null;
try {
scanner = new Scanner(System.in);
String request = scanner.nextLine();
if (request.contains(" at ")) {
String[] parts = request.split("at");
Expand All @@ -27,8 +29,10 @@ public static void main(String[] args) {
} else {
System.out.println(new Parser().parse(request).evaluate().simplify().toLatexString());
}
} catch (RuntimeException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
} finally {
scanner.close();
}
}
}
4 changes: 3 additions & 1 deletion src/main/java/org/linalg/expression/parser/BaseParser.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.linalg.expression.parser;

import org.linalg.expression.parser.exceptions.ParserException;

public class BaseParser {
private static final char END = '\0';
private StringSource source;
Expand Down Expand Up @@ -75,7 +77,7 @@ protected void skipWhitespaces() {
}
}

protected IllegalArgumentException error(final String message) {
protected RuntimeException error(final String message) {
return source.error(message);
}

Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/linalg/expression/parser/Parser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import org.linalg.expression.PartOfExpression;
import org.linalg.expression.operations.*;
import org.linalg.expression.parser.exceptions.ParserException;
import org.linalg.expression.parts.Const;
import org.linalg.expression.parts.Matrix;
import org.linalg.expression.parts.Variable;
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/org/linalg/expression/parser/StringSource.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.linalg.expression.parser;

import org.linalg.expression.parser.exceptions.ParserException;

public class StringSource {
private final String data;
private int pos;
Expand Down Expand Up @@ -28,7 +30,7 @@ public char cur() {
return data.charAt(pos);
}

public IllegalArgumentException error(final String message) {
return new IllegalArgumentException(pos + ": " + message);
public RuntimeException error(final String message) {
return new ParserException(data, pos, message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.linalg.expression.parser.exceptions;

public class ParserException extends RuntimeException {
public ParserException(String expression, int pos, String message) {
super(message + ": " + expression.substring(Math.max(0, pos - 11), pos - 1)
+ " --> " + expression.charAt(pos - 1) + " <-- "
+ (pos < expression.length() ? expression.substring(pos, Math.min(pos + 10, expression.length())) : ""));
}
}
Binary file modified target/classes/org/linalg/Main.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/PartOfExpression.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Acos.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Add.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Asin.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Atan.class
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Cos.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Cosh.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Determinant.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Diff.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Divide.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Function.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Inverse.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Log.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Multiply.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Negate.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Pow.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Rank.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Sin.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Sinh.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Solve.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Sqrt.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Subtract.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Tan.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Tanh.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Transpose.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/operations/Triangle.class
Binary file not shown.
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parser/BaseParser.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parser/Parser.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parser/StringSource.class
Binary file not shown.
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parts/Const.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parts/Matrix.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parts/Tensor.class
Binary file not shown.
Binary file modified target/classes/org/linalg/expression/parts/Variable.class
Binary file not shown.
Binary file modified target/classes/org/linalg/math/BigDecimalMath.class
Binary file not shown.
Binary file modified target/test-classes/TestDiff.class
Binary file not shown.
Binary file modified target/test-classes/TestMatrix.class
Binary file not shown.
Binary file modified target/test-classes/TestParser.class
Binary file not shown.
Binary file modified target/test-classes/TestTensor.class
Binary file not shown.

0 comments on commit 789eb81

Please sign in to comment.