#!/usr/bin/env ruby Suffix = '.agda.replaced' EscapeChar = '@' FileName = ARGV.first ReplaceTable = { '->' => 'rightarrow', '⊔' => 'sqcup', '∷' => 'text{::}', '∙' => 'circ', '≡' => 'equiv', '×' => 'times', '⟨' => 'langle', '⟩' => 'rangle', '₁' => 'text{1}', 'ℕ' => 'mathbb{N}', '∎' => 'blacksquare' } code = File.read(FileName) ReplaceTable.each do |k, v| escaped_str = EscapeChar + "$\\#{v}$" + EscapeChar code = code.gsub(k, escaped_str) end File.write(FileName.sub(/.agda$/, Suffix), code)