implemented many java type check features

- redid functional grammar so it doesn’t expand too much/often
- added if expression in functional
- keywords parse as “”kw-* tokens