=========
expr add
=========

2013-05-18 * "Test"
    Assets:Something    12 + 3 USD
    Assets:Something   7.5 + 3.1 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (plus) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (plus) (number))
                    (currency)
                )
            )
    )
)

==========
expr sub
=========

2013-05-18 * "Test"
    Assets:Something    12 - 3 USD
    Assets:Something   7.5 - 3.1 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (minus) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (minus) (number))
                    (currency)
                )
            )
    )
)

==========
expr mult
==========

2013-05-18 * "Test"
    Assets:Something    12 * 3 USD
    Assets:Something   7.5 * 3.1 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (asterisk) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (asterisk) (number))
                    (currency)
                )
            )
    )
)

=========
expr div
========

2013-05-18 * "Test"
    Assets:Something    12 / 3 USD
    Assets:Something   7.5 / 3 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (slash) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr (number) (slash) (number))
                    (currency)
                )
            )
    )
)

=========
expr neg
========

2013-05-18 * "Test"
    Assets:Something    -12 USD
    Assets:Something   -7.5 USD
    Assets:Something   - 7.5 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (minus) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (minus) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (minus) (number))
                    (currency)
                )
            )
    )
)

=========
expr pos
========

2013-05-18 * "Test"
    Assets:Something    +12 USD
    Assets:Something   -7.5 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (plus) (number))
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (minus) (number))
                    (currency)
                )
            )
    )
)

==============
expr predence
=============

2013-05-18 * "Test"
    Assets:Something   2 * 3 + 4 USD
    Assets:Something   2 + 3 * 4 USD
    Assets:Something   2 + -3 * 4 USD
    Assets:Something   (2 + -3) * 4 USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (binary_number_expr (number) (asterisk) (number))
                        (plus)
                        (number)
                    )
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (number)
                        (plus)
                        (binary_number_expr (number) (asterisk) (number))
                    )
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (number)
                        (plus)
                        (binary_number_expr (unary_number_expr (minus) (number)) (asterisk) (number))
                    )
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (binary_number_expr (number) (plus) (unary_number_expr (minus) (number)))
                        (asterisk)
                        (number)
                    )
                    (currency)
                )
            )
    )
)

============
expr groups
============

2013-05-18 * "Test"
    Assets:Something   (2 + -3) * 4 USD
    Assets:Something   2 * (2 + -3) USD

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (binary_number_expr (number) (plus) (unary_number_expr (minus) (number)))
                        (asterisk)
                        (number)
                    )
                    (currency)
                )
            )
            (posting
                (account)
                (incomplete_amount
                    (binary_number_expr
                        (number)
                        (asterisk)
                        (binary_number_expr (number) (plus) (unary_number_expr (minus) (number)))
                    )
                    (currency)
                )
            )
    )
)

======================
expr different places
======================

2013-05-18 * "Test"
    Assets:Something   -(3 * 4) HOOL {120.01 * 2.1 USD} @ 134.02 * 2.1 USD
    Assets:Something   1000000 USD ;; No balance checks.

2014-01-01 balance Assets:Something  3 * 4 * 120.01 * 2.1  USD
    number: -(5662.23 + 22.3)

---

(file
    (transaction
        (date)
        (txn)
        (narration)
            (posting
                (account)
                (incomplete_amount
                    (unary_number_expr (minus) (binary_number_expr (number) (asterisk) (number)))
                    (currency)
                )
                (cost_spec
                        (cost_comp
                            (compound_amount
                                (binary_number_expr (number) (asterisk) (number))
                                (currency)
                            )
                        )
                )
                (at)
                (price_annotation
                    (incomplete_amount
                        (binary_number_expr (number) (asterisk) (number))
                        (currency)
                    )
                )
            )
            (posting
                (account)
                (incomplete_amount (number) (currency))
                (comment)
            )
    )
    (balance
        (date)
        (account)
        (amount_tolerance
            (binary_number_expr
                (binary_number_expr
                    (binary_number_expr (number) (asterisk) (number))
                    (asterisk)
                    (number)
                )
                (asterisk)
                (number)
            )
            (currency)
        )
            (key_value
                (key)
                (value
                    (unary_number_expr (minus) (binary_number_expr (number) (plus) (number)))
                )
            )
    )
)
