Annotation of 43BSD/contrib/icon/samples/recogn.icn, revision 1.1

1.1     ! root        1: #
        !             2: #          C F L   R E C O G N I T I O N
        !             3: #
        !             4: 
        !             5: #  This program takes strings from standard input and determines
        !             6: #  whether or not they are sentences in the language defined by <s>.
        !             7: 
        !             8: procedure main()
        !             9:    local line
        !            10:    while line := read() do
        !            11:       if recogn(s,line) then write("accepted") else write("rejected")
        !            12: end
        !            13: 
        !            14: procedure recogn(goal,text)
        !            15:    return text ? (goal() & pos(0))
        !            16: end
        !            17: 
        !            18: #  <s> ::= a <s> | <t> b | c
        !            19: 
        !            20: procedure s()
        !            21:    suspend (="a" || s()) | (t() || ="b") | ="c"
        !            22: end
        !            23: 
        !            24: #  <t> ::= d <s> d | e | f
        !            25: 
        !            26: procedure t()
        !            27:    suspend (="d" || s() || ="d") | ="e" | ="f"
        !            28: end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.