32 lines
724 B
Text
32 lines
724 B
Text
/-
|
|
Copyright (c) 2021 Mac Malone. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Mac Malone
|
|
-/
|
|
import Lean.Parser.Command
|
|
|
|
namespace Lake.DSL
|
|
open Lean Parser Command
|
|
|
|
syntax structVal :=
|
|
"{" manyIndent(group(Term.structInstField ", "?)) "}"
|
|
|
|
syntax declValDo :=
|
|
ppSpace Term.do (Term.whereDecls)?
|
|
|
|
syntax declValStruct :=
|
|
ppSpace structVal (Term.whereDecls)?
|
|
|
|
syntax declValTyped :=
|
|
Term.typeSpec declValSimple
|
|
|
|
syntax declValOptTyped :=
|
|
(Term.typeSpec)? declValSimple
|
|
|
|
def expandAttrs (attrs? : Option Syntax) : Array Syntax :=
|
|
if let some attrs := attrs? then
|
|
match attrs with
|
|
| `(Term.attributes| @[$attrs,*]) => attrs
|
|
| _ => #[]
|
|
else
|
|
#[]
|