==================
Add
==================

ADD /$FOO ./${bar}

---

(source_file
	(add_instruction
		(path
			(expansion
				(variable)))
		(path
			(expansion
				(variable)))))

==================
Copy
==================

COPY $FOO ./${bar}

---

(source_file
	(copy_instruction
		(path
			(expansion
				(variable)))
		(path
			(expansion
				(variable)))))

==================
Special chars
==================

COPY $FOO ./${bar:-abc}

---

(source_file
	(copy_instruction
		(path
			(expansion
				(variable)))
		(path
			(expansion
				(variable)))))

==================
Env
==================

ENV TEST="foo$BAR" \
	TEST_2=foo\ bar$BAZ \
	TEST_3="foo${bar}" \
	TEST_4=foo\ ${baz}bar 

---

(source_file
	(env_instruction
		(env_pair
			name: (unquoted_string)
			value: (double_quoted_string
				(expansion
					(variable))))
		(line_continuation)
		(env_pair
			name: (unquoted_string)
			value: (unquoted_string
				(expansion
					(variable))))
		(line_continuation)
		(env_pair
			name: (unquoted_string)
			value: (double_quoted_string
				(expansion
					(variable))))
		(line_continuation)
		(env_pair
			name: (unquoted_string)
			value: (unquoted_string
				(expansion
					(variable))))))

==================
Expose
==================

EXPOSE $FOO

---

(source_file
	(expose_instruction
		 (expansion
			  (variable))))

==================
From
==================

FROM foo/$FOO:$BAR@sha256:$BAZ AS baz$QUX

---

(source_file
	(from_instruction
		(image_spec
		    name: (image_name
				(expansion
					(variable)))
		    tag: (image_tag
				(expansion
					(variable)))
		    digest: (image_digest
				(expansion
					(variable))))
		as: (image_alias
			(expansion
				(variable)))))

==================
Label
==================

LABEL key="value$FOO"

---

(source_file
	(label_instruction
		(label_pair
			key: (unquoted_string)
			value: (double_quoted_string
				(expansion
					(variable))))))

==================
Stopsignal
==================

STOPSIGNAL $FOO

---

(source_file
	(stopsignal_instruction
		(expansion
			(variable))))

==================
User
==================

USER foo$FOO:bar${bar}

---

(source_file
	(user_instruction
		user: (unquoted_string
			(expansion
				(variable)))
		group: (unquoted_string
			(expansion
				(variable)))))

==================
Volume
==================

volume /my$FOO /my${bar}


---

(source_file
	(volume_instruction
		(path
			(expansion
				(variable)))
		(path
			(expansion
				(variable)))))

==================
Workdir
==================

WORKDIR /tmp/$FOO

---

(source_file
	(workdir_instruction
		(path
			(expansion
				(variable)))))

		
==================
Onbuild
==================

ONBUILD ADD /$FOO ./${bar}

---

(source_file
	(onbuild_instruction
		(add_instruction
			(path
				(expansion
					(variable)))
			(path
				(expansion
					(variable))))))
