X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=mudsync%2Fparser.scm;h=efda86e3b26c536bd5662355912dd2bd7101bf78;hb=055ce4c85ccf38385b80d1873927e059f7b58a20;hp=3d84195206cce90e0923c7fb40420691d3574f5a;hpb=1c65eb772aaa7c3a4278b95bc02660dc79c25438;p=mudsync.git diff --git a/mudsync/parser.scm b/mudsync/parser.scm index 3d84195..efda86e 100644 --- a/mudsync/parser.scm +++ b/mudsync/parser.scm @@ -61,11 +61,12 @@ ;; definite and indefinite, but not partitive articles (define article '(or "the" "a" "an")) -(define preposition '(or "with" "in" "on" "out of" "at")) +(define preposition '(or "with" "in" "inside" "into" "on" "out" "out of" + "at" "as" "to" "about" "from")) (define indirect-irx (sre->irregex - `(: (? (: ,preposition (+ space))) ; possibly a preposition (ignored) + `(: (? (: ,preposition (+ space))) ; possibly a preposition (? (: ,article (+ space))) ; possibly an article (ignored) (=> direct-obj (* any)) ; direct object (kept) (+ space) @@ -93,14 +94,14 @@ (define (cmatch-direct-obj-greedy phrase) ;; Turns out this uses the same semantics as splitting verb/rest - (match (split-verb-and-rest string) + (match (split-verb-and-rest phrase) ((direct-obj . rest) (list #:direct-obj direct-obj #:rest rest)) (#f #f))) (define (cmatch-greedy phrase) - `((line . ,phrase))) + `(#:phrase ,phrase)) ;; (define say-example "say I really need to get going.") ;; (define attack-sword-example "hit goblin with sword")