==============
Unary minus #1
==============


rule my_rule {
    condition:
        -123
}

---

(yara_file
    (rule
        (rule_head
            (identifier)    
        )    
        (rule_body
            (unary_minus
                (uint_literal
                    (dec_uint_literal_value)
                )
            )    
        )
    )    
)


========================
Unary minus #2 (neg oct)
========================

rule my_rule {
    condition:
        -0o77777
}

---

(yara_file
    (rule
        (rule_head
            (identifier)    
        )    
        (rule_body
            (unary_minus
                (uint_literal
                    (oct_uint_literal_value)
                )
            )   
        )
    )    
)


========================
Unary minus #3 (neg hex)
========================

rule my_rule {
    condition:
        -0xFfaE
}

---

(yara_file
    (rule
        (rule_head
            (identifier)    
        )    
        (rule_body
            (unary_minus
                (uint_literal
                    (hex_uint_literal_value)
                )
            )  
        )
    )    
)


========================
Arithmetic expression #1
========================

rule rule123 {
    condition:
        1+1
}

---

(yara_file
    (rule
        (rule_head
            (identifier)
        )
        (rule_body
            (addition
                (uint_literal
                    (dec_uint_literal_value)
                )
                (uint_literal
                    (dec_uint_literal_value)
                )
            )
        )
    )
)


================================
Arithmetic expression #2 (assoc)
================================

rule rule123 {
    condition:
        1+1-3
}

---

(yara_file
    (rule
        (rule_head
            (identifier)
        )
        (rule_body
            (subtraction
                (addition
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                )
                (uint_literal
                    (dec_uint_literal_value)
                )
            )
        )
    )
)


========================================
Arithmetic expression #3 (op. precedence)
=========================================

rule rule123 {
    condition:
        1+3*4
}

---

(yara_file
    (rule
        (rule_head
            (identifier)
        )
        (rule_body
            (addition
                (uint_literal
                    (dec_uint_literal_value)
                )
                (multiplication
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                )
            )
        )
    )
)

=============================================
Arithmetic expression #4 (multiple operators)
=============================================

rule rule123 {
    condition:
        1\2+3*4-4--4
}

---

(yara_file
    (rule
        (rule_head
            (identifier)
        )
        (rule_body
            (subtraction
                (subtraction
                    (addition
                        (division
                            (uint_literal
                                (dec_uint_literal_value)
                            )
                            (uint_literal
                                (dec_uint_literal_value)
                            )
                        )
                        (multiplication
                            (uint_literal
                                (dec_uint_literal_value)
                            )
                            (uint_literal
                                (dec_uint_literal_value)
                            )
                        )
                    )
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                )
                (unary_minus
                    (uint_literal
                        (dec_uint_literal_value)
                    )
                ) 
            )
        )
    )
)
