Sebastian Ullrich
10b18e77a1
feat(library/init/lean/parser/reader/basic): combinators: create partial syntax trees
2018-07-27 16:19:02 -07:00
Sebastian Ullrich
0b240cbfe9
feat(library/init/lean/parser/reader/basic): read_m: change custom message type to syntax
2018-07-27 15:27:37 -07:00
Sebastian Ullrich
389e9b7b49
feat(library/init/lean/parser/parsec): use [inhabited μ] instead of unit for custom message type of basic parsers
...
In hindsight, this seems to simplify usage without compromising static typing much
2018-07-27 15:10:20 -07:00
Sebastian Ullrich
65fd050b83
feat(library/init/lean/parser/parsec): add custom error message type
2018-07-27 14:29:50 -07:00
Sebastian Ullrich
ad1e72d3e1
fix(library/init/lean/parser/reader/module): fix file
2018-07-27 09:14:11 -07:00
Sebastian Ullrich
f714a6703f
refactor(library/init/lean/parser/reader/module): coercions and notations
2018-07-26 17:28:11 -07:00
Sebastian Ullrich
d526262266
refactor(library/init/lean/parser/reader/basic): rec_t.recurse: clearer implementation
2018-07-26 17:28:11 -07:00
Sebastian Ullrich
669de39df8
refactor(library/init/lean/parser/reader/module): make symbol a local coercion
2018-07-26 17:28:11 -07:00
Leonardo de Moura
5d3f421e70
feat(library/init/lean/parser/parsec): avoid unnecessary [alternative m] dependencies
2018-07-26 15:51:00 -07:00
Leonardo de Moura
35b100bb94
feat(library/init/lean/parser/parsec): implement not_followed_by using catch
2018-07-26 15:47:19 -07:00
Sebastian Ullrich
134d27dbec
feat(library/init/lean/parser/parsec): longest_match should return all longest parses
...
In the case of overlapping notations, we will return a choice node of all
possible parses.
2018-07-25 18:07:56 -07:00
Sebastian Ullrich
18b4456a84
Revert "refactor(library/init/lean/parser/parsec): monad_parsec: move from monad_lift/monad_map to direct primitives"
...
This reverts commit 9db0724bf1 .
2018-07-25 13:53:29 -07:00
Sebastian Ullrich
218af640bb
fix(library/init/lean/parser/reader/term): add missing file
2018-07-20 18:44:37 +02:00
Sebastian Ullrich
1c561726de
feat(library/init/lean/parser/reader/module): basic notation command
2018-07-18 17:45:37 +02:00
Sebastian Ullrich
8444a7412e
feat(library/init/lean/parser/reader/basic): add a small monad transformer for managing recursion and use it to implement recursive section parsing
2018-07-16 18:39:23 +02:00
Sebastian Ullrich
68936e3f80
fix(library/init/lean/format): ensure to_fmt (f : format) = f
2018-07-16 18:14:01 +02:00
Sebastian Ullrich
5b55600e71
feat(library/init/lean/parser/reader/module): open command
2018-07-16 12:38:27 +02:00
Sebastian Ullrich
9e5ae42625
chore(library/init/lean/parser/reader/token): improve error messages
2018-07-13 16:10:13 +02:00
Sebastian Ullrich
09a0397648
fix(library/init/lean/parser/reader/token): fix keyword parsing using longest_match
2018-07-13 15:51:48 +02:00
Sebastian Ullrich
8707773872
feat(library/init/lean/parser/parsec): introduce observing and longest_match primitive parser combinators
2018-07-13 15:51:00 +02:00
Sebastian Ullrich
9db0724bf1
refactor(library/init/lean/parser/parsec): monad_parsec: move from monad_lift/monad_map to direct primitives
...
This breaks the code for variable-length tokens that depended on lifting
`parsec` into `read_m`. Either `read_m` could be parameterized by its state,
or we just hard-code all variable-length tokens.
2018-07-12 17:53:43 +02:00
Sebastian Ullrich
5955e3fce8
chore(library/init/lean/parser/parsec): proper namespacing
2018-07-12 10:35:22 +02:00
Sebastian Ullrich
72b255d4e1
chore(library/init/lean/parser/parser_t): rename module and type to parsec to avoid nested use of parser
2018-07-12 10:35:20 +02:00
Sebastian Ullrich
e57117a9b3
chore(library/init/lean/parser/parser_t): revert introduction of parser_t
2018-07-11 18:44:04 +02:00
Sebastian Ullrich
6fa4e56fbe
feat(library/init/lean/parser/syntax): add and test reprinter
2018-07-11 14:34:50 +02:00
Sebastian Ullrich
b2f9b2c180
feat(library/init/lean/parser/{syntax,reader}): store whitespace around tokens
2018-07-11 14:34:50 +02:00
Sebastian Ullrich
67d93ff051
fix(library/init/lean/parser/reader/token): fix loops running out of fuel
2018-07-06 15:56:01 +02:00
Sebastian Ullrich
ab19966d65
feat(library/init/lean/parser/reader): automatically promote tokens through readers
2018-07-05 18:01:17 +02:00
Sebastian Ullrich
fbdb73665f
test(tests/lean/reader1): start testing the tokenizer on core.lean and fix a comment bug
2018-07-05 16:51:48 +02:00
Sebastian Ullrich
6b6c16b6d6
chore(library/init/lean/parser/reader/module): remove theory command
...
We plan to allow `noncomputable`, as well as more modifiers, on `namespace/section`
2018-07-05 10:42:52 +02:00
Sebastian Ullrich
8ef87818ce
feat(library/init/lean/parser/reader): implement basic tokenizer
2018-07-05 10:42:37 +02:00
Sebastian Ullrich
d0e53be0dd
feat(library/init/lean/parser/parser_t): improve str's error message and allow error messages without 'unexpected' part
...
Showing the expected string at the initial position is much more helpful than
showing "unexpected <char>"
2018-07-05 10:20:25 +02:00
Sebastian Ullrich
47f18661c5
refactor(library/init/lean/parser/parser_t): remove some uses of lift
2018-06-29 16:39:45 +02:00
Leonardo de Moura
bda46cc9ac
feat(kernel): add inductive_decl type on top of runtime/object, and ajust kernel/inductive.cpp
2018-06-26 12:16:33 -07:00
Leonardo de Moura
bb0b43798c
feat(kernel/declaration): add wrappers for accessing inductive/constructor/recursor declarations
2018-06-25 15:01:02 -07:00
Leonardo de Moura
f62256853c
refactor(library/init/lean/declaration): use lean.declaration to implement init.meta.declaration
2018-06-25 13:08:13 -07:00
Leonardo de Moura
9c6238e1ac
refactor(kernel/declaration): reducibility hints as runtime/object
2018-06-25 08:04:44 -07:00
Leonardo de Moura
ef6ed1e660
feat(library/init/lean/declaration): add lean.declaration
2018-06-23 10:19:26 -07:00
Leonardo de Moura
fdbb1964e0
chore(library/init/lean/expr): document mvar new design
2018-06-22 15:06:36 -07:00
Leonardo de Moura
1063905d07
chore(kernel/expr): reorder constructors and fix typo
2018-06-22 12:39:16 -07:00
Leonardo de Moura
318530cf07
refactor(library/init/meta/expr): use lean.expr
...
`expr` is finally non-meta
2018-06-22 10:29:56 -07:00
Leonardo de Moura
c5714c2fac
chore(kernel): remove expr.macro constructor
...
We are now ready to implement `expr` using `runtime/object`.
2018-06-19 17:54:43 -07:00
Leonardo de Moura
d87dfbfb03
chore(library/equations_compiler): remove equations macro
2018-06-19 13:41:08 -07:00
Leonardo de Moura
140e906267
chore(library/equations_compiler): remove equation and no_equation macros
2018-06-19 13:41:07 -07:00
Leonardo de Moura
b4f4924be4
chore(library/equations_compiler): remove as_pattern macro
2018-06-19 13:41:07 -07:00
Leonardo de Moura
c0a9b0bb4b
chore(frontends/lean): remove field_notation macro
...
In the new parser, field_notation will be a syntax object.
2018-06-19 13:41:07 -07:00
Leonardo de Moura
970d14afa9
refactor(frontends/lean/structure_instance): implement structure instances using mdata
2018-06-18 15:57:42 -07:00
Leonardo de Moura
f948892505
refactor(frontends/lean/choice): use mdata to implement choice
2018-06-18 14:21:11 -07:00
Leonardo de Moura
b84090aaca
feat(library/annotation): remove annonation macro
...
We now use the new `expr.mdata` constructor.
2018-06-18 13:39:02 -07:00
Sebastian Ullrich
70970ce5e0
feat(library/init/lean/parser/reader): add simplistic implementation of a tiny initial part of the Lean reader
...
Maybe 'reader' isn't the best name.
2018-06-18 19:23:58 +02:00