README.md

# FusionDsl

FusionDsl is a domain specific language build on top of elixir.

**FusionDsl is still under heavy development and change. refere to [Todo list](#todo-list)**

## Todo list

### Logical functionalities
 - [x] basic types (numbers, boolean, strings)
 - [x] define maps
 - [x] define arrays
 - [x] Addition of numbers
 - [x] Additions of Strings
 - [x] Addition of arrays
 - [x] Insert between arrays
 - [x] Remove from arrays
 - [x] Get specific element of variable
 - [x] Subtract numbers
 - [x] Divide numbers
 - [x] Multiply numbers
 - [x] Remaining of division of numbers
 - [x] Defining mutable variables
 - [x] Defining immutable variables
 - [x] Setting variables
 - [x] Getting variables
 - [x] += operator for string and numbers
 - [x] -= operator for numbers
 - [x] \*= for numbers
 - [x] /= for numbers
 - [x] Dispose variables
 - [x] Getting map object value
 - [x] Setting map object value
 - [x] Remove object from map
 - [x] String/Array contains
 - [x] String/Array index_of
 - [x] String/Array index_of_last
 - [x] String/Array length
 - [x] String/Array starts_with
 - [x] String/Array ends_with
 - [x] String/Array replace
 - [x] String/Array reverse
 - [x] Substring / Subarray
 - [x] Regex match
 - [x] Regex replace
 - [x] Regex run
 - [x] Regex scan
 - [x] Defining procedures
 - [x] Calling procedures
 - [x] Procedure return
 - [x] Condition (if, else)
 - [x] `while` loop
 - [x] loop break
 - [x] loop continue
 - [x] parse number strings
 - [x] to_string numbers
 - [x] cast numbers to int
 - [x] round floats
 - [x] wait
 - [x] true/false keywords

### Integration
 - [ ] add new functions to config
 - [ ] add new Environments
 - [ ] implement functions