package org.geogebra.common.kernel;
import org.geogebra.common.kernel.arithmetic.ExpressionValue;
import org.geogebra.common.kernel.arithmetic.ValidExpression;
import org.geogebra.common.kernel.geos.GeoCasCell;
/**
* Interface for CAS parser
*/
public interface CASParserInterface {
/**
* Parses the given expression and resolves variables as GeoDummy objects.
* The result is returned as a ValidExpression.
*
* @param inValue
* GeoGebraCAS input
* @param kernel
* kernel
* @param cell
* CAS cell we parse this for
* @return parsed expression
* @throws CASException
* if something goes wrong (invalid input)
*/
ValidExpression parseGeoGebraCASInputAndResolveDummyVars(String inValue,
Kernel kernel, GeoCasCell cell) throws CASException;
/**
* Parses the given expression and returns it as a ValidExpression.
*
* @param inValue
* GeoGebraCAS input
* @param cell
* CAS cell we parse this for
* @return parsed expression
* @throws CASException
* something goes wrong
*/
ValidExpression parseGeoGebraCASInput(final String inValue, GeoCasCell cell)
throws CASException;
/**
* Replace variables with dummy objects
*
* @param outputVe
* value to process
* @param kernel
* kernel
* @return resolved expression
*/
ExpressionValue resolveVariablesForCAS(ExpressionValue outputVe,
Kernel kernel);
/**
* @param string
* internal name of command
* @return localized name of command
*/
String getTranslatedCASCommand(final String string);
}