code: def _at_option(self, calculator, rule, scope, block):
          
          # TODO This only actually supports "style" (which only really makes
          # sense as the first thing in a single input file) or "warn_unused"
          # (which only makes sense at file level /at best/).  Explore either
          # replacing this with a better mechanism or dropping it entirely.
          # Note also that all rules share the same underlying legacy option
          # dict, so the rules aren't even lexically scoped like you might think,
          # and @importing a file can change the compiler!  That seems totally
          # wrong.
          for option in block.argument.split(','):
              key, colon, value = option.partition(':')
              key = key.strip().lower().replace('-', '_')
              value = value.strip().lower()
  
              if value in ('1', 'true', 't', 'yes', 'y', 'on'):
                  value = True
              elif value in ('0', 'false', 'f', 'no', 'n', 'off', 'undefined'):
                  value = False
              elif not colon:
                  value = True
  
              if key == 'compress':
                  warn_deprecated(
                      rule,
                      "The 'compress' @option is deprecated.  "
                      "Please use 'style' instead."
                  )
                  key = 'style'
                  value = 'compressed' if value else 'legacy'
  
              if key in ('short_colors', 'reverse_colors'):
                  warn_deprecated(
                      rule,
                      "The '{0}' @option no longer has any effect."
                      .format(key),
                  )
                  return
              elif key == 'style':
                  try:
                      OutputStyle[value]
                  except KeyError:
                      raise SassError("No such output style: {0}".format(value))
              elif key in ('warn_unused', 'control_scoping'):
                  # TODO deprecate control_scoping?  or add it to compiler?
                  if not isinstance(value, bool):
                      raise SassError("The '{0}' @option requires a bool, not {1!r}".format(key, value))
              else:
                  raise SassError("Unknown @option: {0}".format(key))
  
              rule.legacy_compiler_options[key] = value
docs: Implements @option