-- | Naming of variables and functions in C. module Copilot.Compile.C99.Name ( argNames , argTempNames , exCpyName , generatorName , generatorOutputArgName , guardName , indexName , streamAccessorName , streamName ) where -- External imports: Copilot import Copilot.Core (Id) -- | Turn a stream id into a suitable C variable name. streamName :: Id -> String streamName sId = "s" ++ show sId -- | Turn a stream id into the global varname for indices. indexName :: Id -> String indexName sId = streamName sId ++ "_idx" -- | Turn a stream id into the name of its accessor function streamAccessorName :: Id -> String streamAccessorName sId = streamName sId ++ "_get" -- | Add a postfix for copies of external variables the name. exCpyName :: String -> String exCpyName name = name ++ "_cpy" -- | Turn stream id into name of its generator function. generatorName :: Id -> String generatorName sId = streamName sId ++ "_gen" -- | Turn stream id into name of its output argument array. generatorOutputArgName :: Id -> String generatorOutputArgName sId = streamName sId ++ "_output" -- | Turn the name of a trigger into a guard generator. guardName :: String -> String guardName name = name ++ "_guard" -- | Turn a trigger name into a trigger argument name. argName :: String -> Int -> String argName name n = name ++ "_arg" ++ show n -- | Turn a handler function name into a name for a temporary variable for a -- handler argument. argTempName :: String -> Int -> String argTempName name n = name ++ "_arg_temp" ++ show n -- | Enumerate all argument names based on trigger name. argNames :: String -> [String] argNames base = map (argName base) [0..] -- | Enumerate all temporary variable names based on handler function name. argTempNames :: String -> [String] argTempNames base = map (argTempName base) [0..]