Skip to content

Commit

Permalink
Allow variable definitions to have more than one =
Browse files Browse the repository at this point in the history
This allows use of the `==` operator so that equal comparisons can be
performed in user defined functions as well.
  • Loading branch information
Pixaurora committed Sep 1, 2023
1 parent 633ab3f commit 252350a
Showing 1 changed file with 6 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.pixaurora.janerator.graphing.variable;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand All @@ -26,15 +27,15 @@ protected VariableDefinition(String name, String definitionStatement, List<? ext
}

public static VariableDefinition fromString(Map<String, Function> functionTable, Map<String, Variable> variableTable, String definitionText) {
List<String> parts = List.of(definitionText.split("="));
List<String> parts = new ArrayList<>(List.of(definitionText.split("=")));

if (parts.size() != 2) {
throw new GraphingConfigException(String.format("Variable definition `%s` must have exactly one equal sign (=)", definitionText));
if (parts.size() < 2) {
throw new GraphingConfigException(String.format("Variable definition `%s` must have at least one equal sign (=)!", definitionText));
}

String name = parts.get(0).strip();
String name = parts.remove(0).strip();

String expressionText = parts.get(1);
String expressionText = String.join("=", parts);
Expression expression = new Expression(expressionText);

List<Variable> requiredVariables = Stream.of(expression.getMissingUserDefinedArguments())
Expand Down

0 comments on commit 252350a

Please sign in to comment.