================================================================================
Integer Literal
================================================================================

contract Example {
    function example() {
        11;
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (number_literal)))))))))

================================================================================
String Literal
================================================================================

contract Example {
    function example() {
        "example";
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string))))))))))

================================================================================
Double String Literal
================================================================================

contract Example {
    function example() {
        "example" "another string";
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string)
                  (string))))))))))

================================================================================
String Literal Escapes
================================================================================

contract Example {
    function example() {
        "example ' ";
        "\\yeah";
        'also a String with "';
        "";
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string)))))
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string)))))
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string)))))
          (statement
            (expression_statement
              (expression
                (string_literal
                  (string))))))))))

================================================================================
Hex String Literal
================================================================================

contract Example {
    function example() {
        hex "aa";
        hex "aa_bb";
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (hex_string_literal))))
          (statement
            (expression_statement
              (expression
                (hex_string_literal)))))))))

================================================================================
Unicode String Literal
================================================================================

contract Example {
    function example() {
        unicode"asdf";
        unicode"😁";
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (unicode_string_literal))))
          (statement
            (expression_statement
              (expression
                (unicode_string_literal)))))))))

================================================================================
Bool Literal
================================================================================

contract Example {
    function example() {
        true;
        false;
    }
}

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

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body
      (function_definition
        name: (identifier)
        body: (function_body
          (statement
            (expression_statement
              (expression
                (boolean_literal
                  (true)))))
          (statement
            (expression_statement
              (expression
                (boolean_literal
                  (false))))))))))
