 (def command-parser
   (insta/parser
    (str
-    "<COMMAND> = HELP | EXIT | LOAD | LIST | MC | F        \n"
-    "HELP = 'help' | 'h'                                   \n"
-    "EXIT = 'exit' | 'quit' | 'q'                          \n"
-    "LOAD = 'load' <WS> STR                                \n"
-    "LIST = 'list'                                         \n"
-    "MC  = ('mc'|'many-constructors') <WS> 'th' <WS> NUM   \n"
-    "F = ('f'|'finalizers')                                \n"
-    "WS  = #'[\t ]+'                                       \n"
-    "NUM = #'[0-9]+'                                       \n"
-    "STR = #'\"[^\"]*\"'                                   \n")))
+    "<COMMAND> = HELP | EXIT | LOAD | LIST | MC | MCP | F        \n"
+    "HELP = 'help' | 'h'                                         \n"
+    "EXIT = 'exit' | 'quit' | 'q'                                \n"
+    "LOAD = 'load' <WS> STR                                      \n"
+    "LIST = 'list'                                               \n"
+    "MC  = ('mc'|'many-constructors') <WS> 'th' <WS> NUM         \n"
+    "MCP = ('mcp'|'many-costructor-params') <WS> 'th' <WS> NUM   \n"
+    "F = ('f'|'finalizers')                                      \n"
+    "WS  = #'[\t ]+'                                             \n"
+    "NUM = #'[0-9]+'                                             \n"
+    "STR = #'\"[^\"]*\"'                                         \n")))
 
 (declare interactive)
 


(defn- mc-operation [state threshold]
  (printOperation classesWithManyConstructorsOp (:cus state) threshold)
  (interactive state))

(defn- f-operation [state]

          :LOAD (load-classes ast)
          :MC (let [threshold (read-string (last (last (first ast))))]
                (mc-operation state threshold))
          :MCP (let [threshold (read-string (last (last (first ast))))]
                 (mcp-operation state threshold))
          :F (f-operation state)
          (println "Command not implemented: " command))))))

