Compiler Design Question
Your statement &quot;Integer x;&quot; is syntactically &quot;identifier identifier;&quot; which is a perfectly fine variable declaration. Semantically, the first identifier must be defined as a type, and the second identifier must not be defined as a variable in the same scope. The first condition fails, therefore ...
And you might download a copy of the C Standard to check if &quot;int main()&quot; is acceptable, or whether it must be &quot;int main(void)&quot;, which is preferable and might be required.