Ask for the syntax of representing operators in Common-Lisp



Hello everybody,
 
 Now I need to deal with the S-expression of Maxima. I do the following steps:
 
 1) Calculate the integration.
 (%i1) e:integrate(x^2+x,x);save(test,e);
                      3      2
                     x     x
 (%o1)           -- + --
                     3     2
 
 2)Then, it saves the result to file "test" as following:
 ;;; -*- Mode: LISP; package:maxima; syntax:common-lisp; -*- 
 (in-package "MAXIMA")
 (DSKSETQ $E
          '((MPLUS SIMP)
            ((MTIMES SIMP) ((RAT SIMP) 1 2) ((MEXPT SIMP) $X 2))
            ((MTIMES SIMP) ((RAT SIMP) 1 3) ((MEXPT SIMP) $X 3)))) 
 (ADD2LNC '$E $VALUES) 
 
 3)Now I want to write a small compiler with the input is the content of the above result file, the output is a string containing the result in infix mathematics operators, i.e., the result after compling is: 1/2  * x^2  + 1/3  * x^3
 
 In order to write the compiler, I need to know exactly about the abstract syntax to parse the above file, or at least the syntax to parse the part representing the expression "((MPLUS SIMP)
             ((MTIMES SIMP) ((RAT SIMP) 1 2) ((MEXPT SIMP) $X 2))
             ((MTIMES SIMP) ((RAT SIMP) 1 3) ((MEXPT SIMP) $X 3)))) 
 
 I try to find the syntax rule on Internet but I did not find it. If anyone can help me, I really appreciate for that. Thanks in advance.
 
 
 Perfume.