/-
Copyright (c) 2020 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
import Lean.Data.Format
namespace Lean

syntax:max "f!" (interpolatedStr term) : term

macro_rules
  | `(f! $interpStr) => do
    let chunks := interpStr.getArgs
    let r ← Lean.Syntax.expandInterpolatedStrChunks chunks (fun a b => `($a ++ $b)) (fun a => `(fmt $a))
    `(($r : Format))

end Lean
