hcl/ext
Martin Atkins be66a72aa8 ext/typeexpr: HCL extension for "type expressions"
This uses the expression static analysis features to interpret
a combination of static calls and static traversals as the description
of a type.

This is intended for situations where applications need to accept type
information from their end-users, providing a concise syntax for doing
so.

Since this is implemented using static analysis, the type vocabulary is
constrained only to keywords representing primitive types and type
construction functions for complex types. No other expression elements
are allowed.

A separate function is provided for parsing type constraints, which allows
the additonal keyword "any" to represent the dynamic pseudo-type.

Finally, a helper function is provided to convert a type back into a
string representation resembling the original input, as an aid to
applications that need to produce error messages relating to user-entered
types.
2018-03-04 14:45:25 -08:00
..
dynblock hcl: UnwrapExpression and UnwrapExpressionUntil 2018-01-27 09:10:18 -08:00
include ext/include: update stale reference to "zcl" 2018-01-27 11:03:05 -08:00
transform Move the zcl package and its two parsing subpackages to "hcl" names 2017-09-11 16:40:37 -07:00
typeexpr ext/typeexpr: HCL extension for "type expressions" 2018-03-04 14:45:25 -08:00
userfunc ext/userfunc: use bare identifiers for param names 2018-02-04 11:20:42 -08: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.