Commit Graph

4 Commits

Author SHA1 Message Date
Martin Atkins
ee38c67330 specsuite: Tests for the expression language operators 2019-10-01 15:59:10 -07:00
Martin Atkins
48fbad7bf4 specsuite: tests for primitive type literals 2019-10-01 15:59:10 -07:00
Aaron Gallagher
65731f3310 specsuite: tests for flush heredocs with empty lines 2019-08-05 16:24:22 -07:00
Martin Atkins
e8dbb16dbc hcl/hclsyntax: Fix up parsing of flush heredocs
This was implemented a long time ago in the original template parser, but
it was missed in the rewrite of the template parser to make it use a
two-stage parsing strategy.

It's implemented as a post-processing step on the result of the first
stage of parsing, which produces a flat sequence of literal strings,
interpolation markers, and control markers, and prior to the second stage
which matches opening and closing control markers to produce an expression
AST.

It's important to do this at parse time rather than eval time since it is
the static layout of the source code that decides the indentation level,
and so an interpolation marker at the start of a line that itself produces
spaces does not affect the result.
2018-12-13 17:22:41 -08:00