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

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

---

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

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

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

---

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

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

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

---

(source_file
  (contract_declaration
    name: (identifier)
    body: (contract_body 
        (function_definition
         function_name: (identifier)
         body: (function_body 
            (expression_statement (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
         function_name: (identifier)
         body: (function_body 
            (expression_statement (string_literal (string)))
            (expression_statement (string_literal (string)))
            (expression_statement (string_literal (string))) 
            (expression_statement (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
         function_name: (identifier)
         body: (function_body 
            (expression_statement (hex_string_literal))
            (expression_statement (hex_string_literal)))))))

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

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

---

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

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

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

---

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


    