branch: master commit b86ae49dc7136a9b047fea845ffc2e6e1663b56d Author: Ian Dunn <du...@gnu.org> Commit: Ian Dunn <du...@gnu.org>
Fixed parsing of ! in conditions * org-edna.el (org-edna--normalize-sexp-form): Break form before parsing. * org-edna-tests.el: Added test for parsing negations * org-edna.org (Changelog): Added updates. --- .bzrignore | 3 +- Project.ede | 4 +- org-edna-tests.el | 8 +++ org-edna.el | 3 +- org-edna.info | 144 +++++++++++++++++++++++++++++------------------------- org-edna.org | 3 ++ test.mk | 4 +- 7 files changed, 97 insertions(+), 72 deletions(-) diff --git a/.bzrignore b/.bzrignore index bbb6def..05318df 100644 --- a/.bzrignore +++ b/.bzrignore @@ -3,4 +3,5 @@ local.mk org-edna-autoloads.el org-edna.texi org-edna.html -.deps \ No newline at end of file +.deps +Makefile \ No newline at end of file diff --git a/Project.ede b/Project.ede index decef82..65176dc 100644 --- a/Project.ede +++ b/Project.ede @@ -11,9 +11,9 @@ :source '("org-edna.el") :aux-packages '("org")) (ede-proj-target-makefile-miscelaneous "ede-proj-target-makefile-miscelaneous" - :name "check" + :name #("check" 0 1 (idx 2)) :path "" - :source '("org-edna-tests.el" "org-edna-tests.org") + :source '("org-edna-tests.el" "org-edna-tests.org" "test.mk") :partofall nil :submakefile "test.mk") (ede-proj-target-aux "ede-proj-target-aux" diff --git a/org-edna-tests.el b/org-edna-tests.el index 6ce4f64..01842ec 100644 --- a/org-edna-tests.el +++ b/org-edna-tests.el @@ -154,6 +154,14 @@ '(((self) (!done?))))))) +(ert-deftest org-edna-form-to-sexp-negation () + (let* ((input-string "self !done?") + (sexp (org-edna-string-form-to-sexp-form input-string 'condition))) + (should (equal + sexp + '(((self) + (!done?))))))) + (ert-deftest org-edna-form-to-sexp-arguments () (let* ((input-string "match(\"checklist\") todo!(TODO)") (sexp (org-edna-string-form-to-sexp-form input-string 'action))) diff --git a/org-edna.el b/org-edna.el index 947d8f6..a72377b 100644 --- a/org-edna.el +++ b/org-edna.el @@ -259,7 +259,8 @@ the remainder of FORM after the current scope was parsed." (_ ;; Determine the type of the form ;; If we need to change state, return from this scope - (pcase-let* ((`(,type . ,func) (org-edna--function-for-key (car current-form)))) + (pcase-let* ((`(_ . ,key) (org-edna-break-modifier (car current-form))) + (`(,type . ,func) (org-edna--function-for-key key))) (unless (and type func) (org-edna--syntax-error "Unrecognized Form" from-string error-pos)) diff --git a/org-edna.info b/org-edna.info index 184755b..25a9421 100644 --- a/org-edna.info +++ b/org-edna.info @@ -107,6 +107,7 @@ Contributing Changelog +* 1.0beta6: 10beta6. * 1.0beta5: 10beta5. * 1.0beta4: 10beta4. * 1.0beta3: 10beta3. @@ -1510,13 +1511,23 @@ Changelog * Menu: +* 1.0beta6: 10beta6. * 1.0beta5: 10beta5. * 1.0beta4: 10beta4. * 1.0beta3: 10beta3. * 1.0beta2: 10beta2. -File: org-edna.info, Node: 10beta5, Next: 10beta4, Up: Changelog +File: org-edna.info, Node: 10beta6, Next: 10beta5, Up: Changelog + +1.0beta6 +======== + + • Fixed error reporting + • Fixed parsing of negations in conditions + + +File: org-edna.info, Node: 10beta5, Next: 10beta4, Prev: 10beta6, Up: Changelog 1.0beta5 ======== @@ -1594,71 +1605,72 @@ Big release here, with three new features. Tag Table: Node: Top225 -Node: Copying3672 -Node: Introduction4494 -Node: Installation and Setup5442 -Node: Basic Operation6235 -Node: Blockers8086 -Node: Triggers8372 -Node: Syntax8634 -Node: Basic Features9324 -Node: Finders9627 -Node: ancestors11392 -Node: children11986 -Node: descendants12396 -Node: file12918 -Node: first-child13667 -Node: ids13927 -Node: match14588 -Node: next-sibling15226 -Node: next-sibling-wrap15483 -Node: olp15797 -Node: org-file16209 -Node: parent16854 -Node: previous-sibling17052 -Node: previous-sibling-wrap17313 -Node: relatives17592 -Node: rest-of-siblings21213 -Node: rest-of-siblings-wrap21498 -Node: self21847 -Node: siblings22008 -Node: siblings-wrap22245 -Node: Actions22549 -Node: Scheduled/Deadline23291 -Node: TODO State26866 -Node: Archive27234 -Node: Chain Property27554 -Node: Clocking27837 -Node: Property28249 -Node: Priority30436 -Node: Tag31005 -Node: Effort31222 -Node: Advanced Features31611 -Node: Conditions31995 -Node: done32610 -Node: headings32774 -Node: todo-state33150 -Node: variable-set33406 -Node: has-property33835 -Node: re-search34104 -Node: Negating Conditions34464 -Node: Consideration34851 -Node: Conditional Forms36420 -Node: Setting the Properties39076 -Node: Extending Edna40160 -Node: Naming Conventions40650 -Node: Finders 141111 -Node: Actions 141473 -Node: Conditions 141932 -Node: Contributing42818 -Node: Bugs43369 -Node: Development43721 -Node: Documentation44874 -Node: Changelog45319 -Node: 10beta545506 -Node: 10beta445877 -Node: 10beta346130 -Node: 10beta246569 +Node: Copying3693 +Node: Introduction4515 +Node: Installation and Setup5463 +Node: Basic Operation6256 +Node: Blockers8107 +Node: Triggers8393 +Node: Syntax8655 +Node: Basic Features9345 +Node: Finders9648 +Node: ancestors11413 +Node: children12007 +Node: descendants12417 +Node: file12939 +Node: first-child13688 +Node: ids13948 +Node: match14609 +Node: next-sibling15247 +Node: next-sibling-wrap15504 +Node: olp15818 +Node: org-file16230 +Node: parent16875 +Node: previous-sibling17073 +Node: previous-sibling-wrap17334 +Node: relatives17613 +Node: rest-of-siblings21234 +Node: rest-of-siblings-wrap21519 +Node: self21868 +Node: siblings22029 +Node: siblings-wrap22266 +Node: Actions22570 +Node: Scheduled/Deadline23312 +Node: TODO State26887 +Node: Archive27255 +Node: Chain Property27575 +Node: Clocking27858 +Node: Property28270 +Node: Priority30457 +Node: Tag31026 +Node: Effort31243 +Node: Advanced Features31632 +Node: Conditions32016 +Node: done32631 +Node: headings32795 +Node: todo-state33171 +Node: variable-set33427 +Node: has-property33856 +Node: re-search34125 +Node: Negating Conditions34485 +Node: Consideration34872 +Node: Conditional Forms36441 +Node: Setting the Properties39097 +Node: Extending Edna40181 +Node: Naming Conventions40671 +Node: Finders 141132 +Node: Actions 141494 +Node: Conditions 141953 +Node: Contributing42839 +Node: Bugs43390 +Node: Development43742 +Node: Documentation44895 +Node: Changelog45340 +Node: 10beta645548 +Node: 10beta545716 +Node: 10beta446103 +Node: 10beta346356 +Node: 10beta246795 End Tag Table diff --git a/org-edna.org b/org-edna.org index 936ce84..0676a31 100644 --- a/org-edna.org +++ b/org-edna.org @@ -1291,6 +1291,9 @@ making any changes: :PROPERTIES: :DESCRIPTION: List of changes by version :END: +** 1.0beta6 +- Fixed error reporting +- Fixed parsing of negations in conditions ** 1.0beta5 Some new forms and a new build system. diff --git a/test.mk b/test.mk index 87fe6ad..29e31e5 100644 --- a/test.mk +++ b/test.mk @@ -16,8 +16,8 @@ # EDE only allows arbitrary code from an external makefile, so this is how we've # got to do testing. -test: - $(EMACS) \ +test: compile + @$(EMACS) \ $(EMACSFLAGS) \ $(addprefix -L ,$(LOADPATH)) \ -L "." \