Syntactic sugars are easy to implement with a pre-processor. For a simple course project compiler, we may skip this and prefer to avoid implementing syntactic sugars in the YACC program. See Sections 5.1, 5.2 and 5.3. Another important language restriction, which is described at the end of the previous section, is the fact that an actual parameter cannot be a function call. This is made on purpose in order to limit the complexity of the type checking.