branch: master commit 13637e1058c07a355a1e5ca4d8d7a7e36127bf8b Author: Junpeng Qiu <qjpchm...@gmail.com> Commit: Junpeng Qiu <qjpchm...@gmail.com>
Rename parsec-do-parse to parsec-with-input --- parsec.el | 2 +- pjson.el | 17 +++++++++-------- scheme.el | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/parsec.el b/parsec.el index 9d45285..c35ad05 100644 --- a/parsec.el +++ b/parsec.el @@ -280,7 +280,7 @@ parsec-nothing (parsec-just ,res))))) -(defmacro parsec-do-parse (input &rest parsers) +(defmacro parsec-with-input (input &rest parsers) (declare (indent 1)) `(with-temp-buffer (insert ,input) diff --git a/pjson.el b/pjson.el index ce4b19b..48b4589 100644 --- a/pjson.el +++ b/pjson.el @@ -117,23 +117,24 @@ (parsec-re "\\+?\\([0-9]+\\)\\(\\.[0-9]+\\)?\\([Ee][+-]?[0-9]+\\)?")))) (defun pjson-parse (input) - (parsec-do-parse input + (parsec-with-input input (pjson-object))) -(parsec-do-parse "123" +(parsec-with-input "123" (pjson-number)) -(parsec-do-parse "\"asdf\"" +(parsec-with-input "\"asdf\"" (pjson-string)) -(parsec-do-parse "false" +(parsec-with-input "false" (pjson-boolean)) -(parsec-do-parse "[1,true,1,\"abc\",[1],null]" +(parsec-with-input "[1,true,1,\"abc\",[1],null)" (pjson-array)) -(parsec-do-parse "{}" - (pjson-object)) -(parsec-do-parse "{\"a\" :1, \"b\":2, [{ \"c\":[1,true] }]}" +(message "%s" (parsec-msg-get (parsec-with-input "fallls" + (pjson-jvalue)))) +(parsec-with-input "{\"a\" :1, \"b\":2, \"c\":[1,true] }" (pjson-object)) (pjson-parse "{\"a\" :1, \"b\":2, [{ \"c\":[1,true] }]}") +(json-read-from-string "{\"a\" :1, \"b\":2, [{ \"c\":[1,true] }]}") (pjson-parse "{\"a\" :1, \"b\":2, \"c\":[1,{\"d\":null}]}") (json-read-from-string "{\"a\" :1, \"b\":2, \"c\":[1,{\"d\":null}]}") diff --git a/scheme.el b/scheme.el index 121dff4..3127b59 100644 --- a/scheme.el +++ b/scheme.el @@ -92,16 +92,16 @@ (scheme-parse-string) (scheme-parse-number) (scheme-parse-quoted) - (parsec-and - (parsec-ch ?\() - (parsec-or - (parsec-save (parsec-return (scheme-parse-list) - (parsec-ch ?\)))) - (parsec-return (scheme-parse-dotted-list) - (parsec-ch ?\))))))) + (parsec-between + (parsec-ch ?\() + (parsec-ch ?\)) + (parsec-or + (parsec-try + (scheme-parse-list)) + (scheme-parse-dotted-list))))) (defun scheme-read (expr) - (parsec-do-parse expr + (parsec-with-input expr (scheme-parse-expr))) (scheme-read "25") @@ -109,6 +109,8 @@ (scheme-read "(symbol)") (scheme-read "(a test)") (scheme-read "(a . test)") +(parsec-with-input "a . test" + (parsec-sepby (scheme-parse-expr) (scheme-spaces))) (scheme-read "(a (nested) test)") (scheme-read "(a '(quoted (dotted . list)) test)")