Script Engine (PimpScript)
pimp embeds a scripting language (conveniently named PimpScript). This language is actually just the Go template languages without delimiters ({{ and }}), significant whitespaces nor tabs; but with added support for newlines and ; as end of expressions. You can use pimp --transpile to see how a piece of PimpScript would be evaluated:
$ pimp --transpile <<EOF
range list 1 2 3
  if eq . 1; println "Winner!"
  else; printf "You are in position %d\n" .
  end
end
EOFThis produces the following output:
{{- range list 1 2 3 -}}
{{- if eq . 1 -}}
{{- println "Winner!" -}}
{{- else -}}
{{- printf "You are in position %d\n" . -}}
{{- end -}}
{{- end -}}You can execute:
pimp --exec <<EOF
range list 1 2 3
  if eq . 1
    println "Winner!"
  else
    printf "You are in position %d\n" .
  end
end
EOFWhich produces the following output:
Winner!
You are in position 2
You are in position 3REPL
pimp comes with an REPL with history, autocompletion, etc. It's a good way to experiment short scripts:
$ pimp
pimp> if eq (mul 3 3) 9; println "ok"; end
okLast updated