================================================================================
Basic keyword invocations
================================================================================

*** Keywords ***

Test Keyword
  I Am A Simple Statement

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword))))))))

================================================================================
Keyword invocations with arguments
================================================================================

*** Keywords ***

Test Keyword
  I Am A Simple Statement     First argument    Second argument

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (text_chunk))
                (argument
                  (text_chunk))))))))))

================================================================================
Keyword invocations with line continuations
================================================================================

*** Keywords ***

Test Keyword
  I Am A Simple Statement     First argument    Second argument
  ...                         Third argument    Fourth argument
  ...                         And so on

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (text_chunk))
                (argument
                  (text_chunk))
                (continuation
                  (ellipses)
                  (argument
                    (text_chunk))
                  (argument
                    (text_chunk)))
                (continuation
                  (ellipses)
                  (argument
                    (text_chunk)))))))))))

================================================================================
Scalar variables, list variables, dictionary variables
================================================================================

*** Keywords ***

Test Keyword
  Simple Statement    ${SOME_VARIABLE}    @{LIST_VARIABLE}    &{DICT_VARIABLE}

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (scalar_variable
                    (variable_name)))
                (argument
                  (list_variable
                    (variable_name)))
                (argument
                  (dictionary_variable
                    (variable_name)))))))))))

================================================================================
Scalar variable interpolation
================================================================================

*** Keywords ***

Test Keyword
  Simple Statement    ${SOME_VARIABLE}

  Simple Statement    Interpolation ${VARIABLE} example

  Simple Statement    no${VARIABLE}space

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (scalar_variable
                    (variable_name))))))
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (text_chunk)
                  (scalar_variable
                    (variable_name))
                  (text_chunk)))))
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (text_chunk)
                  (scalar_variable
                    (variable_name))
                  (text_chunk))))))))))

================================================================================
Simple variable assignment
================================================================================

*** Keywords ***

Test Keyword
  ${My Variable}        Some Keyword    Some Argument   ${Foo}
  ${Second Variable} =  The Equals Symbol Is Optional

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (variable_assignment
              (variable_name)
              (arguments
                (argument
                  (text_chunk))
                (argument
                  (text_chunk))
                (argument
                  (scalar_variable
                    (variable_name))))))
          (statement
            (variable_assignment
              (variable_name)
              (arguments
                (argument
                  (text_chunk))))))))))

================================================================================
Inline Python evaluation
================================================================================

*** Keywords ***

Test Keyword
  Some Keyword   ${{len(${items})}}

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

(source_file
  (section
    (keywords_section
      (section_header)
      (keyword_definition
        (name)
        (body
          (statement
            (keyword_invocation
              (keyword)
              (arguments
                (argument
                  (inline_python_expression
                    (python_expression)))))))))))
