Skip to content

Releases: sdm-lang/tree-sitter-sdml

Major update to include dimension definitions

04 Nov 16:11
3efb5f3
Compare
Choose a tag to compare

Additions

  1. Add new dimension definition type to module body.
  2. Add as clause on imports for renaming.

Changes

  1. Make source keyword work across events and dimensions.
    1. New source clause is moved from event definition to event body.
  2. Relax type-class parameter requirements to be optional not required.

Removing member_group from grammar

20 Dec 18:17
26abbc9
Compare
Choose a tag to compare

Grammar tidy: type classes only

20 Oct 20:41
c257fdd
Compare
Choose a tag to compare

Grammar tidy, type classes only

20 Oct 20:37
980ebe2
Compare
Choose a tag to compare

Stabilization

12 Oct 14:32
980ebe2
Compare
Choose a tag to compare

Minor fixes and testing updates.

Minor usage updates only

29 Sep 15:32
a31b5b3
Compare
Choose a tag to compare

Add type classes to top-level definition list.

20 Sep 16:26
1ae5213
Compare
Choose a tag to compare

This release is primarily to implement type classes that allow a better description of the standard library for
constraints. Adding this support identified some simplifications in functional terms and sequence builders.

module example is
  class Typed(T) is
    def has_type(v -> T) → Type is
      @skos:definition = "Returns the SDML type of the passed value."@en
      @skos:example = "~type_of(rentals:Customer) = sdml:Entity~"
    end
  end
end

  • Feature: add type classes for managing the constraint language library.
    • Add: rule type_class_def and list it as an alternative in definition.
    • Add: rule method_def and include as member of type_class_def.
    • Remove: choice wildcard from rule function_type_reference, wildcards are only allowed on type class parameters.
  • Feature: simplify the rule quantified_sentence to only have a single quantified variable binding.
    • Alter: field binding in quantified_sentence to remove the repeat.
    • Alter: field body from _quantified_body to constraint_sentence.
    • Rename: rule quantifier_bound_names to quantified_variable to denote singular.
    • Alter: field source in quantified_variable to use existing term.
    • Remove: rules type_iterator and sequence_iterator.
  • Feature: simplify the structure of sequence builder to use quantified_sentence as body.
    • Alter: field body in rule sequence_builder from _variable_binding to sequence_builder_body.
    • Remove: rule _variable_binding.
    • Add: rule sequence_builder_body which is simply a reference to rule quantified_sentence.
  • Feature: add rule actual_aruments for use in rules atomic_sentence and functional_term.
  • Refactor: rename boolean constants.
    • Rename: _boolean_true to boolean_truth.
    • Rename: _boolean_false to boolean_falsity.

Full Changelog: v0.2.0...v0.2.1

Significant refactor intended to simplify the grammar

13 Sep 17:14
9baa3b7
Compare
Choose a tag to compare

This is a significant refactor intended to simplify the grammar, and reduce the number of constructs used where the
differentiation is not as significant as it looked previously.

  • Refactor: simplify model overall, especially members and features.
    • Refactor: combine by-value and by-reference member types.
      • Remove: rules member_by_value and role_by_value.
      • Rename: rule member_by_reference to member and role_by_reference to member_role.
      • Remove: keyword the ref from rules member and member_role.
      • Rename: rule identity_member to entity_identity.
    • Refactor: combine structured type groups.
      • Rename: rule structure_body to structured_body.
      • Rename: rule structure_group to member_group.
      • Move: common parts of structure and entity bodies into common _structured_body_inner rule.
    • Refactor: move feature from a definition to a member modifier.
      • Remove: rule feature_set_def, and update definition accordingly.
      • Add: optional keyword features into the rule _type_expression_to.
  • Feature: add new keyword opaque to datatype definition.
  • Style: Use := throughout for assignment by definition.
    • Add: silent rule _by_definition.
    • Alter rules value_variant, function_def, and constant_def to use _by_definition.
  • Style: rename rule _property_member to _property_reference.

Full Changelog: v0.1.42...v0.2.0

Simplified `features` definition

12 Sep 17:42
2a322e4
Compare
Choose a tag to compare
  • Feature: simplified features definition to be or/xor only.
    • Replace: separate bodies with UnionBody.
    • Add: cardinality now used to determine or/xor.

Full Changelog: v0.1.41...v0.1.42

Add feature sets

08 Sep 18:13
f182063
Compare
Choose a tag to compare
  • Feature: add support for features from Product Line Engineering.
    • Add new definition rule feature_set_def to rule definition.
    • Add and, or, xor bodies to feature_set_def.
    • Add basic documentation to book.
  • Feature: updates to builtin simple types.
    • Add the new type unsigned.
    • Add the new type binary.
    • Rename type iri_reference to iri.

Full Changelog: v0.1.40...v0.1.41