Joachim Breitner
03b681c056
doc: Add docstrings to dbg_trace and assert! in do blocks ( #2787 )
...
they had doc strings in their term forms, but the doElem variant did
not, as noted [on zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Infoview.20hangs.20after.20using.20.60IO.2Eprintln.60.20in.20.60Delab.60/near/399317734 )
2023-11-02 11:10:42 +01:00
Mario Carneiro
2037094f8c
doc: document all parser aliases ( #2499 )
2023-09-06 09:02:25 +00:00
Mario Carneiro
5661b15e35
fix: spacing and indentation fixes
2023-05-28 18:48:36 -07:00
Sebastian Ullrich
07953062ed
perf: remove unnecessary, cache-defeating withPosition in doReassignArrow
2022-11-28 08:14:03 -08:00
Sebastian Ullrich
43767f8f35
fix: uncacheable syntax stack access in doIf
2022-11-11 13:45:41 +01:00
Mario Carneiro
4bf89dfa12
feat: allow doSeq in let x <- e | seq
...
fixes #1804
2022-11-08 08:29:21 -08:00
Mario Carneiro
9b40613207
fix: formatting for if let and do if
2022-11-01 20:19:39 -07:00
Mario Carneiro
e7c7678ab0
refactor: line wrapping in parser code
2022-10-24 08:37:29 -07:00
Mario Carneiro
583e023314
chore: snake-case attributes (part 2)
2022-10-19 09:28:08 -07:00
Mario Carneiro
dd5948d641
chore: snake-case attributes (part 1)
2022-10-19 09:28:08 -07:00
Gabriel Ebner
fb4d90a58b
feat: dynamic quotations for categories
2022-10-18 14:59:14 -07:00
Sebastian Ullrich
2770b9e98b
chore: inheritDoc misbehaves on built-in parsers
2022-09-13 03:08:23 -07:00
Sebastian Ullrich
a4ac7087dc
doc: some do extensions
2022-09-13 03:08:23 -07:00
Sebastian Ullrich
4050227e5d
chore: revert marking internal notes as parser/elab docstrings
2022-08-31 17:49:43 -07:00
Mario Carneiro
0c3383c0b0
feat: support let mut x := e | alt
2022-08-10 06:29:49 -07:00
Mario Carneiro
e816424466
chore: use Category declarations for builtin cats too ( #1400 )
2022-08-03 18:10:54 -07:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! ( #1354 )
2022-07-22 12:05:31 -07:00
Sebastian Ullrich
3a61cc247e
chore: introduce doSeq antiquotation
2022-06-27 22:37:02 +02:00
Sebastian Ullrich
292d24ba19
feat: always store quoted kind in antiquotation kind
2022-06-27 22:37:02 +02:00
Leonardo de Moura
e52a7bdf42
feat: let/if indentation in do blocks
...
closes #1120
2022-06-13 16:18:49 -07:00
Sebastian Ullrich
3cf2afa42e
refactor: clean up parsers using withAnonymousAntiquot := false
2022-04-06 10:21:53 +02:00
Leonardo de Moura
92937b3aba
feat: add for h : x in xs do ... notation
...
The idea is to have `h : x \in xs`.
This commit just adds the parser.
2022-03-03 18:27:40 -08:00
Leonardo de Moura
93b5b74b36
feat: modify notation for providing motive in "match" expressions
2022-02-14 15:36:14 -08:00
Leonardo de Moura
5f74cd4968
feat: add let pat := val | elseCase do-notation
2022-02-03 15:55:03 -08:00
Gabriel Ebner
ab3e08190b
feat: allow opt-out of grouping in formatter
2021-12-15 11:42:38 +00:00
Gabriel Ebner
5d25df1a69
fix: indenting of match arms in declValEqns
2021-12-15 11:42:38 +00:00
Gabriel Ebner
2b7ec7f9ef
fix: spacing around (← monadic lifts)
2021-12-15 11:42:38 +00:00
Sebastian Ullrich
585fba69e8
refactor: remove redundancy from common register_parser_alias case
...
/cc @leodemoura
2021-09-20 13:20:23 +02:00
Sebastian Ullrich
73cf3533a1
fix: count quotation depth in parser correctly
2021-04-29 13:33:48 +02:00
Leonardo de Moura
1c23d68c6a
feat: add (generalizing := true/false) optional attribute to match
2021-04-15 17:04:25 -07:00
Sebastian Ullrich
bbf6c717fc
feat: introduce arg precedence
2021-03-22 16:33:37 +01:00
Leonardo de Moura
60a1b828ad
fix: fixes #348
2021-03-16 17:50:40 -07:00
Leonardo de Moura
ffb57e661f
chore: remove old notation
2021-03-11 11:24:52 -08:00
Leonardo de Moura
1112ab6eff
chore: use new notation
2021-03-11 11:19:33 -08:00
Leonardo de Moura
ca0baf12b6
chore: avoid ! suffix in builtin notation
2021-03-11 10:58:06 -08:00
Leonardo de Moura
164577d94e
chore: remove parser! and tparser!
...
The new macros are called "leading_parser` and `trailing_parser`.
cc @Kha
2021-03-11 09:36:58 -08:00
Leonardo de Moura
b3d83aa199
feat: set_option parser for terms and tactics
2021-03-06 15:38:02 -08:00
Leonardo de Moura
4a39201d55
fix: ambiguity
...
```
def f (x : Nat) : IO Unit := do
IO.println x
open Nat in
def g (x : Nat) := succ x
```
cc @Kha
2021-03-06 15:33:00 -08:00
Leonardo de Moura
7b813622c6
chore: increase precedence of |>, <|, $ parsers
...
@Kha Now, all parsers defined by `Init/Std/Lean` packages have
precedence >= `min` and <= `max`.
The only exception is `<|>` since it is an infix operator sharead with
the tactic DSL.
BTW, the meaning of `f $ a <|> b` changed with this commit.
It was `f (a <|> b)`, and now is `(f a) <|> b`. The problem is that
the precedence of the `$` parser is now greater than the `<|>` parser.
I will try another experiment where I make sure we do not "reuse"
term infix operators in the tactic DSL.
2020-12-22 14:10:07 -08:00
Sebastian Ullrich
bc3e9ce961
feat: if let pat ← ...
2020-12-20 23:58:29 +01:00
Sebastian Ullrich
90f747e346
fix: don't change antiquotations semantics in do if
2020-12-20 17:51:37 +01:00
Sebastian Ullrich
eeb0cad29e
feat: if let
...
/cc @leodemoura
2020-12-20 16:46:03 +01:00
Leonardo de Moura
0911936502
feat: parallel for notation
2020-12-19 19:26:53 -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
Sebastian Ullrich
4dfa7e1187
feat: use actual separator in sepBy antiquotation scope
2020-12-09 17:48:05 +01:00
Leonardo de Moura
c476954eef
feat: heterogeneous OrElse and AndThen
...
@Kha I had a few issues similar to the `Append` issues.
We used a similar idiom for writing builtin parsers where we may write
```
def p : Parser := "foo " >> "bla "
```
as a shorthand for
```
def p : Parser := symbol "foo " >> symbol "bla "
```
I want to support `builtin syntax` one day :)
That being said, we should decide whether we keep `HAppend`, `HOrElse`,
and `HAndThen` or not.
The only one I wish I had in the past is `HAndThen`.
2020-12-01 18:32:24 -08:00
Leonardo de Moura
2909313475
fix: doLetArrow and doReassignArrow
...
@Kha the new tests did not work without this fix.
The `| _ =>` was being parsed as part of the `doLetArrow` and `doReassignArrow`
2020-11-26 10:29:08 -08:00
Sebastian Ullrich
375e6232e0
chore: introduce doSeqItem kind
2020-11-25 12:10:49 +01:00
Sebastian Ullrich
bd7bb6f5b5
fix: do formatting
2020-11-25 11:30:24 +01:00
Leonardo de Moura
360fa1638f
chore: rename Parser.try to Parser.atomic
...
Reason: `try` is a keyword.
cc @Kha
2020-11-17 08:25:01 -08:00