diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index 36c7650..6ec7952 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -2710,6 +2710,39 @@ It is pretty much just a translation of DEF-IS-REV @ +\defun{PARSE-TokenCommandTail}{PARSE-TokenCommandTail} +\calls{PARSE-TokenCommandTail}{bang} +\calls{PARSE-TokenCommandTail}{optional} +\calls{PARSE-TokenCommandTail}{star} +\calls{PARSE-TokenCommandTail}{PARSE-TokenOption} +\calls{PARSE-TokenCommandTail}{atEndOfLine} +\calls{PARSE-TokenCommandTail}{push-reduction} +\calls{PARSE-TokenCommandTail}{PARSE-TokenCommandTail} +\calls{PARSE-TokenCommandTail}{pop-stack-2} +\calls{PARSE-TokenCommandTail}{pop-stack-1} +\calls{PARSE-TokenCommandTail}{action} +\calls{PARSE-TokenCommandTail}{systemCommand} +<>= +(defun |PARSE-TokenCommandTail| () + (and (bang fil_test (optional (star repeator (|PARSE-TokenOption|)))) + (|atEndOfLine|) + (push-reduction '|PARSE-TokenCommandTail| + (cons (pop-stack-2) (append (pop-stack-1) nil))) + (action (|systemCommand| (pop-stack-1))))) + +@ + + +\defun{PARSE-TokenOption}{PARSE-TokenOption} +\calls{PARSE-TokenOption}{match-advance-string} +\calls{PARSE-TokenOption}{must} +\calls{PARSE-TokenOption}{PARSE-TokenList} +<>= +(defun |PARSE-TokenOption| () + (and (match-advance-string ")") (must (|PARSE-TokenList|)))) + +@ + \defun{PARSE-TokenList}{PARSE-TokenList} \calls{PARSE-TokenList}{star} \calls{PARSE-TokenList}{isTokenDelimiter} @@ -2726,6 +2759,157 @@ It is pretty much just a translation of DEF-IS-REV @ +\defun{PARSE-CommandTail}{PARSE-CommandTail} +\calls{PARSE-CommandTail}{bang} +\calls{PARSE-CommandTail}{optional} +\calls{PARSE-CommandTail}{star} +\calls{PARSE-CommandTail}{push-reduction} +\calls{PARSE-CommandTail}{PARSE-Option} +\calls{PARSE-CommandTail}{PARSE-CommandTail} +\calls{PARSE-CommandTail}{pop-stack-2} +\calls{PARSE-CommandTail}{pop-stack-1} +\calls{PARSE-CommandTail}{action} +\calls{PARSE-CommandTail}{systemCommand} +<>= +(defun |PARSE-CommandTail| () + (and (bang fil_test (optional (star repeator (|PARSE-Option|)))) + (|atEndOfLine|) + (push-reduction '|PARSE-CommandTail| + (cons (pop-stack-2) (append (pop-stack-1) nil))) + (action (|systemCommand| (pop-stack-1))))) + +@ + +\defun{PARSE-PrimaryOrQM}{PARSE-PrimaryOrQM} +\calls{PARSE-PrimaryOrQM}{match-advance-string} +\calls{PARSE-PrimaryOrQM}{push-reduction} +\calls{PARSE-PrimaryOrQM}{PARSE-PrimaryOrQM} +\calls{PARSE-PrimaryOrQM}{PARSE-Primary} +<>= +(defun |PARSE-PrimaryOrQM| () + (or (and (match-advance-string "?") + (push-reduction '|PARSE-PrimaryOrQM| '?)) + (|PARSE-Primary|))) + +@ + +\defun{PARSE-Option}{PARSE-Option} +\calls{PARSE-Option}{match-advance-string} +\calls{PARSE-Option}{must} +\calls{PARSE-Option}{star} +\calls{PARSE-Option}{PARSE-PrimaryOrQM} +<>= +(defun |PARSE-Option| () + (and (match-advance-string ")") + (must (star repeator (|PARSE-PrimaryOrQM|))))) + +@ + +\defun{PARSE-Statement}{PARSE-Statement} +\calls{PARSE-Statement}{PARSE-Expr} +\calls{PARSE-Statement}{optional} +\calls{PARSE-Statement}{star} +\calls{PARSE-Statement}{match-advance-string} +\calls{PARSE-Statement}{must} +\calls{PARSE-Statement}{push-reduction} +\calls{PARSE-Statement}{pop-stack-2} +\calls{PARSE-Statement}{pop-stack-1} +<>= +(defun |PARSE-Statement| () + (and (|PARSE-Expr| 0) + (optional + (and (star repeator + (and (match-advance-string ",") + (must (|PARSE-Expr| 0)))) + (push-reduction '|PARSE-Statement| + (cons '|Series| + (cons (pop-stack-2) + (append (pop-stack-1) nil)))))))) + +@ + +\defun{PARSE-InfixWith}{PARSE-InfixWith} +\calls{PARSE-InfixWith}{PARSE-With} +\calls{PARSE-InfixWith}{push-reduction} +\calls{PARSE-InfixWith}{pop-stack-2} +\calls{PARSE-InfixWith}{pop-stack-1} +<>= +(defun |PARSE-InfixWith| () + (and (|PARSE-With|) + (push-reduction '|PARSE-InfixWith| + (cons '|Join| (cons (pop-stack-2) (cons (pop-stack-1) nil)))))) + +@ + +\defun{PARSE-With}{PARSE-With} +\calls{PARSE-With}{match-advance-string} +\calls{PARSE-With}{must} +\calls{PARSE-With}{push-reduction} +\calls{PARSE-With}{pop-stack-1} +<>= +(defun |PARSE-With| () + (and (match-advance-string "with") (must (|PARSE-Category|)) + (push-reduction '|PARSE-With| + (cons '|with| (cons (pop-stack-1) nil))))) + +@ + +\defun{PARSE-Category}{PARSE-Category} +\calls{PARSE-Category}{match-advance-string} +\calls{PARSE-Category}{must} +\calls{PARSE-Category}{bang} +\calls{PARSE-Category}{optional} +\calls{PARSE-Category}{push-reduction} +\calls{PARSE-Category}{PARSE-Expression} +\calls{PARSE-Category}{PARSE-Category} +\calls{PARSE-Category}{pop-stack-3} +\calls{PARSE-Category}{pop-stack-2} +\calls{PARSE-Category}{pop-stack-1} +\calls{PARSE-Category}{star} +\calls{PARSE-Category}{line-number} +\calls{PARSE-Category}{PARSE-Application} +\calls{PARSE-Category}{action} +\calls{PARSE-Category}{recordSignatureDocumentation} +\calls{PARSE-Category}{nth-stack} +\calls{PARSE-Category}{recordAttributeDocumentation} +\uses{PARSE-Category}{current-line} +<>= +(defun |PARSE-Category| () + (let (g1) + (or (and (match-advance-string "if") (must (|PARSE-Expression|)) + (must (match-advance-string "then")) + (must (|PARSE-Category|)) + (bang fil_test + (optional + (and (match-advance-string "else") + (must (|PARSE-Category|))))) + (push-reduction '|PARSE-Category| + (list '|if| (pop-stack-3) (pop-stack-2) (pop-stack-1)))) + (and (match-advance-string "(") (must (|PARSE-Category|)) + (bang fil_test + (optional + (star repeator + (and (match-advance-string ";") + (must (|PARSE-Category|)))))) + (must (match-advance-string ")")) + (push-reduction '|PARSE-Category| + (cons 'category + (cons (pop-stack-2) + (append (pop-stack-1) nil))))) + (and (action (setq g1 (line-number current-line))) + (|PARSE-Application|) + (must (or (and (match-advance-string ":") + (must (|PARSE-Expression|)) + (push-reduction '|PARSE-Category| + (list '|Signature| (pop-stack-2) (pop-stack-1) )) + (action (|recordSignatureDocumentation| + (nth-stack 1) g1))) + (and (push-reduction '|PARSE-Category| + (list '|Attribute| (pop-stack-1) )) + (action (|recordAttributeDocumentation| + (nth-stack 1) g1))))))))) + +@ \chapter{The Compiler} @@ -5885,11 +6069,19 @@ if \verb|$InteractiveMode| then use a null outputstream <> <> +<> <> +<> +<> <> +<> +<> <> <> +<> +<> <> +<> <> <> <> diff --git a/changelog b/changelog index d3dd704..254a562 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20101016 tpd src/axiom-website/patches.html 20101016.01.tpd.patch +20101016 tpd src/interp/parsing.lisp treeshake compiler +20101016 tpd books/bookvol9 treeshake compiler 20101015 tpd src/axiom-website/patches.html 20101015.03.tpd.patch 20101015 tpd src/interp/parsing.lisp treeshake compiler 20101015 tpd books/bookvol9 treeshake compiler diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 1e68beb..c261694 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3218,5 +3218,7 @@ books/bookvol5 latex cleanup
books/bookvol9 treeshake compiler
20101015.03.tpd.patch books/bookvol9 treeshake compiler
+20101016.01.tpd.patch +books/bookvol9 treeshake compiler
diff --git a/src/interp/parsing.lisp.pamphlet b/src/interp/parsing.lisp.pamphlet index bccff1c..a6267d2 100644 --- a/src/interp/parsing.lisp.pamphlet +++ b/src/interp/parsing.lisp.pamphlet @@ -1928,113 +1928,6 @@ fnewmeta (DEFPARAMETER LABLASOC NIL) -(DEFUN |PARSE-TokenCommandTail| () - (AND (BANG FIL_TEST (OPTIONAL (STAR REPEATOR (|PARSE-TokenOption|)))) - (|atEndOfLine|) - (PUSH-REDUCTION '|PARSE-TokenCommandTail| - (CONS (POP-STACK-2) (APPEND (POP-STACK-1) NIL))) - (ACTION (|systemCommand| (POP-STACK-1))))) -(trace |PARSE-TokenCommandTail|) - - -(DEFUN |PARSE-TokenOption| () - (AND (MATCH-ADVANCE-STRING ")") (MUST (|PARSE-TokenList|)))) -(trace |PARSE-TokenOption|) - - -(DEFUN |PARSE-CommandTail| () - (AND (BANG FIL_TEST (OPTIONAL (STAR REPEATOR (|PARSE-Option|)))) - (|atEndOfLine|) - (PUSH-REDUCTION '|PARSE-CommandTail| - (CONS (POP-STACK-2) (APPEND (POP-STACK-1) NIL))) - (ACTION (|systemCommand| (POP-STACK-1))))) -(trace |PARSE-CommandTail|) - - -(DEFUN |PARSE-PrimaryOrQM| () - (OR (AND (MATCH-ADVANCE-STRING "?") - (PUSH-REDUCTION '|PARSE-PrimaryOrQM| '?)) - (|PARSE-Primary|))) -(trace |PARSE-PrimaryOrQM|) - - -(DEFUN |PARSE-Option| () - (AND (MATCH-ADVANCE-STRING ")") - (MUST (STAR REPEATOR (|PARSE-PrimaryOrQM|))))) -(trace |PARSE-Option|) - - -(DEFUN |PARSE-Statement| () - (AND (|PARSE-Expr| 0) - (OPTIONAL - (AND (STAR REPEATOR - (AND (MATCH-ADVANCE-STRING ",") - (MUST (|PARSE-Expr| 0)))) - (PUSH-REDUCTION '|PARSE-Statement| - (CONS '|Series| - (CONS (POP-STACK-2) - (APPEND (POP-STACK-1) NIL)))))))) -(trace |PARSE-Statement|) - - -(DEFUN |PARSE-InfixWith| () - (AND (|PARSE-With|) - (PUSH-REDUCTION '|PARSE-InfixWith| - (CONS '|Join| (CONS (POP-STACK-2) (CONS (POP-STACK-1) NIL)))))) -(trace |PARSE-InfixWith|) - - -(DEFUN |PARSE-With| () - (AND (MATCH-ADVANCE-STRING "with") (MUST (|PARSE-Category|)) - (PUSH-REDUCTION '|PARSE-With| - (CONS '|with| (CONS (POP-STACK-1) NIL))))) -(trace |PARSE-With|) - - -(DEFUN |PARSE-Category| () - (PROG (G1) - (RETURN - (OR (AND (MATCH-ADVANCE-STRING "if") (MUST (|PARSE-Expression|)) - (MUST (MATCH-ADVANCE-STRING "then")) - (MUST (|PARSE-Category|)) - (BANG FIL_TEST - (OPTIONAL - (AND (MATCH-ADVANCE-STRING "else") - (MUST (|PARSE-Category|))))) - (PUSH-REDUCTION '|PARSE-Category| - (CONS '|if| - (CONS (POP-STACK-3) - (CONS (POP-STACK-2) - (CONS (POP-STACK-1) NIL)))))) - (AND (MATCH-ADVANCE-STRING "(") (MUST (|PARSE-Category|)) - (BANG FIL_TEST - (OPTIONAL - (STAR REPEATOR - (AND (MATCH-ADVANCE-STRING ";") - (MUST (|PARSE-Category|)))))) - (MUST (MATCH-ADVANCE-STRING ")")) - (PUSH-REDUCTION '|PARSE-Category| - (CONS 'CATEGORY - (CONS (POP-STACK-2) - (APPEND (POP-STACK-1) NIL))))) - (AND (ACTION (SETQ G1 (LINE-NUMBER CURRENT-LINE))) - (|PARSE-Application|) - (MUST (OR (AND (MATCH-ADVANCE-STRING ":") - (MUST (|PARSE-Expression|)) - (PUSH-REDUCTION '|PARSE-Category| - (CONS '|Signature| - (CONS (POP-STACK-2) - (CONS (POP-STACK-1) NIL)))) - (ACTION (|recordSignatureDocumentation| - (NTH-STACK 1) G1))) - (AND (PUSH-REDUCTION '|PARSE-Category| - (CONS '|Attribute| - (CONS (POP-STACK-1) NIL))) - (ACTION (|recordAttributeDocumentation| - (NTH-STACK 1) G1)))))))))) -(trace |PARSE-Category|) - - (DEFUN |PARSE-Expression| () (AND (|PARSE-Expr| (|PARSE-rightBindingPowerOf| (MAKE-SYMBOL-OF PRIOR-TOKEN)