Written numbers to numerical representation
There are a couple of issues with your code. Let me describe a few:


numbers are not EQ, use EQL or =.
Common Lisp has documentation strings. Use them.
if not progn can be replaced with a single unless


The next function does not work as expected. I have inserted a newline and you see that the parentheses are wrong.

(defun should-push (string)
 (or (equalp string "and"))
 (not (should-multiply string)))


Don't write trivial macros. If you want to have a name for a trivial function, then use a function - not a macro. If the calling overhead bothers you, then declare it inline.

(defmacro sum-list (L)
  `(reduce '+ ,L))


The next may or may not work as you think. Since Common Lisp output streams can be buffered, call FORCE-OUTPUT when you actually want to see the output.

(defun get-input ()
  (princ "Please enter a number: ")
  (read-line))



or equalp can be replaced with (member foo '("a" "b" "c") :test #'equalp). Get the data out of the logic.
instead of (symbol-function '+) use #'+
instead of COND EQUALP use ASSOC with the :test keyword. Get the data out of the code. Alternatively use a macro similar to CASE, which works for strings.
for the last form, write a function, too. Always provide functions. Don't print the result. Just return the result.
inside a LET you don't need a PROGN
EQ nil is better replaced with the NULL predicate.
format t "~c" #\newline is just format t "~%"
when not is unless