class Sass::Repl

and prints the result.
evaluates them,
reads in SassScript expressions,
It presents a prompt on the terminal,
Runs a SassScript read-eval-print loop.

def initialize(options = {})

Parameters:
  • options ({Symbol => Object}) -- An options hash.
def initialize(options = {})
  @options = options
end

def parse_input(environment, text)

def parse_input(environment, text)
  case text
  when Script::MATCH
    name = $1
    guarded = $3 == '||=' || $4
    val = Script::Parser.parse($3, @line, text.size - $3.size)
    unless guarded && environment.var(name)
      environment.set_var(name, val.perform(environment))
    end
    p environment.var(name)
  else
    p Script::Parser.parse(text, @line, 0).perform(environment)
  end
rescue Sass::SyntaxError => e
  puts "SyntaxError: #{e.message}"
  if @options[:trace]
    e.backtrace.each do |e|
      puts "\tfrom #{e}"
    end
  end
end

def run

Starts the read-eval-print loop.
def run
  environment = Environment.new
  environment.set_var('important', Script::String.new('!important'))
  @line = 0
  loop do
    @line += 1
    unless text = Readline.readline('>> ')
      puts
      return
    end
    Readline::HISTORY << text
    parse_input(environment, text)
  end
end