fork download
  1. Step one: reads cpp from disk into memory, translating the text to "the basic source
  2. character set" encoding. Trigraphs are replaced
  3.  
  4. if (i>j) ??<std::cout << array??(j??); ??>
  5. BECOMES
  6. if (i>j) {std::cout << array[j]; }
  7.  
  8. Step Two: physical lines are spliced into logical lines
  9.  
  10. if (i>j) \
  11. { std::cout << array[j]; }
  12. BECOMES
  13. if (i>j) { std::cout << array[j]; }
  14.  
  15. Step Three: Tokenizer:
  16.  
  17. if (i>j) /*make sure it's safe*/ { std::cout << array[j]; }
  18. BECOMES
  19. if ( i > j ) { std :: cout << array [ j ] ; }
  20.  
  21. Step Four: Preprocessor executed:
  22.  
  23. #include <string>
  24. BECOMES
  25. template<dadada>
  26. class basic_string {
  27. bla bla bla
  28. };
  29. typdef basic_string<dadada> string;
  30.  
  31.  
  32. Step Five: String literals translated to "execution character set" encoding.
  33. Can't show this step, both sides look the same.
  34.  
  35. Step Six: Adjacent string literal tokens are concatenated.
  36.  
  37. "Hello" "World" "!"
  38. BECOMES
  39. "HelloWorld!"
  40.  
  41. Step Seven: tokens for each cpp file are syntactically and semantically analyzed and translated
  42. as a translation unit.
  43. Can't show this step, text is translated to a assembly of some sort (usually)
  44.  
  45. Step Eight: all cpp files' trees are linked togeather
  46. Can't show this step, text is translated to a assembly of some sort (usually)
  47.  
  48. Step Nine: The assembly is linked against the OS and stuff
  49. Can't show this step, text is translated to a executable of some sort (usually)
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty