Commit graph

26011 commits

Author SHA1 Message Date
Sebastian Ullrich
331b987f8b chore: update stage0 2020-12-12 16:02:59 +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
41a74d38d8 chore: update stage0 2020-12-12 13:02:22 +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
ce1baa5f39 test: deriving command experiments 2020-12-11 18:34:17 -08: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
Leonardo de Moura
1860bfd099 chore: update stage0 2020-12-11 12:42:44 -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
3682e3b993 chore: cleanup while/repeat example 2020-12-10 19:42:41 -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
c8298f4446 feat: support for big list literals
This encoding prevents stack overflows.
2020-12-10 17:19:46 -08:00
Leonardo de Moura
48af5627aa test: InductiveVal.isNested 2020-12-10 14:31:40 -08:00
Leonardo de Moura
5ff1c0d07d chore: update stage0 2020-12-10 14:28:53 -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
9437f262af chore: fix test 2020-12-10 12:01:16 -08:00
Leonardo de Moura
a3eef44efe chore: update stage0 2020-12-10 11:57:27 -08:00
Leonardo de Moura
1977b66573 feat: proper node for optional .. at structInst 2020-12-10 11:56:37 -08:00
Leonardo de Moura
ccabb59e88 chore: fix test 2020-12-10 11:50:12 -08:00
Leonardo de Moura
d6c8e48a8e chore: update stage0 2020-12-10 11:50:12 -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
4250ee1e16 chore: update stage0 2020-12-10 08:12:28 -08: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
a07a335c0b chore: update stage0 2020-12-09 17:40:35 -08:00
Leonardo de Moura
ec1e6a68fa feat: elaborate double quoted named literals 2020-12-09 17:35:16 -08:00
Leonardo de Moura
0af806fb49 chore: update stage0 2020-12-09 17:28:44 -08:00
Leonardo de Moura
4d79c00846 feat: add double quoted name literal parser 2020-12-09 17:27:45 -08:00
Leonardo de Moura
29a28254ff chore: update stage0 2020-12-09 17:07:17 -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
1f74759b80 chore: update stage0 2020-12-09 15:06:48 -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
Leonardo de Moura
095ee9f8d2 chore: missing keywords 2020-12-09 13:58:08 -08:00
Sebastian Ullrich
4390de88b8 chore: CI: ignore Cachix failures 2020-12-09 20:12:20 +01:00
Sebastian Ullrich
a6fca7bced test: fix beginEndAsMacro output 2020-12-09 19:33:11 +01:00
Sebastian Ullrich
5673702687 doc: fix 2020-12-09 19:03:35 +01:00
Sebastian Ullrich
1cb51ba42e fix: precedence of new sepBy shorthands 2020-12-09 19:02:17 +01:00
Sebastian Ullrich
36e924d124 fix: rwRuleSeq 2020-12-09 18:50:04 +01:00
Sebastian Ullrich
f50c8ff495 test: beginEndAsMacro: check error position 2020-12-09 18:13:25 +01:00