test_class.file: worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/ExpressionTest.java
test_class.identifier: ExpressionTest
test_class.superclass: extends BaseExpressionTest
test_case.body: @Test
      public void testErrors() {
          // test lexer errors
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("#"));
              assertEquals(0, e.getPosition(), "Error position");
          }
          // test parser errors
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("x"));
              assertEquals(0, e.getPosition(), "Error position");
          }
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("x()"));
              assertEquals(0, e.getPosition(), "Error position");
          }
          {
              // verify that you must return a value
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("return"));
              assertEquals(6, e.getPosition(), "Error position");
          }
          assertThrows(ExpressionException.class,
              () -> compile("("));
          assertThrows(ExpressionException.class,
              () -> compile("x("));
          // test overloader errors
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("atan2(1)"));
              assertEquals(0, e.getPosition(), "Error position");
          }
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("atan2(1, 2, 3)"));
              assertEquals(0, e.getPosition(), "Error position");
          }
          {
              ExpressionException e = assertThrows(ExpressionException.class,
                  () -> compile("rotate(1, 2, 3)"));
              assertEquals(7, e.getPosition(), "Error position");
          }
  
      }
test_case.class_method_signature: ExpressionTest.testErrors()
test_case.full_signature: @Test public void testErrors()
test_case.identifier: testErrors
test_case.invocations: assertThrows compile assertEquals getPosition assertThrows compile assertEquals getPosition assertThrows compile assertEquals getPosition assertThrows compile assertEquals getPosition assertThrows compile assertThrows compile assertThrows compile assertEquals getPosition assertThrows compile assertEquals getPosition assertThrows compile assertEquals getPosition
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testErrors()
focal_class.declarator: slots = new SlotTable()
focal_class.modifier: private final
focal_class.original_string: private final SlotTable slots = new SlotTable();
focal_class.type: SlotTable
focal_class.var_name: slots
focal_class.declarator: providedSlots
focal_class.modifier: private final
focal_class.original_string: private final List<String> providedSlots;
focal_class.type: List<String>
focal_class.var_name: providedSlots
focal_class.declarator: root
focal_class.modifier: private final
focal_class.original_string: private final ExpressionParser.AllStatementsContext root;
focal_class.type: ExpressionParser.AllStatementsContext
focal_class.var_name: root
focal_class.declarator: functions = Functions.create()
focal_class.modifier: private final
focal_class.original_string: private final Functions functions = Functions.create();
focal_class.type: Functions
focal_class.var_name: functions
focal_class.declarator: compiledExpression
focal_class.modifier: private final
focal_class.original_string: private final CompiledExpression compiledExpression;
focal_class.type: CompiledExpression
focal_class.var_name: compiledExpression
focal_class.declarator: initialExpression
focal_class.modifier: private final
focal_class.original_string: private final String initialExpression;
focal_class.type: String
focal_class.var_name: initialExpression
focal_class.file: worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java
focal_class.identifier: Expression
focal_class.interfaces: implements Cloneable
focal_class.class_method_signature: Expression.compile(String expression, String... variableNames)
focal_class.full_signature: public static Expression compile(String expression, String... variableNames)
focal_class.identifier: compile
focal_class.modifiers: public static
focal_class.parameters: (String expression, String... variableNames)
focal_class.return: Expression
focal_class.signature: Expression compile(String expression, String... variableNames)
focal_class.class_method_signature: Expression.Expression(String expression, String... variableNames)
focal_class.full_signature: private  Expression(String expression, String... variableNames)
focal_class.identifier: Expression
focal_class.modifiers: private
focal_class.parameters: (String expression, String... variableNames)
focal_class.signature:  Expression(String expression, String... variableNames)
focal_class.class_method_signature: Expression.Expression(String expression, Set<String> variableNames)
focal_class.full_signature: private  Expression(String expression, Set<String> variableNames)
focal_class.identifier: Expression
focal_class.modifiers: private
focal_class.parameters: (String expression, Set<String> variableNames)
focal_class.signature:  Expression(String expression, Set<String> variableNames)
focal_class.class_method_signature: Expression.evaluate(double... values)
focal_class.full_signature: public double evaluate(double... values)
focal_class.identifier: evaluate
focal_class.modifiers: public
focal_class.parameters: (double... values)
focal_class.return: double
focal_class.signature: double evaluate(double... values)
focal_class.class_method_signature: Expression.evaluate(double[] values, int timeout)
focal_class.full_signature: public double evaluate(double[] values, int timeout)
focal_class.identifier: evaluate
focal_class.modifiers: public
focal_class.parameters: (double[] values, int timeout)
focal_class.return: double
focal_class.signature: double evaluate(double[] values, int timeout)
focal_class.class_method_signature: Expression.optimize()
focal_class.full_signature: public void optimize()
focal_class.identifier: optimize
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void optimize()
focal_class.class_method_signature: Expression.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: Expression.getSlots()
focal_class.full_signature: public SlotTable getSlots()
focal_class.identifier: getSlots
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: SlotTable
focal_class.signature: SlotTable getSlots()
focal_class.class_method_signature: Expression.getEnvironment()
focal_class.full_signature: public ExpressionEnvironment getEnvironment()
focal_class.identifier: getEnvironment
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ExpressionEnvironment
focal_class.signature: ExpressionEnvironment getEnvironment()
focal_class.class_method_signature: Expression.setEnvironment(ExpressionEnvironment environment)
focal_class.full_signature: public void setEnvironment(ExpressionEnvironment environment)
focal_class.identifier: setEnvironment
focal_class.modifiers: public
focal_class.parameters: (ExpressionEnvironment environment)
focal_class.return: void
focal_class.signature: void setEnvironment(ExpressionEnvironment environment)
focal_class.class_method_signature: Expression.clone()
focal_class.full_signature: public Expression clone()
focal_class.identifier: clone
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Expression
focal_class.signature: Expression clone()
focal_method.body: public static Expression compile(String expression, String... variableNames) throws ExpressionException {
          return new Expression(expression, variableNames);
      }
focal_method.class_method_signature: Expression.compile(String expression, String... variableNames)
focal_method.full_signature: public static Expression compile(String expression, String... variableNames)
focal_method.identifier: compile
focal_method.modifiers: public static
focal_method.parameters: (String expression, String... variableNames)
focal_method.return: Expression
focal_method.signature: Expression compile(String expression, String... variableNames)