// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library csslib.src.options;

class PreprocessorOptions {
  /** Generate polyfill code (e.g., var, etc.) */
  final bool polyfill;

  /** Report warnings as errors. */
  final bool warningsAsErrors;

  /** Throw an exception on warnings (not used by command line tool). */
  final bool throwOnWarnings;

  /** Throw an exception on errors (not used by command line tool). */
  final bool throwOnErrors;

  /** True to show informational messages. The `--verbose` flag. */
  final bool verbose;

  /** True to show warning messages for bad CSS.  The '--checked' flag. */
  final bool checked;

  // TODO(terry): Add mixin support and nested rules.
  /**
   * Subset of Less commands enabled; disable with '--no-less'.
   * Less syntax supported:
   * - @name at root level statically defines variables resolved at compilation
   * time.  Essentially a directive e.g., @var-name.
   */
  final bool lessSupport;

  /** Whether to use colors to print messages on the terminal. */
  final bool useColors;

  /** File to process by the compiler. */
  final String inputFile;

  const PreprocessorOptions(
      {this.verbose: false,
      this.checked: false,
      this.lessSupport: true,
      this.warningsAsErrors: false,
      this.throwOnErrors: false,
      this.throwOnWarnings: false,
      this.useColors: true,
      this.polyfill: false,
      this.inputFile});
}
