Spaces:
Runtime error
Runtime error
File size: 1,892 Bytes
2803d7e | 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | type readable : t {
predicates {
free_read(readable);
read_requires(readable, o);
prepared(readable);
read_keeps_use(readable);
read_consumes_use(readable);
}
rules {
read/free :: $at(P, r) & $at(readable, r) & $free_read(readable) -> at(P, r);
read/prepared :: $at(P, r) & $at(readable, r) & $prepared(readable) -> at(P, r);
use/readable/keep :: $at(P, r) & $at(readable, r) & $in(o, I) & $read_requires(readable, o) & $read_keeps_use(readable) -> prepared(readable);
use/readable/consume :: $at(P, r) & $at(readable, r) & in(o, I) & $read_requires(readable, o) & $read_consumes_use(readable) -> prepared(readable);
}
reverse_rules {
read/free :: read/free;
read/prepared :: read/prepared;
use/readable/keep :: use/readable/keep;
use/readable/consume :: use/readable/consume;
}
inform7 {
type {
kind :: "readable-like";
definition :: "readable-like is a kind of thing. readable-like is fixed in place.";
}
predicates {
free_read(readable) :: "";
read_requires(readable, o) :: "";
prepared(readable) :: "";
read_keeps_use(readable) :: "";
read_consumes_use(readable) :: "";
}
commands {
read/free :: "read {readable}" :: "examining the {readable}";
read/prepared :: "read {readable}" :: "examining the {readable}";
use/readable/keep :: "use {o} on {readable}" :: "unlocking the {readable} with the {o}";
use/readable/consume :: "use {o} on {readable}" :: "unlocking the {readable} with the {o}";
}
code :: """
Understand "read [something]" as examining.
Understand "use [something] on [something]" as unlocking it with.
""";
}
}
|