aboutsummaryrefslogtreecommitdiff
path: root/scm/verbop.scm
diff options
context:
space:
mode:
Diffstat (limited to 'scm/verbop.scm')
-rw-r--r--scm/verbop.scm27
1 files changed, 25 insertions, 2 deletions
diff --git a/scm/verbop.scm b/scm/verbop.scm
index ee86035..0fff38f 100644
--- a/scm/verbop.scm
+++ b/scm/verbop.scm
@@ -545,7 +545,7 @@ VALUES (~Q,~Q,~Q,~Q)"
((xmltrans:parent? "t")
(set! tense-prop (cons (cons "accmap" text) tense-prop)))
(else
- (xmltrans:parse-error #f elt " not a child of v or t")))
+ (xmltrans:parse-error #f "accmap not a child of v or t")))
#f)
;;; <act>...</act> - Define conjugation in active voice
@@ -646,6 +646,23 @@ VALUES (~Q,~Q,~Q,~Q)"
(mood-set name (get-tense)))
#f)
+(xmltrans:end-tag
+ "prop"
+ (tag attr text)
+ (check-parent tag "t")
+ (let ((name (xmltrans:attr attr "name")))
+ (cond
+ ((not name)
+ (begin
+ (xmltrans:parse-error #f "Required attribute `name' not specified")
+ (mark-invalid)))
+ ((xmltrans:parent? "t")
+ (set! tense-prop (cons (cons name text) tense-prop)))
+ (else
+ (xmltrans:parse-error #f "prop not a child of t"))))
+ #f)
+
+
;;; <p n="[sp]" n="[123]">...</p> - Define a (grammatical) person
(xmltrans:end-tag
"p"
@@ -679,7 +696,13 @@ VALUES (~Q,~Q,~Q,~Q)"
(else
(xmltrans:parse-error #f "Invalid value for `n'")
(return)))
- (tense-set elt text))))
+ (cond
+ ((xmltrans:attr attr "prop")
+ (set! tense-prop (cons (cons (number->string (1+ elt)) text) tense-prop))
+ (if (not (member "default" tense-prop))
+ (set! tense-prop (cons (cons "default" #t) tense-prop))))
+ (else
+ (tense-set elt text))))))
#f)

Return to:

Send suggestions and report system problems to the System administrator.