- Now semantic functions get shared pointers too, so they can safely return them
- Added optionals and Kleene star (Note that we still avoid calculation of FOLLOW set, so parser can not decide on optional fragments, do not use them, for example, as first nonterminal in production.
  The same applies to Kleene star)
- Parsing of table initializers