Sebastian Ullrich
314c5c9d41
feat: run single non-category quotation under interpreter as well
2020-12-14 17:13:59 +01:00
Sebastian Ullrich
a9bdb2f70a
feat: prefer interpreter for running builtin parsers in quotations
2020-12-14 16:45:32 +01:00
Sebastian Ullrich
0316c872b9
feat: macro: use appropriate antiquotation kind dependent on bound syntax
...
/cc @leodemoura
2020-12-14 13:54:34 +01:00
Leonardo de Moura
0d9694d836
chore: user deriving BEq
2020-12-13 16:30:07 -08:00
Leonardo de Moura
bad714f5e9
feat: add deriving BEq
2020-12-13 16:13:27 -08:00
Leonardo de Moura
0862df9ade
fix: missing ppSpace at set_option parser
2020-12-13 15:52:03 -08:00
Leonardo de Moura
15232f51d3
feat: add Expr.constainsFVar
2020-12-13 15:51:48 -08:00
Leonardo de Moura
f5d59ee287
fix: missing eraseMacroScopes at set_option
2020-12-13 15:51:00 -08:00
Leonardo de Moura
ed86e74149
feat: add option match.ignoreUnusedAlts
...
It is useful for macros that generate `match`-expressions
2020-12-13 15:50:24 -08:00
Leonardo de Moura
f345c8c708
feat: add betaReduce
2020-12-13 15:49:22 -08:00
Leonardo de Moura
04a07c15b9
chore: use deriving Inhabited
2020-12-13 11:57:59 -08:00
Leonardo de Moura
3b6d65c3c3
chore: use deriving Inhabited
2020-12-13 10:09:20 -08:00
Leonardo de Moura
0bbc2ca884
feat: elaborate optDeriving
2020-12-13 09:05:03 -08:00
Leonardo de Moura
8fd6870931
fix: optDeriving parser
2020-12-12 18:58:44 -08:00
Leonardo de Moura
ebd8680de8
feat: add Deriving/Inhabited.lean
2020-12-12 18:52:24 -08:00
Leonardo de Moura
2c81d7e91c
feat: add basic deriving instance elaborator
2020-12-12 17:00:49 -08:00
Leonardo de Moura
01ec581617
chore: update deriving instance syntax
2020-12-12 16:48:12 -08:00
Leonardo de Moura
fb175ccab7
feat: add Deriving.lean
2020-12-12 16:08:50 -08:00
Leonardo de Moura
3743f877f4
feat: add deriving parsers
2020-12-12 15:33:36 -08:00
Leonardo de Moura
5249fdc24d
chore: cleanup and style
2020-12-12 10:36:26 -08:00
Sebastian Ullrich
554d0b4d4c
chore: adapt stdlib to new antiquotation splices
2020-12-12 17:20:03 +01:00
Sebastian Ullrich
8dfa588983
feat: introduce SepArray and use it for sepBy antiquotation splices
2020-12-12 16:02:15 +01:00
Sebastian Ullrich
9e06680541
chore: remove old antiquotations splice syntax
2020-12-12 14:57:14 +01:00
Sebastian Ullrich
a13f129312
feat: antiquotation suffix splices such as $x:k,*
...
/cc @leodemoura
2020-12-12 14:57:14 +01:00
Sebastian Ullrich
686a28fcc9
feat: allow do lifts inside unescaped antiquotations
...
/cc @leodemoura
2020-12-12 13:01:05 +01:00
Leonardo de Moura
76fb1799fe
chore: goodies for deriving command
2020-12-11 18:08:50 -08:00
Leonardo de Moura
85dc3183b6
chore: cleanup
2020-12-11 13:29:42 -08:00
Sebastian Ullrich
bf63c4c0d0
feat: make sure dynamic quotations can only be used for parsers of arity 1
2020-12-11 21:34:30 +01:00
Sebastian Ullrich
591392840c
fix: accept dynamic quotations in match
2020-12-11 21:34:30 +01:00
Leonardo de Moura
67379b359d
fix: avoid macro scopes in error message
2020-12-11 11:23:44 -08:00
Leonardo de Moura
f2ea45e68a
feat: expose doSeq and termBeforeDo parsers
...
Users can use them to extend the `do` DSL.
2020-12-10 19:10:25 -08:00
Leonardo de Moura
612ef66bb4
feat: store whether inductive type is nested or not
2020-12-10 14:25:23 -08:00
Leonardo de Moura
1977b66573
feat: proper node for optional .. at structInst
2020-12-10 11:56:37 -08:00
Leonardo de Moura
28feed9c45
feat: proper node for structInstLVal
2020-12-10 11:50:12 -08:00
Sebastian Ullrich
8088145da8
chore: remove obsolete code
2020-12-10 17:15:55 +01:00
Leonardo de Moura
ffefd8db36
chore: remove weird syntax sugar from macro command
...
Before this commit,
```
macro term x:term : term => `($x)
```
would generate the notation
```
syntax "term" term : term
```
2020-12-10 08:09:47 -08:00
Sebastian Ullrich
16bdc52088
fix: broken syntax tree from Tactic -> Term conversion
...
/cc @leodemoura
2020-12-10 10:50:41 +01:00
Leonardo de Moura
0b8edeeadc
chore: use double quoted literals
2020-12-09 17:51:01 -08:00
Leonardo de Moura
ec1e6a68fa
feat: elaborate double quoted named literals
2020-12-09 17:35:16 -08:00
Leonardo de Moura
4d79c00846
feat: add double quoted name literal parser
2020-12-09 17:27:45 -08:00
Leonardo de Moura
a10328e745
chore: simplify syntax patterns using $[...]?
2020-12-09 17:06:19 -08:00
Leonardo de Moura
71735faa33
fix: named argument that depends on missing explicit argument
2020-12-09 16:10:48 -08:00
Leonardo de Moura
25ecc43a84
fix: missing try at isClass?
2020-12-09 15:19:49 -08:00
Leonardo de Moura
63ab55289e
chore: remove "liftable methods"
...
The new frontend "auto lifting" feature makes them obsolete.
2020-12-09 15:06:07 -08:00
Leonardo de Moura
e899b63def
feat: suppress "synthetic sorry" at #check
...
@Kha The message `sorryAx ?m : ?m` is content free.
2020-12-09 14:17:16 -08:00
Leonardo de Moura
d4f48cbfa3
feat: improve error message "don't know how to synthesize implicit argument"
2020-12-09 14:09:30 -08:00
Leonardo de Moura
7a4b544b1c
feat: improve application type mismatch error message
...
If the type error is at an implicit argument, we annotate
application with `pp.explicit := true`
Given the type incorrect definition
```
def f {a b c : α} : a = c :=
Eq.trans (a := a) (b := b = c)
```
We now generate the error
```
error: application type mismatch
@Eq.trans α a (b = c)
argument
b = c
has type
Prop
but is expected to have type
α
```
@Kha Note that we only enable `pp.explicit := true` for the relevant
application. That is, we set `pp.explicit := false` for each children.
Unfortunately, there is a corner case.
```
set_option pp.explicit true
def f {a b c : α} : a = c :=
Eq.trans (a := a) (b := b = c)
```
produces the error
```
error: application type mismatch
@Eq.trans α a (b = c)
argument
@Eq α b c
has type
Prop
but is expected to have type
α
```
The reset `pp.explicit := false` overwrote the user option.
I think the simplest solution is the following
1- The delaborator saves the initial set of Options `Init`
2- When it finds a node annotated with a `pp` options, it only
consider the option if it is not set by `Init`.
What do you think?
2020-12-09 13:58:08 -08:00
Sebastian Ullrich
4dfa7e1187
feat: use actual separator in sepBy antiquotation scope
2020-12-09 17:48:05 +01:00
Sebastian Ullrich
fd1f74c421
feat: extend sepBy syntax syntax
2020-12-09 17:36:29 +01:00
Sebastian Ullrich
110b014752
chore: ParserCompiler: strip optParams
2020-12-09 17:36:26 +01:00