A CSS preprocessor is a compiler.
They address some of the perceived shortcomings of the CSS lanaguage, making it more capable, and making it easier to work with for developers.
The output of a CSS preprocessor is always well formed CSS.
It's input depends on which preprocessor you are using. Since the goal of the preprocessor is to extend CSS, and not completely replace it, you will find the language of the preprocessor to be similar to CSS, but with enhancements.
Three popular CSS preprocessors are:
Common features of all CSS preprocessors are: