\begin{code}
module Prog(prog) where
-- Program module - defines the program expression
import Interface (modeller)
import Init (initialiseMouse,initialiseScreen)
import Interpret (Command,interpret, Operation(..), Operations(..))
import Input (operationsBatch)
import BSPT (BSPT,Point,buildBSPT)
import Euclid (Face, Faces(..))
-- Main program -----------------------------
-- prog - initialises the Geometric Modeller System
-- with an initial (null) object and with
-- interpretation (lazy) of users requirements.
--
-- Operations can be predefined in the file
-- Input.hs, with the modeller being supplied
-- batchOperations (as opposed to operations)
-- as the second argument.
prog :: String -> String
prog rawinp =
initialise ++ modeller (buildBSPT []) operations
where
initialise = initialiseMouse ++ initialiseScreen
lined@(head:rest) = lines rawinp
operations =
if (head=="batch") then operationsBatch else interpret lined
\end{code}
|