tools/pas2c.hs
changeset 6552 91adc9ee7b8c
parent 6520 6fecdc5d182f
child 6618 2d3232069c4b
equal deleted inserted replaced
6551:a2f39cb9af62 6552:91adc9ee7b8c
   124 typesAndVars2C b (TypesAndVars ts) = liftM vcat $ mapM (tvar2C b) ts
   124 typesAndVars2C b (TypesAndVars ts) = liftM vcat $ mapM (tvar2C b) ts
   125 
   125 
   126 uses2C :: Uses -> State RenderState Doc
   126 uses2C :: Uses -> State RenderState Doc
   127 uses2C uses@(Uses unitIds) = do
   127 uses2C uses@(Uses unitIds) = do
   128     mapM_ injectNamespace (Identifier "pas2cSystem" undefined : unitIds)
   128     mapM_ injectNamespace (Identifier "pas2cSystem" undefined : unitIds)
       
   129     mapM_ (id2C True) unitIds
   129     return $ vcat . map (\i -> text $ "#include \"" ++ i ++ ".h\"") $ uses2List uses
   130     return $ vcat . map (\i -> text $ "#include \"" ++ i ++ ".h\"") $ uses2List uses
   130     where
   131     where
   131     injectNamespace (Identifier i _) = do
   132     injectNamespace (Identifier i _) = do
   132         getNS <- gets (flip Map.lookup . namespaces)
   133         getNS <- gets (flip Map.lookup . namespaces)
   133         let f = flip (foldl (\a b -> b:a)) (fromMaybe [] (getNS i))
   134         let f = flip (foldl (\a b -> b:a)) (fromMaybe [] (getNS i))