hcl/ext
Martin Atkins 34e27c038a hcl: UnwrapExpression and UnwrapExpressionUntil
A pattern has emerged of wrapping Expression instances with other
Expressions in order to subtly modify their behavior. A key example of
this is in ext/dynblock, where wrap an expression in order to introduce
our additional iteration variable for expressions in dynamic blocks.

Rather than having each wrapper expression implement wrapping
implementations for our various syntax-level-analysis functions (like
ExprList and AbsTraversalForExpr), instead we define a standard mechanism
to unwrap expressions back to the lowest-level object -- usually an AST
node -- and then use this in all of our analyses that look at the
expression's structure rather than its value.
2018-01-27 09:10:18 -08:00
..
dynblock hcl: UnwrapExpression and UnwrapExpressionUntil 2018-01-27 09:10:18 -08:00
include gohcl: rename struct tag prefix from "zcl:" to "hcl:" 2017-09-11 17:29:56 -07:00
transform Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
userfunc Update doc comments and readmes for zcl -> HCL. 2017-09-11 16:56:31 -07:00
README.md Update doc comments and readmes for zcl -> HCL. 2017-09-11 16:56:31 -07:00

HCL Extensions

This directory contains some packages implementing some extensions to HCL that add features by building on the core API in the main hcl package.

These serve as optional language extensions for use-cases that are limited only to specific callers. Generally these make the language more expressive at the expense of increased dynamic behavior that may be undesirable for applications that need to impose more rigid structure on configuration.