+ (defevaluator :beginning-of-separators-with-space " *"
+ (lambda ()
+ (set-state :beginning-of-symbols)
+ nil))
+ (defevaluator :beginning-of-symbols "\\n"
+ (lambda ()
+ (if
+ (< 0 *col-no*)
+ "No whitespace only lines"
+ (set-state :beginning-of-separators-with-space))))
+ (defevaluator :beginning-of-symbols ""
+ (lambda ()
+ (set-state :normal)
+ nil))
+ (defevaluator :normal "\\("
+ (lambda ()
+ (push
+ (list *line-no* *col-no*)
+ *form-stack*)
+ nil))
+ (defevaluator :normal "\\)"
+ (lambda ()
+ (let
+ ((form (pop *form-stack*)))
+ (cond
+ ((not form) "Unmatched ending paren")
+ ((< 50 (- *line-no* (car form))) "Forms can't be over 50 lines long")))))
+ (defevaluator :normal "::"
+ (constantly "No internal symbols from other packages"))
+