rewrote promise_type logic

reduce the shift/reduce error by 3 and is now logical correct + unit test for promise type unknown token