Commit graph

977 commits

Author SHA1 Message Date
Leonardo de Moura
f8fba6877b fix(library/init/lean/parser/parser): add ident as possible first token for symbolOrIdent 2019-07-14 08:19:42 -07:00
Leonardo de Moura
1dce4a8f70 feat(library/init/lean/parser/parser): add symbolOrIdent 2019-07-14 08:09:04 -07:00
Leonardo de Moura
a843c0be55 feat(library/init/lean/parser/parser): shared TokenTable 2019-07-14 07:53:24 -07:00
Leonardo de Moura
52157cebf7 feat(library/init/lean/parser): add ParserAttribute skeleton 2019-07-14 07:16:14 -07:00
Leonardo de Moura
18ab2be51c feat(library/init/lean/environment): use Thunk to store environment extension initial state 2019-07-13 13:58:20 -07:00
Leonardo de Moura
e4c9326c00 feat(library/init/lean/parser): add module.lean 2019-07-12 16:42:25 -07:00
Leonardo de Moura
728598520b chore(library/init/lean/parser/term): add new parser! and tparser! notations 2019-07-12 15:51:10 -07:00
Leonardo de Moura
d59d8e0d56 feat(library/init/lean/parser/command): add notation command 2019-07-12 14:18:08 -07:00
Leonardo de Moura
36da73b6cb feat(library/init/lean/parser/command): add (some) notation commands 2019-07-12 14:01:23 -07:00
Leonardo de Moura
151735d356 chore(library/init/lean/parser/parser): remove testParser 2019-07-12 13:57:56 -07:00
Leonardo de Moura
166a6fa75a feat(library/init/lean/parser/command): missing commands 2019-07-12 11:00:14 -07:00
Leonardo de Moura
7046a38e93 feat(library/init/lean/parser/command): add inductive, structure and class parsers 2019-07-12 10:21:59 -07:00
Leonardo de Moura
8751f68041 feat(library/init/lean/parser/command): more decl commands 2019-07-11 17:42:11 -07:00
Leonardo de Moura
49d5c83a18 feat(library/init/lean/parser/command): add abbrev 2019-07-11 17:30:29 -07:00
Leonardo de Moura
eed4c72fc5 fix(library/init/lean/parser/command): docComment 2019-07-11 17:28:51 -07:00
Leonardo de Moura
72477f3cc6 feat(library/init/lean/parser/command): improve how optional affects firstTokens field 2019-07-11 17:22:26 -07:00
Leonardo de Moura
d354dc437c feat(library/init/lean/parser/command): add declaration draft 2019-07-11 17:13:22 -07:00
Leonardo de Moura
05a3bab321 feat(library/init/lean/parser): add command.lean 2019-07-11 16:43:44 -07:00
Leonardo de Moura
3370ab7398 feat(library/init/lean/parser/term): allow equations to be used in let-decls 2019-07-11 13:13:08 -07:00
Leonardo de Moura
99393433a4 feat(library/init/lean/parser/term): do notation 2019-07-11 12:38:55 -07:00
Leonardo de Moura
711ab9f222 feat(library/init/lean/parser/term): missing notation 2019-07-11 10:34:49 -07:00
Leonardo de Moura
295cabed2e chore(library/init): remove unnecessary notations 2019-07-11 10:27:16 -07:00
Leonardo de Moura
57e2f1be2a feat(library/init/lean/parser/term): builtin operators 2019-07-11 10:13:00 -07:00
Leonardo de Moura
195fb27ce5 feat(library/init/lean/parser/term): add let 2019-07-11 09:51:34 -07:00
Leonardo de Moura
7b91d880d7 feat(library/init/lean/parser/term): add sortApp, inaccessible and explicit 2019-07-11 09:05:21 -07:00
Leonardo de Moura
2c979459a9 feat(library/init/lean/parser/parser): add many1Indent1 combinator
It is useful for create whitespace sensitive notation such as `match` expressions.
2019-07-10 16:10:41 -07:00
Leonardo de Moura
140cc45491 feat(library/init/lean/parser/term): whitespace sensitive match expression 2019-07-10 15:13:28 -07:00
Leonardo de Moura
f95ed02999 feat(library/init/lean/parser/parser): add withPosition and checkColGe parsers 2019-07-10 15:11:54 -07:00
Leonardo de Moura
17cc34def5 feat(library/compiler/compiler): add option compiler.extract_closed
It is useful when using `unsafeIO`
2019-07-10 11:08:34 -07:00
Leonardo de Moura
e55e5953d5 chore(library/init/lean/parser/term): remove manual eta expansions 2019-07-09 16:35:06 -07:00
Leonardo de Moura
5dae0303af chore(library/init/lean/parser): force eta expansion and remove unnecessary [inline]
TODO: improve eta-expansion step in the compiler.
2019-07-09 14:09:24 -07:00
Leonardo de Moura
eb69c914e8 chore(library/init/lean/parser/term): add missing [inline] 2019-07-08 22:06:52 -07:00
Leonardo de Moura
c00788a982 fix(library/init/lean/compiler/ir/emitcpp): header of big boxed functions 2019-07-08 21:52:01 -07:00
Leonardo de Moura
b89a389427 chore(library/init/lean/parser/parser): force eta-expansion 2019-07-08 20:46:34 -07:00
Leonardo de Moura
324a053f4c fix(library/init/lean/compiler/ir/resetreuse): bug at Dmain 2019-07-08 20:37:54 -07:00
Leonardo de Moura
95dc2c5ade chore(library/init/lean/parser): minor 2019-07-08 14:45:20 -07:00
Leonardo de Moura
f37cd3cd11 feat(library/init/lean/parser/term): match-expression
TODO: add whitespace sensitivity
2019-07-08 14:14:49 -07:00
Leonardo de Moura
5cfa13d08b fix(library/init/lean/parser/parser): consume whitespace in the beginning of the input 2019-07-08 14:13:50 -07:00
Leonardo de Moura
f66f6fd455 fix(library/init/lean/parser/parser): The first tokens of try p are the first tokens of p 2019-07-08 13:46:19 -07:00
Leonardo de Moura
846ec9578d fix(library/init/lean/parser/term): allow namedArgument notation in applications only 2019-07-08 13:43:12 -07:00
Leonardo de Moura
4a17cf134b feat(library/init/lean/parser/term): add forall parser 2019-07-08 13:03:21 -07:00
Leonardo de Moura
a6f9633e64 feat(library/init/lean/parser/term): dependent arrow notation 2019-07-08 12:57:49 -07:00
Leonardo de Moura
d3ca360e7f feat(library/init/lean/parser): depArrow proof of concept 2019-07-08 10:49:54 -07:00
Leonardo de Moura
e2bcf179ac fix(library/init/lean/parser/parser): missing trim 2019-07-08 10:33:51 -07:00
Leonardo de Moura
8b3d932212 chore(library/init/lean/parser): maxPrec ==> appPrec 2019-07-08 09:17:32 -07:00
Leonardo de Moura
1a81d60820 chore(frontends/lean/parser): simplify binder notation
The `<ident> : <expr>` now requires explicit brackets.
2019-07-08 08:54:19 -07:00
Leonardo de Moura
9334f54b87 feat(library/init/lean/parser/parser): support for whitespace sensitive left binding power
We use this new feature to implement array access notation `a[i]`.
2019-07-07 07:21:10 -07:00
Leonardo de Moura
2498f197b8 feat(library/init/lean/parser/term): declare some builtin infix operators
In Lean4, several builtin operators will be defined programmatically to
make sure we can bootstrap the system before we have all primitives
necessary for defining parsers.
2019-07-05 18:51:14 -07:00
Leonardo de Moura
794edcb18c chore(library/init/lean/parser): minor modifications 2019-07-05 18:31:03 -07:00
Leonardo de Moura
483b7ae51a feat(library/init/lean/parser/term): add field notation trailing parser 2019-07-05 16:23:25 -07:00