Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 2f550ead4f191b130f5eca658403e991 > files > 1928

boost-examples-1.50.0-7.fc18.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))))))