Add small improvements to the small improvements post.

This commit is contained in:
Danila Fedorin 2019-08-27 00:26:02 -07:00
parent 8ba501bd84
commit b012e557f0
1 changed files with 7 additions and 4 deletions

View File

@ -69,7 +69,7 @@ but we don't need indentation, or recursion:
{{< codelines "C++" "compiler/04/ast.cpp" 116 121 >}} {{< codelines "C++" "compiler/04/ast.cpp" 116 121 >}}
Let's print the bodies of each function we receive from the parser: Let's print the bodies of each function we receive from the parser:
{{< codelines "C++" "compiler/04/main.cpp" 35 50 >}} {{< codelines "C++" "compiler/04/main.cpp" 44 53 >}}
### Printing Types ### Printing Types
Types are another thing that we want to be able to inspect, so let's Types are another thing that we want to be able to inspect, so let's
@ -83,11 +83,13 @@ The implementation is simple enough:
Let's also print out the types we infer. We'll make it a separate loop Let's also print out the types we infer. We'll make it a separate loop
in the `typecheck_program` function, because it's mostly just in the `typecheck_program` function, because it's mostly just
for debugging purposes. for debugging purposes:
{{< codelines "C++" "compiler/04/main.cpp" 34 38 >}}
### Fixing Bugs ### Fixing Bugs
We actually discover not one, but two bugs in our implementation thanks We actually discover not one, but two bugs in our implementation thanks
to this output. Observe the output for `works3.txt`: to the output we get from printing trees and types.
Observe the output for `works3.txt`:
``` ```
length l: length l:
CASE: CASE:
@ -127,7 +129,8 @@ We replace the fragment with the proper reverse iteration:
### Setting up CMake ### Setting up CMake
This would be extremely easy if not for Flex and Bison. We start with the usual: We will set up CMake as our build system. This would be extremely easy
if not for Flex and Bison, but it's not hard either way. We start with the usual:
{{< codelines "CMake" "compiler/04/CMakeLists.txt" 1 2 >}} {{< codelines "CMake" "compiler/04/CMakeLists.txt" 1 2 >}}
Next, we want to set up Flex and Bison. CMake provides two commands for this: Next, we want to set up Flex and Bison. CMake provides two commands for this: