Files
mercator_parser/Cargo.toml
Lionel Sambuc 6ed76e485e Parser implementation
* Adaptation of the grammar to make more regular w.r.t reference space
   names placement.

 * Implemented Type check

 * Implemented prediction of the result set cardinality. This assumes:
    + A space is not infinite, this is required to compute complementary
      sets as we can compute the whole space volume.
    + Density is mostly uniform, this allows us to assume the number of
      results is related with a constant factor to the volume in space
      of the selection.
    + The prediction is approximated by using the most pessimistic
      resulting cardinality for each operator, in order to keep the
      operation simple, and fast, at the expense of the precision.

 * Implemented execution, which calls into a DB abstraction layer. That
   layer is currently mostly empty. Execution is also implemented in a
   naive way, and should most likely be optimised.
2019-09-10 14:38:31 +02:00

29 lines
702 B
TOML

[package]
name = "parser"
version = "0.1.0"
authors = ["Lionel Sambuc <lionel.sambuc@gmail.com>"]
edition = "2018"
build = "build.rs" # LALRPOP preprocessing
[lib]
name = "parser"
path = "src/lib.rs"
[[bin]]
name = "parser-driver"
path = "src/main.rs"
[dependencies]
lalrpop-util = "0.17.0"
regex = "0.2.1"
measure_time = "0.6" # To mesure parsing time, only required by binary
lazy_static = "1.3.0" # for space.rs, might be removed once the full data model is provided by the use of the crate
# Logging macros API
log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] }
pretty_env_logger = "0.3" # Logger implementation
[build-dependencies]
lalrpop = "0.17.0"