Parser - Hikkihiki/LogicVerifier GitHub Wiki

Why do we need a parser?

  1. To validate the syntax of logical statements. (Not the truth of the statement. The truth is guaranteed to be correct if we follow the production rules of logics.)
  2. To extract elements out of logical statements and map with existing production rules.

Requirement

  1. Must be unambiguous (one statement, one deterministic interpretation)
  2. Fast
  3. Easily replaceable, it is very likely that we would change the parser in the future.

Preferred language of choice: Python (mathematical libraries available) JS (fast, browser support) C / C++ (fast)

Potential candidate: PEG.js