================================================================================
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))))))

================================================================================
Variables can begin or end with underscores
================================================================================

ENV TEST="$_foo${bar_}" 

--------------------------------------------------------------------------------

(source_file
  (env_instruction
    (env_pair
      (unquoted_string)
      (double_quoted_string
        (expansion
          (variable))
        (expansion
          (variable))))))

================================================================================
Empty Env
================================================================================

ENV TEST= \
	TEST_2= \
	TEST_3="foo${bar}" \
	TEST_4= 
ENV FOO=

--------------------------------------------------------------------------------

(source_file
  (env_instruction
    (env_pair
      (unquoted_string))
    (line_continuation)
    (env_pair
      (unquoted_string))
    (line_continuation)
    (env_pair
      (unquoted_string)
      (double_quoted_string
        (expansion
          (variable))))
    (line_continuation)
    (env_pair
      (unquoted_string)))
  (env_instruction
    (env_pair
      (unquoted_string))))

================================================================================
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))))))
