hcl/hcl
Martin Atkins f87a794800 hclsyntax: check for and report incorrect peeker stack discipline
The peeker has an "include newlines" stack which the parser manipulates
to switch between the newline-sensitive and non-sensitive scanning modes.
If the parser code fails to manage this stack correctly (for example,
due to a missed call to PopIncludeNewlines) then this causes very
confusing downstream errors that are otherwise difficult to debug.

As an extra debug tool for when errors _are_ detected, when this problem
is encountered during tests we are able to produce a visualization of the
pushes and pops to help the test developer see which pushes and pops
seem out of place.

This is a lot of ugly extra code but it's usually disabled and seems worth
it to allow us to catch quickly bugs that would otherwise be quite
difficult to diagnose.
2018-02-16 17:37:22 -08:00
..
hclsyntax hclsyntax: check for and report incorrect peeker stack discipline 2018-02-16 17:37:22 -08:00
integrationtest integrationtest: include dynblock usage in the "terraformlike" test 2018-01-27 09:10:18 -08:00
json json: update stale references to "zcl" 2018-01-27 11:03:05 -08:00
diagnostic_text_test.go hcl: Simplify the text DiagnosticWriter using new Range functions 2018-01-14 12:07:33 -08:00
diagnostic_text.go hcl: highlight the subject when printing a diagnostic source snippet 2018-01-14 12:25:35 -08:00
diagnostic.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
didyoumean.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
doc.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
eval_context.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
expr_list.go hcl: UnwrapExpression and UnwrapExpressionUntil 2018-01-27 09:10:18 -08:00
expr_unwrap.go hcl: UnwrapExpression and UnwrapExpressionUntil 2018-01-27 09:10:18 -08:00
merged_test.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
merged.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
ops.go hcl: update stale references to "zcl" 2018-01-27 11:03:05 -08:00
pos_scanner_test.go hcl: RangeScanner helper 2018-01-14 11:24:19 -08:00
pos_scanner.go hcl: RangeScanner helper 2018-01-14 11:24:19 -08:00
pos_test.go hcl: SourceRange.PartitionAround 2018-01-14 11:51:05 -08:00
pos.go hcl: SourceRange.PartitionAround 2018-01-14 11:51:05 -08:00
schema.go Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
spec.md update zclsyntax to hclsyntax in various comments and strings 2018-01-23 21:54:38 -08:00
static_expr.go hcl: StaticExpr function for making synthetic expressions 2017-09-20 16:22:05 -07:00
structure.go More miscellaneous renaming of ZCL to HCL. 2017-09-11 18:36:56 -07:00
traversal_for_expr_test.go hcl: ExprAsKeyword function 2018-02-03 08:55:50 -08:00
traversal_for_expr.go hcl: ExprAsKeyword function 2018-02-03 08:55:50 -08:00
traversal.go hcl: Export the source range for a Traversal 2018-01-13 23:01:11 -08:00