20 releases

0.3.0 Sep 1, 2024
0.2.14 Jun 28, 2024
0.2.12 Feb 21, 2024
0.2.7 Jan 31, 2024
0.1.6 Jul 28, 2023

#741 in Development tools

Download history 5/week @ 2024-07-23 6/week @ 2024-07-30 1/week @ 2024-08-20 192/week @ 2024-08-27 27/week @ 2024-09-03 31/week @ 2024-09-10 14/week @ 2024-09-17 35/week @ 2024-09-24 46/week @ 2024-10-01 40/week @ 2024-10-08 7/week @ 2024-10-15

124 downloads per month
Used in 3 crates

Custom license

745KB
16K SLoC

#+TITLE: Package sdml-parse #+AUTHOR: Simon Johnston #+EMAIL: johnstonskj@gmail.com #+LANGUAGE: en #+STARTUP: overview hidestars inlineimages entitiespretty #+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil

Rust Parser for the Simple Domain Modeling Language (SDML).

[https://crates.io/crates/sdml_parse] [https://docs.rs/sdml_parse]

This package is part of the Rust SDML project and specifically implements a parser from SDML surface syntax to the in-memory model representation. The project's intent is to provide an idiomatic implementation of the in-memory model, parser, generators, and the CLI tool.

The following figure demonstrates this package in the broader project context.

#+CAPTION: Package Organization #+BEGIN_EXAMPLE ╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ Formatted Source ┆ source ┆ ══> │ parse │ ══> │ generate │ ══> RDF Representation ┆ file ┆ ╭───│ crate │───────│ crate │───╮ Documentation ┆ ┆ │ ╰───────╯ ╰──────────╯ │ Diagrams └╌╌╌╌╌╌╌╌┘ │ core/errors crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • Changes

Version 0.3.0

  • Feature: updates to support the latest grammar, see sdml-core.

Version 0.2.13-0.2.14

  • Build: update dependency from =sdml_error= to =sdml-errors=.
  • Build: bump version of =sdml-core=.

Version 0.2.12

  • Fix: update all test cases with latest API changes.
    • Add file ID into all test example "ron" files.
    • Add module import Span into all test example "ron" files.
    • Use new HeaderValue in relevant test example "ron" files.
    • Add use of ModuleStore trait.

Version 0.2.11

  • Build: upgrade to =sdml_core= version =0.2.14= and the new =ModelStore= trait.

Version 0.2.10

  • Fix: Handle tree-sitter =ERROR= nodes correctly when they cause the top-level rule to fail.

Version 0.2.9

  • Build: Using =sdml_core= version =0.2.11= for updated validation.
  • Fix: minor changes found by better validation.

Version 0.2.8

  • Build: Using =sdml_core= version =0.2.10= for new stdlib names.

Version 0.2.7

  • Fix: Cardinality parser set incorrect default values.
    • Fix: For min/max it should be =one= and not =zero_or_one= as the default to match the =DEFAULT_CARDINALITY= constant in the model.
    • Fix: For ordering/uniqueness the default if not parsed should be =None= not =Some(Default::default())=.
    • Update: the =with_= constructors on =Cardinality= to take option types.

Version 0.2.6

  • Build: Removed indirect dependencies from Cargo.toml.

Version 0.2.5

  • Test: Update test cases for:
    • The new =source_file= field on =Module=.
    • The new =ModuleLoader= API requiring a =ModuleCache=.

Version 0.2.4

  • Fix: parsing new =rdf_def= rules now works correctly.
    • Updated test cases.

Version 0.2.3

  • Feature: add new stdlib modules with standard layout.
  • Feature: minor refactor of cache and loader.

Version 0.2.2

  • Feature: Update to latest grammar for version URIs and RDF definitions.
    • Add support for base URI on modules.
    • Add support for version info and URI on modules.
    • Add support for version URI on module import.
    • Parse RDF definitions for classes and properties.

Version 0.2.1

  • Feature: Remove member groups.

Version 0.2.0

  • Feature: Update to latest grammar.
    • Remove Value Variant numeric values.
    • Update formal constraints.
    • Add type classes.

Version 0.1.9

  • Added support for =mapping_type= and =mapping_value= rules.

Version 0.1.8

  • Removed macros from the resolver model.

Version 0.1.7

  • Updated parser with grammar changes in =tree-sitter-sdml= version =0.1.29=.
  • Added all the test cases from core.

Version 0.1.6

  • Updated parser with grammar changes in =tree-sitter-sdml= version =0.1.26=.

Version 0.1.5

  • Created a =stdlib= module and moved all the SDML and relevant RDF files into it.
  • Updated =tree-sitter-sdml= to version =0.1.21= with updated constraints.

Version 0.1.4

Previously part of a single crate [[https://crates.io/crates/sdml][sdml]].

Dependencies

~15–25MB
~356K SLoC