mentat/edn
Richard Newman b2e98f44f6
Generalize Entity by value type. (#701) (#691) r=rnewman
* Part 3: Parameterize Entity by value type.

This isn't quite right, because after parsing, we shouldn't care
about` `edn::ValueAndSpan`, we should care only about edn::Value.
However, I think we can drop `ValueAndSpan` entirely if we just use
`rust-peg` (and its simpler error messages) rather than a mix of
`rust-peg` and `combine`.

In any case, this paves the way to transacting `Entity<TypedValue>`,
which is a nice step towards building general entities.

* Part 1: Add AttributePlace.

* Part 2: Name other places EntityPlace and ValuePlace.

Now we're consistent and closer to self-documenting.  Both matter more
as we expose `Entity` as the thing to build for programmatic usage.

* Part 4: Allow Ident and TempId in ValuePlace.

The parser will never produce these, since determining whether an
integer/keyword or string is an ident or a tempid, respectively, in
the value place requires the schema.

But a builder that produces `Entity` instances directly will want to
produce these.
2018-05-15 00:43:07 -07:00
..
src Generalize Entity by value type. (#701) (#691) r=rnewman 2018-05-15 00:43:07 -07:00
tests Allow pull aliases to be non-namespaced. (#694) r=nalexander 2018-05-14 10:45:48 -07:00
build.rs Implement a basic EDN parser. (#149) r=rnewman,bgrins,nalexander 2017-01-11 13:03:04 -08:00
Cargo.toml Combine NamespacedKeyword and Keyword. (#689) r=nalexander 2018-05-11 09:52:17 -07:00
README.md Update README for edn; r=me 2017-02-16 18:32:36 +00:00

This crate implements a basic EDN parser for Project Mentat.

It was originally developed as a separate project called barnardsstar.