251 lines
7.6 KiB
Plaintext
251 lines
7.6 KiB
Plaintext
================================================================================
|
|
simple quoted template expression
|
|
================================================================================
|
|
|
|
foo = "${ var.bar }"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_interpolation
|
|
(expression
|
|
(variable_expr
|
|
(identifier))
|
|
(get_attr
|
|
(identifier))))))))))
|
|
|
|
================================================================================
|
|
empty template interpolation
|
|
================================================================================
|
|
|
|
foo = "${}"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_interpolation)))))))
|
|
|
|
================================================================================
|
|
empty heredoc template
|
|
================================================================================
|
|
|
|
foo = <<END
|
|
END
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(heredoc_template
|
|
(heredoc_start)
|
|
(heredoc_identifier)
|
|
(heredoc_identifier)))))))
|
|
|
|
================================================================================
|
|
heredoc with fake ending
|
|
================================================================================
|
|
|
|
foo = <<END
|
|
END not!
|
|
END
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(heredoc_template
|
|
(heredoc_start)
|
|
(heredoc_identifier)
|
|
(template_literal)
|
|
(heredoc_identifier)))))))
|
|
|
|
================================================================================
|
|
quoted template expression with escaped strings and fake strip marker
|
|
================================================================================
|
|
|
|
foo = "${ " ~ " }"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_interpolation
|
|
(expression
|
|
(literal_value
|
|
(string_lit
|
|
(template_literal)))))))))))
|
|
|
|
================================================================================
|
|
quoted template with nested quoted template
|
|
================================================================================
|
|
|
|
foo = "p-${ foo("v-${a.b}") }"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_literal)
|
|
(template_interpolation
|
|
(expression
|
|
(function_call
|
|
(identifier)
|
|
(function_arguments
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_literal)
|
|
(template_interpolation
|
|
(expression
|
|
(variable_expr
|
|
(identifier))
|
|
(get_attr
|
|
(identifier)))))))))))))))))
|
|
|
|
================================================================================
|
|
quoted template interpolation with strip markers
|
|
================================================================================
|
|
|
|
foo = "hello ${~ "world" ~} hello"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_literal)
|
|
(template_interpolation
|
|
(strip_marker)
|
|
(expression
|
|
(literal_value
|
|
(string_lit
|
|
(template_literal))))
|
|
(strip_marker))
|
|
(template_literal)))))))
|
|
|
|
================================================================================
|
|
quoted template object expression in template
|
|
================================================================================
|
|
|
|
foo = "${ {a=b}[a] }"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(quoted_template
|
|
(template_interpolation
|
|
(expression
|
|
(collection_value
|
|
(object
|
|
(object_elem
|
|
(expression
|
|
(variable_expr
|
|
(identifier)))
|
|
(expression
|
|
(variable_expr
|
|
(identifier))))))
|
|
(index
|
|
(new_index
|
|
(expression
|
|
(variable_expr
|
|
(identifier)))))))))))))
|
|
|
|
================================================================================
|
|
escaped template interpolation start
|
|
================================================================================
|
|
|
|
foo = "hello $${ world"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(literal_value
|
|
(string_lit
|
|
(template_literal)))))))
|
|
|
|
================================================================================
|
|
tricky heredoc
|
|
================================================================================
|
|
|
|
foo = <<END
|
|
contains fake endings
|
|
END (ineligible) END
|
|
END
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(heredoc_template
|
|
(heredoc_start)
|
|
(heredoc_identifier)
|
|
(template_literal)
|
|
(heredoc_identifier)))))))
|
|
|
|
================================================================================
|
|
heredoc with identifier that does not fit into the serialization buffer (should not crash)
|
|
================================================================================
|
|
|
|
foo = <<XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(config_file
|
|
(body
|
|
(attribute
|
|
(identifier)
|
|
(expression
|
|
(template_expr
|
|
(heredoc_template
|
|
(heredoc_start)
|
|
(heredoc_identifier)
|
|
(heredoc_identifier)))))))
|