eva is a calculator REPL (Read-Eval-Print Loop) tool that provides a simple and interactive environment for performing calculations. It is designed to be similar to the “bc” command-line calculator, but with added features such as syntax highlighting and persistent history.

Here are some important details and features of eva:

**Calculator functionality**: eva allows users to perform mathematical calculations using a wide range of operators, functions, and constants. It supports basic arithmetic operations like addition, subtraction, multiplication, and division, as well as more complex functions like trigonometric, exponential, and logarithmic operations.**Read-Eval-Print Loop**: eva operates in a Read-Eval-Print Loop, meaning users can enter calculations or expressions, and eva evaluates and displays the results immediately. This interactive nature provides a convenient way to experiment with calculations and perform computations in real-time.**Syntax highlighting**: eva incorporates syntax highlighting, which visually distinguishes different elements of the calculation or expression being entered. This feature enhances readability and helps identify errors or inconsistencies in the input.**Persistent history**: eva maintains a persistent history of calculations entered in previous sessions. This allows users to recall and reuse previous calculations easily, which can be particularly helpful when performing repetitive or iterative calculations.**Customization options**: eva provides customization options to tailor the calculator environment to personal preferences. Users can configure aspects such as the display format, precision, and other settings to align with their specific requirements.**Error handling**: eva includes error handling mechanisms to notify users of any syntax errors, mathematical errors, or invalid inputs. This assists in catching and addressing mistakes or inconsistencies in calculations.**Command-line interface**: eva is primarily used through a command-line interface, where users enter calculations and view the results. This makes it accessible and suitable for use in shell scripts, automation, or interactive command-line sessions.**Open-source and extensibility**: eva is an open-source project, allowing users to inspect and modify its source code. This promotes community contributions, improvements, and the development of extensions or additional features.

eva serves as a user-friendly and versatile calculator REPL, providing a simple yet powerful tool for performing mathematical calculations. With its syntax highlighting, persistent history, and interactive nature, it offers an efficient and enjoyable calculation experience with added features beyond a traditional calculator.

## eva Command Examples

1. Run the calculator in interactive mode:

# eva

2. Calculate the result of an expression:

# eva "(1 + 2) * 2 ^ 2"

3. Calculate an expression forcing the number of decimal places to 5:

# eva --fix 5 "5 / 3"

4. Calculate an expression with sine and cosine:

# eva "sin(1) + cos(1)"