Leonardo de Moura
5a7badd69a
feat: add support for erasing keyed attributes
...
This commit addresses any issue described at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Eq.2Endrec.20vs.20Eq.2Erec
2021-09-09 14:28:41 -07:00
Wojciech Nawrocki
f51b80060d
feat: generic tagged Format
2021-08-01 09:58:44 +02:00
Sebastian Ullrich
30a0954424
refactor: revert MonadRef changes
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
65f2874d86
chore: address reviews
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
eb1e285e26
chore: style
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
91e3100e30
fix: properly resolve syntax kinds in macro/elab_rules
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
9101c9d5da
feat: support docstrings on syntax/macro/...
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
da4c46370d
feat: store elaborator declaration name in info tree
2021-06-21 10:17:26 -07:00
Sebastian Ullrich
062cc5d567
chore: remove inline
2021-06-19 15:01:43 +02:00
Sebastian Ullrich
b82b90a687
feat: KeyedDeclAttribute: expose declaration names
2021-06-06 15:32:58 +02:00
Sebastian Ullrich
d15e2b3756
refactor: make notation and macro macros again
2021-04-24 11:25:08 +02:00
Leonardo de Moura
b2190da468
feat: add Macro.resolveGlobalName and Macro.resolveNamespace?
2021-04-23 19:38:56 -07:00
Leonardo de Moura
d70f9c232c
feat: trace support for MacroM
...
closes #184
2021-04-23 19:15:14 -07:00
Leonardo de Moura
c6e00aba63
chore: finalize Macro.Methods refactoring
...
We can now add new methods without using `update-stage0` multiple times.
2021-04-23 18:08:44 -07:00
Leonardo de Moura
d1dcf0b067
chore: cleanup
...
We still need another update stage0
2021-04-23 18:02:50 -07:00
Leonardo de Moura
9552b6c95f
feat: add Macro.hasDecls and Macro.getCurrNamespace
...
We need update stage0, and cleanup
2021-04-23 17:51:28 -07:00
Leonardo de Moura
0838b95105
chore: add Macro.State.Extra
2021-04-23 16:22:32 -07:00
Leonardo de Moura
1151ef9af0
chore: add Macro.Methods
2021-04-23 16:22:32 -07:00
Leonardo de Moura
a5d1b8f3c5
chore: add Macro.State
2021-04-23 16:22:24 -07:00
Leonardo de Moura
bf8119a5cd
chore: convert keywords to snake_case
...
Again `!` is only for functions that can panic.
2021-03-12 13:34:51 -08:00
Leonardo de Moura
be841a7cad
chore: throwError! => throwError, throwErrorAt! => throwErrorAt
...
@Kha I marked the corresponding methods as `protected`.
I currently can't stand `throw_error`, and I am optimistic about
server highlighting feature you are working on :)
2021-03-11 11:59:45 -08:00
Leonardo de Moura
6c119a1921
chore: use register_builtin_option
2021-01-26 18:24:56 -08:00
Sebastian Ullrich
a9f96ace3e
chore: naming
2021-01-20 16:48:50 +01:00
Leonardo de Moura
bfc1a16c02
chore: adjust instance param order
2021-01-13 18:31:41 -08:00
Leonardo de Moura
4fc06bfcca
feat: add optional (priority := <prio>) to instance command
2020-12-21 10:02:12 -08:00
Leonardo de Moura
ed87480093
refactor: move to attr syntax category
2020-12-15 20:22:04 -08:00
Leonardo de Moura
4001407f10
refactor: add MonadError class abbreviation
2020-12-14 09:15:26 -08:00
Leonardo de Moura
aad8ea9c76
feat: stable parser names
...
```
syntax term "+" term : term -- generates `term_+_`
syntax "[" sepBy(term, ", ") "]" : term -- generates `term[_,]`
syntax "done" : tactic -- generates `tacticDone`
```
cc @Kha
2020-12-04 18:00:51 -08:00
Leonardo de Moura
9d304df757
feat: heterogeneous Append experiment
...
@Kha This one required a bunch of manual fixes. The main issue is that
before we added the string interpolation feature, we created
`MessageData`s using `++` and coercions. For example, given
`(e : Expr)`, we would write
```
let msg : MessageData := "type: " ++ e
```
and rely on the coercions `String -> MessageData` and
`Expr -> MessageData`, and the instance `Append MessageData`.
However, heterogeneous operators "block" the expected type propagation downwards.
This kind of code is obsolete now since we can write a more compact
version using string interpolation
```
let msg := m!"type: {e}"
```
2020-12-01 16:32:41 -08:00
Leonardo de Moura
0869f38de4
chore: update structure, class, inductive
2020-11-27 15:09:30 -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
f17e226638
chore: naming convention
...
Example: `mkNameStr` => `Name.mkStr`
cc @Kha
2020-11-11 10:08:55 -08:00
Leonardo de Moura
deb283a415
chore: remove support for Lean3 scopes
2020-10-26 08:20:33 -07:00
Leonardo de Moura
13c2a8ff51
chore: remove #lang lean4 header
2020-10-25 09:54:07 -07:00
Leonardo de Moura
82ee2e361b
chore: cleanup
2020-10-21 18:43:47 -07:00
Leonardo de Moura
1495f403a1
chore: use builtin_initialize instead of initialize at src/Lean
2020-10-19 15:17:02 -07:00
Leonardo de Moura
e54a207986
refactor: provide Options to lean_eval_const
...
add `ImportM` monad for `addImportedFn`
cc @Kha
2020-10-19 10:21:38 -07:00
Leonardo de Moura
7d083a7451
chore: move to new frontend
2020-10-15 14:49:23 -07:00
Leonardo de Moura
d10b95d2ad
chore: move to new frontend
2020-10-13 13:23:35 -07:00
Sebastian Ullrich
19dcbdcec9
fix: do not format Syntax in Messages eagerly
2020-09-29 07:59:22 -07:00
Leonardo de Moura
f4b5ec710f
fix: fixes #175
2020-09-21 17:12:07 -07:00
Leonardo de Moura
ac2a9539f9
fix: old&new frontend interference
...
The new test was not working because new frontend was using old
frontend function.
2020-09-20 08:25:45 -07:00
Leonardo de Moura
3ee9cdd2dc
doc: document issue
...
@Kha One possible fix: we store `currNamespace` and `openDecls` at `CoreM`.
The issue is similar to the one we had with the pretty printer.
2020-09-19 16:55:50 -07:00
Leonardo de Moura
11e65fba2a
refactor: factor out macros from mutual elaborator
2020-09-19 13:10:10 -07:00
Leonardo de Moura
3e9b2a0b08
feat: add expandMacro? and expandMacros methods to MacroM
2020-09-19 13:02:27 -07:00
Leonardo de Moura
a28679358e
refactor: remove MonadError
2020-09-18 09:58:13 -07:00
Leonardo de Moura
9f5e63cd3c
feat: add option pp.macroStack
...
@Kha I set it to `false` by default.
2020-09-16 15:29:28 -07:00
Leonardo de Moura
8e179ed829
feat: macros in mutual blocks and elabMutualDef entry point
2020-08-31 15:37:41 -07:00
Leonardo de Moura
65f1c3fe65
chore: simplify MonadMacroAdapter
2020-08-28 16:24:06 -07:00