Leonardo de Moura
60f8d17942
refactor(library/init/data/string/basic): simplify String.Iterator
...
The `offset` field is problematic because it prevents us from having an
efficient way of moving back and forth between `String.Pos` and `String.Iterator`.
@kha I temporarily added `String.OldIterator` for making sure the
parser doesn't break. This is a temporary fix that will be eliminated
after we replace `parsec`.
2019-03-25 07:57:12 -07:00
Leonardo de Moura
91204a52d6
chore(library/init/data/dlist): Dlist => DList
2019-03-21 17:03:22 -07:00
Leonardo de Moura
3befc219c9
chore(library/init): Empty => empty when it is a function
2019-03-21 17:03:15 -07:00
Leonardo de Moura
2be87ecd92
chore(library/init): Bool.tt => Bool.true and Bool.ff => Bool.false
2019-03-21 15:06:44 -07:00
Leonardo de Moura
04e20623e6
chore(*): use lowercase dir names
2019-03-21 15:06:44 -07:00
Leonardo de Moura
67fb78bb47
chore(*): renaming files
2019-03-21 15:06:44 -07:00
Sebastian Ullrich
beda5f5f43
chore(library): capitalize types and namespaces
2019-03-21 15:06:43 -07:00
Sebastian Ullrich
b939162168
chore(library): switch from snake_case to camelCase
2019-03-21 15:06:43 -07:00
Leonardo de Moura
ecdb9d6df0
feat(library/init, frontends/lean): add abbreviation for abbreviation
2019-03-15 16:01:25 -07:00
Sebastian Ullrich
e0bbc094ad
chore(library/init): remove coroutines from stdlib
2019-03-08 15:34:17 +01:00
Sebastian Ullrich
234e4d1e8a
refactor(library/init/lean/elaborator): replace coroutines with explicit state
2019-03-08 15:23:01 +01:00
Sebastian Ullrich
81615fc856
refactor(library/init/lean/parser/module): replace coroutines with explicit snapshot state
2019-03-07 10:32:28 -08:00
Sebastian Ullrich
6f83faaee0
perf(library/init/lean/parser/command): index command parsers by first token
2019-03-07 11:28:42 +01:00
Sebastian Ullrich
cfce916438
perf(library/init/lean/parser/module): make sure commands_aux is tail-recursive
2019-03-06 13:58:26 +01:00
Sebastian Ullrich
85bc52b9f2
feat(library/init/lean/frontend): profile frontend
2019-03-06 11:08:38 +01:00
Sebastian Ullrich
bd70dc1fc9
perf(library/init/lean/parser): move backtrackable state from parser_core_t to module_parser_m
2018-11-08 15:58:41 +01:00
Sebastian Ullrich
41f4a34d4b
feat(library/init/lean/parser/token): cache hit statistics
2018-11-08 14:52:54 +01:00
Sebastian Ullrich
090c4c0ce7
feat(library/init/lean/syntax): add lazily propagated macro scopes to syntax_node
2018-11-06 16:46:50 +01:00
Sebastian Ullrich
0d7ea62f9a
perf(frontends/lean/elaborator,library/init/lean): put out_params first to benefit from instance pre-filtering
2018-10-30 17:43:05 +01:00
Sebastian Ullrich
2e0d6649be
perf(library/init/lean/parser/basic): make basic_parser_m semireducible
2018-10-30 17:43:05 +01:00
Leonardo de Moura
89afabae29
refactor(library/init/lean/parser/parsec): make sure custom error message doesn't need to be inhabited
2018-10-21 10:57:23 -07:00
Sebastian Ullrich
ca8e75be9e
fix(library/init/lean/elaborator): check for and consume end of input
2018-10-03 16:00:08 -07:00
Sebastian Ullrich
097b7be14f
refactor(library/init/lean/parser/token): change raw view type to option syntax_atom and create raw_str to give some raw parsers view defaults
2018-10-02 14:55:28 -07:00
Sebastian Ullrich
df278096c4
fix(library/init/lean): fixes fixes fixes
2018-09-28 13:08:25 -07:00
Sebastian Ullrich
2e5ea16e2f
perf(library/init/lean/parser): cache consecutive calls to token at the same position
...
Parser performance improved by about 33%
2018-09-27 16:08:19 -07:00
Sebastian Ullrich
e661aaeacf
refactor(library/init/lean/parser): store registered parsers in configs, use config hierarchy to avoid mutually recursive types
...
And other refactorings along the way
2018-09-27 10:05:10 -07:00
Sebastian Ullrich
2c07922327
refactor(library/init/lean/parser): minimize parser_state, have the module coroutine take and return parser_config
2018-09-26 13:20:07 -07:00
Sebastian Ullrich
07901fcfcb
refactor(library/init/lean/parser/module): put prelude and imports into non-optional header parser to make the life of the elaborator and other consumers a bit easier
2018-09-26 13:20:07 -07:00
Sebastian Ullrich
1d01e81de8
refactor(library/init/lean/parser): do not construct final syntax tree independent from intermediate outputs
...
This makes sure we have a single consistent view of the file
2018-09-25 18:28:53 -07:00
Sebastian Ullrich
c7c459d47b
Revert "perf(library/init/lean/parser): collect tokens in trie instead of list, do not inline"
...
This reverts commit e4c50b2b09 .
Lists are efficient enough and make it easier to customize the trie construction.
Keep the `donotinline` though.
2018-09-20 09:38:10 -07:00
Leonardo de Moura
5ff9e24b17
feat(library/init/control): do not use unnecessary structures
...
It confuses the compiler.
2018-09-20 08:39:25 -07:00
Sebastian Ullrich
e4c50b2b09
perf(library/init/lean/parser): collect tokens in trie instead of list, do not inline
2018-09-19 12:36:34 -07:00
Sebastian Ullrich
a6f25e2ae7
refactor(library/init/lean/parser/token): id ~> ident, ident ~> ident.parser
2018-09-17 18:47:50 -07:00
Sebastian Ullrich
ae7df32428
refactor(library/init/lean/parser/syntax): setting source_info.leading is much easier after parsing
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
5e180cd170
feat(library/init/lean/parser/token): create structure-preserving syntax trees for identifiers
...
Also generalize `raw_symbol` to `raw`
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
98e09c274f
feat(library/init/lean/parser/{pratt,level}): factor out pratt combinator, implement level parsers
2018-09-13 16:38:40 -07:00
Leonardo de Moura
afd54039ab
chore(library): remove >>, we should use *>
2018-09-12 17:31:21 -07:00
Sebastian Ullrich
0d865b37dd
feat(library/init/lean/{message,parser}): enhance lean.message
...
Small regression: order of messages flipped, should eventually be sorted by
position
2018-09-08 18:37:58 -07:00
Sebastian Ullrich
1a53d4444b
feat(library/init/lean/parser): parameterize recursive term parser with rbp
2018-09-06 17:16:22 -07:00
Sebastian Ullrich
149dd2a5e3
refactor(library/init/lean/parser): move command parsers into separate file
2018-09-06 10:46:29 -07:00
Sebastian Ullrich
93d13ffea3
chore(library/init/lean): lean.parser.reader ~> lean.parser
2018-08-30 16:34:47 -07:00