You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 12, 2025. It is now read-only.
**⚠️ MIGRATION NOTICE**: This SC project has been renamed to **[Statifier](https://github.com/riddler/statifier)** for better discoverability and communication. All modules have been renamed from `SC.*` to `Statifier.*`.
An Elixir implementation of SCXML (State Chart XML) state charts with a focus on W3C compliance.
7
20
8
21
## Features
9
22
10
23
- ✅ **Complete SCXML Parser** - Converts XML documents to structured data with precise location tracking
11
-
- ✅ **State Chart Interpreter** - Runtime engine for executing SCXML state charts
24
+
- ✅ **State Chart Interpreter** - Runtime engine for executing SCXML state charts
12
25
- ✅ **Modular Validation** - Document validation with focused sub-validators for maintainability
13
26
- ✅ **Compound States** - Support for hierarchical states with automatic initial child entry
14
27
- ✅ **Initial State Elements** - Full support for `<initial>` elements with transitions (W3C compliant)
@@ -32,7 +45,7 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on
32
45
### Working Features
33
46
34
47
- ✅ **Basic state transitions** and event-driven changes
35
-
- ✅ **Hierarchical states** with optimized O(1) state lookup and automatic initial child entry
48
+
- ✅ **Hierarchical states** with optimized O(1) state lookup and automatic initial child entry
36
49
- ✅ **Initial state elements** - Full `<initial>` element support with transitions and comprehensive validation
37
50
- ✅ **Parallel states** with concurrent execution of multiple regions and proper cross-boundary exit semantics
38
51
- ✅ **Eventless transitions** - Automatic transitions without event attributes (also called NULL transitions in SCXML spec), with cycle detection and microstep processing
@@ -72,23 +85,23 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on
72
85
### **✅ Enhanced Parallel State Support**
73
86
74
87
-**`Cross-Parallel Boundaries`** - Proper exit semantics when transitions leave parallel regions
75
-
-**`Sibling State Management`** - Automatic exit of parallel siblings when transitions exit their shared parent
88
+
-**`Sibling State Management`** - Automatic exit of parallel siblings when transitions exit their shared parent
76
89
-**`Self-Transitions`** - Transitions within parallel regions preserve unaffected parallel regions
77
90
-**`SCION Compatibility`** - All 4 `cond_js` tests now pass, 6 parallel interrupt tests fixed
78
91
-**`Regression Prevention`** - 62 regression tests now validate all critical functionality
79
92
80
93
### **✅ Feature-Based Test Validation System**
81
94
82
95
-**`SC.FeatureDetector`** - Analyzes SCXML documents to detect used features
83
-
-**Feature validation** - Tests fail when they depend on unsupported features
96
+
-**Feature validation** - Tests fail when they depend on unsupported features
84
97
-**False positive prevention** - No more "passing" tests that silently ignore unsupported features
85
98
-**Capability tracking** - Clear visibility into which SCXML features are supported
86
99
87
100
### **✅ Modular Validator Architecture**
88
101
89
102
-**`SC.Validator`** - Main orchestrator (from 386-line monolith)
90
103
-**`SC.Validator.StateValidator`** - State ID validation
0 commit comments