HIGH and LOW are #defines in wiring.h, so the compiler replaces them by 1 and 0 when you compile:
#define HIGH 0x1
#define LOW 0x0The same is true for INPUT and OUTPUT.
As far as I know, the Arduino software is not compiling your code, the GCC C/C++ compiler is.
- Ben
Quite correct. The Ardino IDE is, essentially, a "pre-processor" which takes the various Arduino 'defines' and command directives and builds a .cpp file which then gets fed to the gcc compiler.
cheers ... BBR