Added functions definitions to the grammar and to the language
definition. Updated the printer to properly print functions