I am studying on how to make a bytecode interpreter (the language i am studing is clox at the site https://craftinginterpreters.com/). In it a valid clox program is defined as a list of declarations. A declaration is defined as either a class, function or variable declaration OR as a statement.
Now in C, i know there are different kinds of declarations and there are different kinds of statements but none of the types of declarations are a statement and none of the type of statements are a declaration. I think any possible line of C code is either one or the other so how do the standard define a C program ?
A list of lines that can be either a definition or a statement ?