Commit graph

22416 commits

Author SHA1 Message Date
Leonardo de Moura
bb06fbaa8a test: smart unfolding 2020-11-15 16:36:22 -08:00
Leonardo de Moura
717178392c chore: update stage0 2020-11-15 16:35:46 -08:00
Leonardo de Moura
461c0786fd feat: generate auxiliary declaration for "smart unfolding" 2020-11-15 16:31:40 -08:00
Leonardo de Moura
0ca7dabb2a chore: update stage0 2020-11-15 15:08:26 -08:00
Leonardo de Moura
f5ba036d8f chore: add support for reducing matchers 2020-11-15 15:07:53 -08:00
Leonardo de Moura
49e9064202 refactor: add MatcherInfo.lean 2020-11-15 14:22:05 -08:00
Leonardo de Moura
77eaf17a47 refactor: move idDelta to Prelude.lean, add idRhs 2020-11-15 12:54:29 -08:00
Leonardo de Moura
0bf703b17c chore: remove misleading comment
It doesn't loop in Lean 4.
2020-11-14 18:07:19 -08:00
Leonardo de Moura
73dec1be45 test: add tests for Lean3 bugs 2020-11-14 18:04:22 -08:00
Leonardo de Moura
98cc4639a0 fix: nested recursive applications 2020-11-14 18:01:22 -08:00
Leonardo de Moura
db5fe843de chore: add expandInterpolatedStr helper function, rename msg! => m! 2020-11-14 13:52:52 -08:00
Leonardo de Moura
cc7d7422db fix: UInt ctors/fields in generated code 2020-11-14 12:50:32 -08:00
Leonardo de Moura
9acbc7bb7d feat: declare subtype notation using syntax 2020-11-14 08:46:02 -08:00
Leonardo de Moura
a6c3a17702 chore: update stage0 2020-11-14 08:42:44 -08:00
Leonardo de Moura
0ddc2e5efb chore: remove builtin subtype notation 2020-11-14 08:42:03 -08:00
Leonardo de Moura
1a8dafccc5 chore: update stage0 2020-11-14 08:36:57 -08:00
Leonardo de Moura
17fb995348 feat: improve mkLevelMax' 2020-11-14 08:36:23 -08:00
Leonardo de Moura
e1551afbd8 feat: add macro "exists" xs:explicitBinders ", " b:term : term
The ASCII version
2020-11-14 08:21:47 -08:00
Leonardo de Moura
053e09c5e6 chore: fix test 2020-11-14 08:16:47 -08:00
Leonardo de Moura
b2cf4751d7 chore: update stage0 2020-11-14 08:12:51 -08:00
Leonardo de Moura
a80c7ff882 feat: add mkLevelMax' and mkLevelIMax' 2020-11-14 08:11:49 -08:00
Leonardo de Moura
99fad9fc4d feat: goodies for writing notation with binders 2020-11-14 07:32:44 -08:00
Leonardo de Moura
bf242f434d fix: missing case 2020-11-14 07:14:25 -08:00
Leonardo de Moura
db56a5132e chore: update stage0 2020-11-14 07:04:57 -08:00
Leonardo de Moura
bed1582844 chore: remove workaround of the workaround 2020-11-14 07:04:17 -08:00
Leonardo de Moura
155c377bc6 chore: cleanup depArrow
Cleanup hack used before we implemented: parsers have precedence not tokens
2020-11-14 07:00:10 -08:00
Sebastian Ullrich
9c6c568caf fix: don't try to pretty-print underapplied matcher
Fixes #219
2020-11-14 13:19:21 +01:00
Leonardo de Moura
646f2bdefe chore: update stage0 2020-11-13 16:32:05 -08:00
Leonardo de Moura
ffc4abed32 fix: UInt* and USize Inhabited instances 2020-11-13 16:30:48 -08:00
Leonardo de Moura
b9f1999e32 chore: update stage0 2020-11-13 16:00:33 -08:00
Leonardo de Moura
21bfb6a51e chore: use mutual instead of old idiom: high order functions + specialize
Before we moved to the new frontend, we used to simulate mutual
recursion using high order functions + `[specialize]`. This is not
needed anymore, and the new generated code is more efficient and compact.

@Kha I don't usually indent `mutual` blocks, but I found it helpful
for big ones like this one. Not sure whether we should keep indenting
them or not.
2020-11-13 16:00:33 -08:00
Leonardo de Moura
cca9cceab0 chore: minor cleanup 2020-11-13 16:00:33 -08:00
Leonardo de Moura
25a887ff35 chore: update stage0 2020-11-13 16:00:33 -08:00
Leonardo de Moura
5025d7eafd chore: control generated code size 2020-11-13 16:00:33 -08:00
Leonardo de Moura
dfce991368 chore: update stage0 2020-11-13 16:00:33 -08:00
Leonardo de Moura
35f1844d16 feat: add ParserDescr.checkPrec 2020-11-13 16:00:31 -08:00
Leonardo de Moura
8c4ac7ccc1 refactor: rename LeanInit ==> Meta, and reduce dependencies 2020-11-13 16:00:31 -08:00
Leonardo de Moura
70385b87fa feat: add instance MonadRef MacroM 2020-11-13 16:00:31 -08:00
Leonardo de Moura
396e767f3d refactor: move Ref to Prelude and rename it to MonadRef
`MacroM` will implement `MonadRef` because
1- It will be easier to throw errors from macros
2- We will be able to `getRef` to retrieve the syntax node at macro
rules.

I renamed `Ref` to `MonadRef` to make it consistent with other classes
providing monadic methods (e.g. `MonadEnv`, `MonadState`, etc).

cc @Kha
2020-11-13 16:00:31 -08:00
Leonardo de Moura
71f62fe5cb feat: use ParserDescr.nodeWithAntiquot at syntaxAbbrev 2020-11-13 16:00:31 -08:00
Leonardo de Moura
99d788665e chore: update stage0 2020-11-13 16:00:31 -08:00
Leonardo de Moura
f64d6c4514 feat: add ParserDescr.nodeWithAntiquot 2020-11-13 16:00:31 -08:00
Leonardo de Moura
98ca335a85 chore: fix comment 2020-11-13 16:00:31 -08:00
Leonardo de Moura
51d0579e20 fix: bug at toParserDescr 2020-11-13 16:00:31 -08:00
Leonardo de Moura
d277b53c34 chore: remove dead code 2020-11-13 16:00:31 -08:00
Sebastian Ullrich
1add44916c chore: remove broken & redundant "new parser Core.lean" benchmark 2020-11-13 21:08:46 +01:00
Sebastian Ullrich
fe03e70a8a fix: robust linking of cyclically dependent libraries 2020-11-13 21:08:46 +01:00
Leonardo de Moura
b0e8183663 fix: error position for unsolved goals at cases and induction tactics 2020-11-13 07:59:50 -08:00
Leonardo de Moura
75120000ff chore: update stage0 2020-11-12 19:02:13 -08:00
Leonardo de Moura
d137ecf4e8 feat: improve addLValArg
@Kha the module as classes test is now working.
2020-11-12 18:59:59 -08:00