Compiler Design Question $\text{Consider the following ANSI C code:}$
int main(){
 Integer x;
 return 0;
}

$\text{What will be the type of error?}$
$\text{a) Lexical}$,
$\text{b) Syntax}$,
$\text{c) Semantic}$,
$\text{d) None}$  $\tag {GATE-CS 2021}$
According to me, Syntax Analysis phase should detect the error as there is no grammar in C which produces Integer x or in tokenized form id id. Any help is appreciated. :)
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.