diff --git a/lib/hyperscript/parser.sx b/lib/hyperscript/parser.sx index 91a6cdf7..3fe8e8ad 100644 --- a/lib/hyperscript/parser.sx +++ b/lib/hyperscript/parser.sx @@ -167,10 +167,14 @@ (do (adv!) (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))))) + ((and (= typ "keyword") (= val "your")) + (do (adv!) (parse-poss-tail (list (quote ref) "you")))) ((and (= typ "keyword") (= val "its")) (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")) (do (adv!) (parse-trav (quote closest)))) ((and (= typ "keyword") (= val "next")) diff --git a/shared/static/wasm/sx/hs-parser.sx b/shared/static/wasm/sx/hs-parser.sx index 91a6cdf7..3fe8e8ad 100644 --- a/shared/static/wasm/sx/hs-parser.sx +++ b/shared/static/wasm/sx/hs-parser.sx @@ -167,10 +167,14 @@ (do (adv!) (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))))) + ((and (= typ "keyword") (= val "your")) + (do (adv!) (parse-poss-tail (list (quote ref) "you")))) ((and (= typ "keyword") (= val "its")) (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")) (do (adv!) (parse-trav (quote closest)))) ((and (= typ "keyword") (= val "next"))