feat(library/init/lean/{parser/term,elaborator}): support @& borrowed annotations
This commit is contained in:
parent
9da149c2df
commit
dbc470d7e4
2 changed files with 9 additions and 1 deletions
|
|
@ -277,6 +277,9 @@ def to_pexpr : syntax → elaborator_m expr
|
|||
| @inaccessible := do
|
||||
let v := view inaccessible stx,
|
||||
expr.mk_annotation `innaccessible <$> to_pexpr v.term -- sic
|
||||
| @borrowed := do
|
||||
let v := view borrowed stx,
|
||||
expr.mk_annotation `borrowed <$> to_pexpr v.term
|
||||
| @number := do
|
||||
let v := view number stx,
|
||||
pure $ expr.lit $ literal.nat_val v.to_nat
|
||||
|
|
|
|||
|
|
@ -340,6 +340,10 @@ node! anonymous_inaccessible ["._":max_prec]
|
|||
def sorry.parser : term_parser :=
|
||||
node! «sorry» ["sorry":max_prec]
|
||||
|
||||
@[derive parser.has_tokens parser.has_view]
|
||||
def borrowed.parser : term_parser :=
|
||||
node! borrowed ["@&":max_prec, term: term.parser]
|
||||
|
||||
-- TODO(Sebastian): replace with attribute
|
||||
@[derive has_tokens]
|
||||
def builtin_leading_parsers : token_map term_parser := token_map.of_list [
|
||||
|
|
@ -369,7 +373,8 @@ def builtin_leading_parsers : token_map term_parser := token_map.of_list [
|
|||
("{", subtype.parser),
|
||||
(".(", inaccessible.parser),
|
||||
("._", anonymous_inaccessible.parser),
|
||||
("sorry", sorry.parser)
|
||||
("sorry", sorry.parser),
|
||||
("@&", borrowed.parser)
|
||||
]
|
||||
|
||||
@[derive parser.has_tokens parser.has_view]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue