Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > c4319a002fbffbd136efb21d9adb836b > files > 2084

boost-examples-1.44.0-6.1.mga1.i586.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))))))