M>Ну, если впереди, в тексте программы, есть typedef int free;, то программа будет синтаксически верной. В чем проблема?
Это я к тому, что метод компиляции тут не при чем.
Кусок программы является либо синтаксически верным, либо нет, в зависимости от контекста. А это и есть контекстная зависимость.