Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > b03c44838559deaeff848c57e893606a > files > 1886

boost-examples-1.48.0-14.fc17.noarch.rpm

; The calculator in spirit.scheme

(define expression) ; forward declaration

(define factor
    (qi:|
        (qi:int_)
        (qi:>> (qi:char_ "(") (expression) (qi:char_ ")"))
        (qi:>> (qi:char_ "-") (factor))
        (qi:>> (qi:char_ "+") (factor))))

(define term
    (qi:>> (factor)
        (qi:*
            (qi:|
                (qi:>> (qi:char_ "*") (factor))
                (qi:>> (qi:char_ "/") (factor))))))

(define expression
    (qi:>> (term)
        (qi:*
            (qi:|
                (qi:>> (qi:char_ "+") (term))
                (qi:>> (qi:char_ "-") (term))))))