Commit Graph

6 Commits

Author SHA1 Message Date
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
Martin Atkins
12f0f2dbc5 specsuite: a few additional tests for structure
This is still not fully comprehensive, but tests some basic functionality.
2018-08-12 18:18:58 -07:00
Martin Atkins
a5c0f7fdcc cmd/hclspecsuite: Check for expected diagnostics
When a test file declares one or more expected diagnostics, we check those
instead of checking the result value. The severities and source ranges
must match.

We don't test the error messages themselves because they are not part of
the specification and may vary between implementations or, in future, be
translated into other languages.
2018-08-12 10:08:27 -07:00
Martin Atkins
65f9271b86 specsuite: Initial test for top-level attribute handling 2018-08-10 08:57:59 -07:00
Martin Atkins
db04b3dffe specsuites: Tests for comment parsing 2018-08-10 08:51:51 -07:00
Martin Atkins
0956c193b7 specsuite: Start of the harness for the specification test suite 2018-08-09 19:29:32 -07:00