Introspekce
Introspekce:
Průběh funkce parse lze zobrazit pomocí funkce parse-trace.
PARSE parse-trace
Provede parsování vstupu a rovněž vytiskne průběh procesu krok za krokem.
a: ["fox" "owl" "rat"]
print parse-trace a [[ "box" | "fox" ] "owl" "rat"]
-->
match: [ ["cow" | "fox"] "owl" "rat"]
input: ["fox" "owl" "rat"]
-->
match: ["cow" | "fox"]
input: ["fox" "owl" "rat"]
==> not matched
match: ["fox"]
input: ["fox" "owl" "rat"]
==> matched
<--
match: ["owl" "rat"]
input: ["owl" "rat"]
==> matched
match: ["rat"]
input: ["rat"]
==> matched
return: true
true
Průběh procesu parsování lze také zjistit vhodným vložením příkazů print :
a: ["fox" "owl" "rat"]
print parse a ["fox" (print "reached fox")
"owl" (print "reached owl")
"rat" (print "reached the end") ]
reached fox
reached owl
reached the end
true