Leonardo de Moura
35213b63ae
fix: bootstrapping issues
...
We need `Name` `mkNameStr` available in the environment to define
`syntax` command.
2020-01-14 18:02:39 -08:00
Leonardo de Moura
5eebbc7bda
chore: remove unnecessary attributes
...
If one day we add elaboration functions for level and syntax, then we
can add them back.
2020-01-14 14:34:30 -08:00
Leonardo de Moura
2d83d49341
refactor: add Elab/Syntax.lean
2020-01-14 14:22:55 -08:00
Leonardo de Moura
abc6bc1447
chore: use try to fix : overload
2020-01-14 14:19:44 -08:00
Leonardo de Moura
ab8cbdc7e0
feat: improve syntax rules
2020-01-14 14:15:48 -08:00
Leonardo de Moura
b057f55e52
chore: add missing rules
2020-01-14 14:01:40 -08:00
Leonardo de Moura
17811a9286
feat: add syntax parsers
2020-01-14 13:50:06 -08:00
Leonardo de Moura
dd2936d28e
chore: move helper functions to Parser.lean
2020-01-14 13:33:20 -08:00
Leonardo de Moura
15a2d7d8ca
chore: tacticSymbol ==> nonReservedSymbol
2020-01-14 13:08:38 -08:00
Leonardo de Moura
ad0792f6c9
feat: add syntax category
2020-01-14 12:34:45 -08:00
Leonardo de Moura
a88dca17bc
chore: style
2020-01-14 08:51:50 -08:00
Daniel Selsam
4a0d8b475c
doc: try naming result type
2020-01-14 08:49:41 -08:00
Leonardo de Moura
e9d1014d63
feat: add ParserDescrCore.tacticSymbol constructor
2020-01-13 16:54:52 -08:00
Leonardo de Moura
aedd59258b
fix: missing file
2020-01-13 16:52:12 -08:00
Leonardo de Moura
2f5f00ed4f
feat: improve leadingIdentAsSymbol trick
2020-01-13 16:42:49 -08:00
Leonardo de Moura
397addb958
doc: leadingIdentAsSymbol trick
2020-01-13 16:38:12 -08:00
Leonardo de Moura
983579c0cf
feat: enable leadingIdentAsSymbol for tactic category
2020-01-13 16:20:34 -08:00
Leonardo de Moura
e98507023e
feat: basic tactic parser
2020-01-13 16:07:48 -08:00
Leonardo de Moura
b8146cc235
feat: add leadingIdentAsSymbol to ParserCategory
2020-01-13 16:07:21 -08:00
Leonardo de Moura
340d5f01f5
chore: symbolOrIdent ==> nonReservedSymbol
2020-01-13 14:32:34 -08:00
Leonardo de Moura
2b1869790c
feat: add tactic parser attributes
2020-01-13 13:00:19 -08:00
Simon Hudon
dd6e95c718
fix: lowercase error messages
2020-01-12 11:05:48 -08:00
Sebastian Ullrich
2e5f62d44f
test: parser/macro macros
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
586f515470
fix: global name resolution of macro-introduced idents
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
3f63635388
refactor: use adaptExpander in Elab.Quotation
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
05d216beb0
feat: command elaboration step trace
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
8d021e0cec
fix: fresh macro scope per command
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
82078fba84
chore: make Syntax.reprint output without source info more readable
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
c08fcdb662
chore: ad-hoc match_syntax support in the new frontend
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
db2218cbfd
feat: support antiquotation splices mixed with other items (quotation terms only)
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
753ecab6c1
feat: support macro-generated parser!
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
c6100ed25f
feat: antiquoting rawIdent
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
912011f12f
fix: variable patterns in match_syntax
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
437e1b7245
fix: elaboration of macro-generated defs
2020-01-12 10:32:27 -08:00
Sebastian Ullrich
b18e0a3373
feat: support expanding into multiple commands
2020-01-12 10:32:27 -08:00
Leonardo de Moura
64ef03d736
chore: lowercase error messages
...
@cipher1024 We use lowercase error messages in Lean. I know other
systems capitalize, but we need consistency.
2020-01-12 08:21:26 -08:00
Simon Hudon
6d8927da10
fix: little details
2020-01-12 08:02:48 -08:00
Simon Hudon
92c8773137
feat: file IO using handles
2020-01-12 08:02:48 -08:00
Leonardo de Moura
bfe8c6d060
feat: prevent adversarial users from using hugeFuel in actual code
2020-01-11 15:34:39 -08:00
Leonardo de Moura
6d77aa20aa
feat: catch deep recursion at MetaM, TermElabM and CommandElabM
...
cc @Kha
2020-01-11 15:03:58 -08:00
Leonardo de Moura
5eebda7e34
chore: add workaround for allowing new frontend to see old frontend exports
2020-01-11 13:44:22 -08:00
Leonardo de Moura
246e0a5532
fix: propagate type before synthesizeSyntheticMVars
2020-01-11 12:01:12 -08:00
Leonardo de Moura
c729973742
fix: restore state when catching postpone
...
Reason: avoid error messages to be generated multiple times; avoid
internal postponed mvars to leak; etc
2020-01-11 11:57:39 -08:00
Leonardo de Moura
82a36fbfe2
feat: declare_syntax_cat without importing Init.Lean
...
cc @Kha
2020-01-11 09:02:50 -08:00
Leonardo de Moura
e817257922
feat: elaborate declare_syntax_cat
...
TODO: `registerParserCategory` uses `registerAttribute` which relies
on the environment having a declaration of type `AttributeImpl`.
This is bad since forces users to import `Init.Lean`.
@Kha The key problem is that we cannot serialize `AttributeImpl`.
I will try to address this issue tomorrow. I am considering different
workarounds.
2020-01-10 21:10:02 -08:00
Leonardo de Moura
80e00a87c6
feat: add declare_syntax_cat command parser
2020-01-10 20:38:08 -08:00
Leonardo de Moura
799914daf2
feat: registerParserCategory
2020-01-10 20:32:16 -08:00
Leonardo de Moura
3c8d8c7434
feat: add attributeExtension
2020-01-10 19:51:53 -08:00
Leonardo de Moura
48600dbbfc
refactor: registerAttribute ==> registerBuiltinAttribute
2020-01-10 17:08:12 -08:00
Leonardo de Moura
f783115d21
refactor: SyntaxNode => Syntax at TermElab and CommandElab
...
@Kha It is too annoying to write `.val` all over the place. Moreover,
we now have `match_syntax`.
2020-01-10 15:17:58 -08:00