https://blog.devgenius.io/implement-rule-systems-in-c-with-a-boolean-expression-interpreter-cb28f76caf2d