Akcje: (SETR <reg> <form>) powoduje że rejestr <reg> przyjmuje wartość wyliczoną z <form> (SETRQ <reg> <value>) bezpośrednio podstawia <value> to <reg> (ADDL <reg> <form>) zamiast zastąpić wartość w rejestrze, wyliczona wartość <form> dodawana jest do lewej strony listy (ADDR <reg> <form>) podobnie do ADDL tylko do prawej strony listy (SENDR <reg> <form>) wstępna akcja używana tylko dla krawędzi PUSH; ustawia rejestr <reg> na wartość <form> na niższym poziomie rekurencji; efektem jest, że sieć niższego poziomu jest wołana niczym proceura z parametrem przesyłanym przeze SENDR (SENDRQ <reg> <value>) - tak się ma SENDR jak SETRQ do SETR (LIFTR <reg> <form>) różni się od SENDR w tym, że ustawia rejestr na wartość <form> poziomu powyżej bieżącego (HOLD <constit-type> <form>) wkłada wskazane <form> na listę HOLD jako element <constit-type>. Lista HOLD jest globalna, widzialna przez wszystkie poziomy, ta akcja działa razem z VIR (VERIFY <form>) drugi test dla <form>
gramatyka dla :
(defatn anbncn (abc (wrd a t (hold 'a 'a) (to abc/a))) (abc/a (wrd b t (to abc/b)) (push abc t (to abc/ab))) (abc/ab (wrd c t (to abc/abc))) (abc/abc (pop t)) (abc/b (vir a t (to abc/ba))) (abc/ba (wrd c t (to abc/abc)) (wrd b t (to abc/b))))
Składnia opisu przypomina Lisp czy Clojure.
Przypisy
Kategoria:Teoria automatów