This directory contains an .emb and a set of golden files which correspond to various parsing stages of the .emb. The primary purpose is to highlight changes to the parse tree, tokenization, or (uncooked) intermediate representation in a code review, where the before/after can be seen in side-by-side diffs. The golden files are checked by unit tests, but test failures generally just mean that the files need to be regenerated, not that there is an actual bug.

span_se_log_file_status.emb

The .emb file from which the other files are derived.

span_se_log_file_status.tokens.txt

The tokenization. This file should change very rarely. From the workspace root directory, it can be generated with:

bazel run //front_end:emboss_front_end \
    -- --no-debug-show-header-lines --debug-show-tokenization \
    $(pwd)/testdata/golden/span_se_log_file_status.emb \
    > $(pwd)/testdata/golden/span_se_log_file_status.tokens.txt

span_se_log_file_status.parse_tree.txt

The syntactic parse tree. From the workspace root directory, it can be generated with:

bazel run //front_end:emboss_front_end \
    -- --no-debug-show-header-lines --debug-show-parse-tree \
    $(pwd)/testdata/golden/span_se_log_file_status.emb \
    > $(pwd)/testdata/golden/span_se_log_file_status.parse_tree.txt

span_se_log_file_status.ir.txt

The “uncooked” module-level IR: that is, the IR of only span_se_log_file_status.emb (without the prelude or any imports), straight out of module_ir.py with no “middle end” transformations. From the workspace root directory, it can be generated with:

blaze run //front_end:emboss_front_end \
    -- --no-debug-show-header-lines --debug-show-module-ir \
    $(pwd)/testdata/golden/span_se_log_file_status.emb \
    > $(pwd)/testdata/golden/span_se_log_file_status.ir.txt