#error #diagnostics #language #modeling #domain #sdml #parser-generator

sdml_error

Simple Domain Modeling Language (SDML) errors and diagnostics

6 releases

0.1.5 Feb 20, 2024
0.1.4 Feb 20, 2024

#7 in #sdml

Download history 6/week @ 2024-09-25 7/week @ 2024-10-02

244 downloads per month

Custom license

77KB
1.5K SLoC

Crate sdlm_error

Rust Library containing the error and diagnostic types for the Simple Domain Modeling Language (SDML).

crates.io docs.rs

This package is part of the Rust SDML project and specifically defines the error and diagnostic types for the project. 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.

                            ╭───────╮
                            │  CLI  │
                       ╔══  │ crate │  ══╗
                       ║    ╰───────╯    ║
┌╌╌╌╌╌╌╌╌┐             V                 V
┆        ┆       ╭──────────╮       ╭──────────╮       Formatted Source
┆ source ┆  ══>  │  parse   │  ══>  │ generate │  ══>  RDF Representation 
┆  file  ┆    ╭──│  crate   │───────│   crate  │──╮    Documentation
┆        ┆    │  ╰──────────╯       ╰──────────╯  │    Diagrams
└╌╌╌╌╌╌╌╌┘    │             core crate            │──╮
              ╰───────────────────────────────────╯  │
 ┌───────┐             ⋀          error crate        │
 │ other │             ║  ╌╌╌╌╌╌╌╌╌╌╌╌╌╌─────────────╯
 │ tools │  ═══════════╝
 └───────┘

Changes

Version 0.1.5

  • Feature: add new diagnostic for IdentifierNotPreferredCase where an identifier is not in the preferred case style for its usage.
    • Add new code to ErrorCode
    • Add new function identifier_not_preferred_case
    • Add new enum IdentifierCaseConvention used to identify the case style to enforce.

Version 0.1.4

  • Feature: improved a number of diagnostic help messages.
  • Feature: added shared UseColor type.

Version 0.1.3

  • Feature: add new diagnostic for DeprecatedTermUsed where an identifier includes a term listed in a supplied TermSet.
    • Add new code to ErrorCode
    • Add new function deprecated_term_used

Version 0.1.2

  • Feature: add new diagnostic for DoubleUnderscoredIdentifier where an identifier include two (or more) consecutive underscore characters.
    • Add new code to ErrorCode
    • Add new function double_underscored_identifier

Version 0.1.1

  • Feature: add new diagnostic for PropertyReferenceNotProperty where the property name in a member does not resolve to a property definition.
    • Add new code to ErrorCode
    • Add new function property_reference_not_property

Version 0.1.0

Initial Release.

  • Error Handling:
    • Copy error module from sdml_core, rename as errors.
    • Remove diagnostics from the existing Error type.
  • Diagnostics:
    • Copy diagnostics module.
    • Create new diagnostics::codes module and ErrorCode enum.
    • Create new diagnostics::functions module and functions for each ErrorCode.
  • Diagnostic Reporting:
    • Create new diagnostics::reporter module.
    • Create new Reporter trait.
    • Create a StandardStreamReporter to emit colored and structured errors to the console.
    • Create a BailoutReporter that will turn the first diagnostic it is given into an error.

Dependencies

~11–20MB
~254K SLoC