# Changelog

All notable changes to this project will be documented in this file.

## [1.3.0] - 2025-08-10

### Added
- **Template and parameterization support**: Full template functionality with parameter substitution
- **Enhanced location attributes**: Support for `urgent`, `committed`, and invariant conditions  
- **Improved broadcast channel handling**: Proper synchronization vectors for broadcast channels
- **Complex guard conditions**: Enhanced parsing of compound boolean expressions with `&&`, `||`
- **Multiple assignment statements**: Support for comma-separated assignments in transitions
- **Template instance parsing**: Automatic detection and processing of template instantiations

### Enhanced  
- **XTA parser improvements**: Better multi-line content normalization and section splitting
- **Expression translator**: Added parameter substitution and constant resolution
- **Transition parsing**: Enhanced support for complex transition statements
- **Error handling**: More robust parsing with better error reporting

### Fixed
- Template parameter substitution in expressions
- Broadcast vs. point-to-point synchronization vector generation  
- Multi-line transition statement parsing with proper brace matching
- Location attribute parsing (`urgent`, `committed`, invariant conditions)

## [1.2.0] - 2024-XX-XX

### Added
- Initial JavaScript implementation of uppaal-to-tchecker
- Complete CLI interface compatible with C++ version
- Programmatic API for Node.js applications
- Support for XTA and XML input formats
- Expression translation with full operator support
- Declaration processing for variables, clocks, and arrays
- Channel synchronization (CCS-like and broadcast)
- Process template instantiation
- TChecker output format generation
- Comprehensive test suite
- Documentation and examples

### Features
- **Input Formats**: XTA, XML (auto-detection supported)
- **Language Support**: XTA, TA languages
- **Synchronization**: Point-to-point and broadcast channels
- **Data Types**: int, bool, clock, scalar types
- **Arrays**: Automatic flattening for complex arrays
- **Templates**: Parameter substitution and instantiation
- **Locations**: Urgent and committed location support
- **Expressions**: Full expression evaluation and translation

### Compatibility
- Node.js >= 14.0.0
- CLI interface identical to C++ version
- Output format identical to original implementation
- Same translation semantics and limitations

### Dependencies
- xml2js: ^0.6.2 (XML parsing)
- commander: ^11.1.0 (CLI interface)
- chalk: ^4.1.2 (Terminal colors)

### Development Dependencies
- jest: ^29.7.0 (Testing)
- webpack: ^5.89.0 (Building)

## Future Releases

### Planned Features
- Template specialization improvements
- Better error messages with location information
- Support for more Uppaal language features
- Performance optimizations
- Web browser compatibility
- TypeScript definitions