17 releases

0.2.12 Feb 21, 2024
0.2.11 Feb 20, 2024
0.2.7 Jan 31, 2024
0.2.0 Nov 1, 2023
0.1.6 Jul 28, 2023

#4 in #sdml

Download history 9/week @ 2023-12-29 10/week @ 2024-01-05 37/week @ 2024-01-19 31/week @ 2024-01-26 1/week @ 2024-02-02 565/week @ 2024-02-16 142/week @ 2024-02-23 30/week @ 2024-03-01 278/week @ 2024-03-08 42/week @ 2024-03-15 14/week @ 2024-03-29

66 downloads per month
Used in 2 crates

Custom license

750KB
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 crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • Changes

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

~13–22MB
~315K SLoC