A parser for the Lynx declarative modeling language - a statically typed language for expressing combinatorial optimization problems