blob: 70377214e8e99554d2b57ed227897fba9f5f6519 [file] [edit]
import Lean.Syntax
open Lean
private partial def onlyIdent' : Syntax → Bool
| .node _ _ args =>
let nonEmpty := args.filter (!isEmpty ·)
if h : nonEmpty.size = 1 then onlyIdent' nonEmpty[0]
else false
| .ident .. => true
| _ => false
where
isEmpty : Syntax → Bool
| .node _ _ xs =>
xs.all isEmpty
| _ => false
partial def onlyIdent'' : Syntax → Bool
| .node _ _ args =>
let nonEmpty := args.filter (!isEmpty () ·)
if h : nonEmpty.size = 1 then onlyIdent'' nonEmpty[0]
else false
| .ident .. => true
| _ => false
where
isEmpty : Unit → Syntax → Bool
| _, .node _ _ xs =>
xs.all (isEmpty ())
| _, _ => false