================================================================================ simple quoted template expression ================================================================================ foo = "${ var.bar }" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (template_expr (quoted_template (quoted_template_start) (template_interpolation (template_interpolation_start) (expression (variable_expr (identifier)) (get_attr (identifier))) (template_interpolation_end)) (quoted_template_end))))))) ================================================================================ empty template interpolation ================================================================================ foo = "${}" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (template_expr (quoted_template (quoted_template_start) (template_interpolation (template_interpolation_start) (template_interpolation_end)) (quoted_template_end))))))) ================================================================================ template for expression in quoted template ================================================================================ foo = "%{ for a in b } prefix-${a} %{ endfor }" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (template_expr (quoted_template (quoted_template_start) (template_directive (template_for (template_for_start (template_directive_start) (identifier) (expression (variable_expr (identifier))) (template_directive_end)) (template_literal) (template_interpolation (template_interpolation_start) (expression (variable_expr (identifier))) (template_interpolation_end)) (template_for_end (template_directive_start) (template_directive_end)))) (quoted_template_end))))))) ================================================================================ escaped template for directive ================================================================================ foo = "%{ for a in b } %%{ endfor } %{ endfor }" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (template_expr (quoted_template (quoted_template_start) (template_directive (template_for (template_for_start (template_directive_start) (identifier) (expression (variable_expr (identifier))) (template_directive_end)) (template_literal) (template_for_end (template_directive_start) (template_directive_end)))) (quoted_template_end))))))) ================================================================================ escaped template for directive 2 ================================================================================ foo = "%%{ for a in b } %%{ endfor }" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end))))))) ================================================================================ template for directive with weird whitespace ================================================================================ foo = "%{ for a in b } %{ endfor }" -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (template_expr (quoted_template (quoted_template_start) (template_directive (template_for (template_for_start (template_directive_start) (identifier) (expression (variable_expr (identifier))) (template_directive_end)) (template_for_end (template_directive_start) (template_directive_end)))) (quoted_template_end))))))) ================================================================================ template for expression in heredoc template ================================================================================ foo = <