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