removed Void data type from the Grammar. Added a function usage example. Now parsing correctly 'def func :: () -> Int', 'def func :: Int,Bool -> Int', 'def func :: Int', 'def func :: ()'
Added errors for: Using procedures in expressions, using functions as statements, using functions as variables, using variables as functions, calling functions with wrong arguments. Function checking fully working. Now using '(Int) + (Void)' doesn't print an error (assuming it prints an error about whatever made that '(Void)' happen).
removing ArgumentNumber error, now it falls in ArgumentDataType
changed ArgumentDataType to FunctionArguments