HS parser: atoms for you/yourself, distinct your-possessive starting at you
- parse-atom: 'you' and 'yourself' keywords resolve to (ref <name>) so they look up the let-binding the tell-command installs. - 'your <prop>' no longer aliases 'my <prop>' — it's the possessive over the 'you' binding, mirroring 'its' over 'it'. Unblocks 'you symbol represents the thing being told' and 'can take a class and swap it with another via with' (via you/your in tell handlers). Net: tell 6→7 (was 6/10).
This commit is contained in:
@@ -167,10 +167,14 @@
|
|||||||
(do
|
(do
|
||||||
(adv!)
|
(adv!)
|
||||||
(list (make-symbol ".") (list (quote event)) "detail")))
|
(list (make-symbol ".") (list (quote event)) "detail")))
|
||||||
((and (= typ "keyword") (or (= val "my") (= val "your")))
|
((and (= typ "keyword") (= val "my"))
|
||||||
(do (adv!) (parse-poss-tail (list (quote me)))))
|
(do (adv!) (parse-poss-tail (list (quote me)))))
|
||||||
|
((and (= typ "keyword") (= val "your"))
|
||||||
|
(do (adv!) (parse-poss-tail (list (quote ref) "you"))))
|
||||||
((and (= typ "keyword") (= val "its"))
|
((and (= typ "keyword") (= val "its"))
|
||||||
(do (adv!) (parse-poss-tail (list (quote it)))))
|
(do (adv!) (parse-poss-tail (list (quote it)))))
|
||||||
|
((and (= typ "keyword") (or (= val "you") (= val "yourself")))
|
||||||
|
(do (adv!) (parse-prop-chain (list (quote ref) val))))
|
||||||
((and (= typ "keyword") (= val "closest"))
|
((and (= typ "keyword") (= val "closest"))
|
||||||
(do (adv!) (parse-trav (quote closest))))
|
(do (adv!) (parse-trav (quote closest))))
|
||||||
((and (= typ "keyword") (= val "next"))
|
((and (= typ "keyword") (= val "next"))
|
||||||
|
|||||||
@@ -167,10 +167,14 @@
|
|||||||
(do
|
(do
|
||||||
(adv!)
|
(adv!)
|
||||||
(list (make-symbol ".") (list (quote event)) "detail")))
|
(list (make-symbol ".") (list (quote event)) "detail")))
|
||||||
((and (= typ "keyword") (or (= val "my") (= val "your")))
|
((and (= typ "keyword") (= val "my"))
|
||||||
(do (adv!) (parse-poss-tail (list (quote me)))))
|
(do (adv!) (parse-poss-tail (list (quote me)))))
|
||||||
|
((and (= typ "keyword") (= val "your"))
|
||||||
|
(do (adv!) (parse-poss-tail (list (quote ref) "you"))))
|
||||||
((and (= typ "keyword") (= val "its"))
|
((and (= typ "keyword") (= val "its"))
|
||||||
(do (adv!) (parse-poss-tail (list (quote it)))))
|
(do (adv!) (parse-poss-tail (list (quote it)))))
|
||||||
|
((and (= typ "keyword") (or (= val "you") (= val "yourself")))
|
||||||
|
(do (adv!) (parse-prop-chain (list (quote ref) val))))
|
||||||
((and (= typ "keyword") (= val "closest"))
|
((and (= typ "keyword") (= val "closest"))
|
||||||
(do (adv!) (parse-trav (quote closest))))
|
(do (adv!) (parse-trav (quote closest))))
|
||||||
((and (= typ "keyword") (= val "next"))
|
((and (= typ "keyword") (= val "next"))
|
||||||
|
|||||||
Reference in New Issue
Block a user