# CondParser
`CondParser` reads conditions like
`(':foo' or ("toto" == true AND (12 != 13 OR false))) and true` and transform them
either in an ast with `parse/1`, or in json with `to_json/1`.
Ast looks like this:
```
{:and_op,
{:or_op, ":foo",
{:and_op,
{:eq_op, "toto", true},
{:or_op,
{:not_eq_op, 12, 13},
false
}
}
},
true
}
```
Json looks like this:
```json
{
"left": {
"left": ":foo",
"op": "or",
"right": {
"left": { "left": "toto", "op": "eq", "right": true },
"op": "and",
"right": {
"left": { "left": 12, "op": "not_eq", "right": 13 },
"op": "or",
"right": false
}
}
},
"op": "and",
"right": true
}
```
## Installation
The package can be installed
by adding `cond_parser` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:cond_parser, "~> 1.0.0"}
]
end
```
## Documentation
Documentation can be found in [hexdoc](https://hexdocs.pm/cond_parser/CondParser.html)
## Tests
You can run tests with:
```
mix test
```