C parser implementation