Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: coder-dong/JSGFTools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: syntactic/JSGFTools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 21 files changed
  • 3 contributors

Commits on May 17, 2018

  1. Create LICENSE

    syntactic authored May 17, 2018
    Configuration menu
    Copy the full SHA
    fe70551 View commit details
    Browse the repository at this point in the history
  2. I'm updating the copyright information contained within the source co…

    …de - I didn't actually think that anyone would be using this code at all, so previously the information was invalid. I'm copying the contents of the LICENSE file into the header comments of the Python source.
    syntactic authored and syntactic committed May 17, 2018
    Configuration menu
    Copy the full SHA
    680ad42 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2018

  1. I've added an encoding header and setup file. Thanks to Thomas Sauvag…

    …e for finding the encoding issue and also for the setup file.
    syntactic authored and syntactic committed May 18, 2018
    Configuration menu
    Copy the full SHA
    907b917 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2025

  1. Modernize codebase for Python 3.7+ compatibility and add comprehensiv…

    …e testing
    
    Major updates:
    - Full Python 3 compatibility: fixed print statements, string handling, and pyparsing issues
    - Added comprehensive test suite with 25 tests covering all functionality
    - Enhanced setup.py with proper packaging, dependencies, and console script entry points
    - Improved main functions with better error handling and argument validation
    - Updated README.md with modern documentation, examples, and installation instructions
    - Added development requirements and pytest configuration
    - Enhanced .gitignore for modern Python development
    
    All generators now work correctly with Python 3.7+ while maintaining backward compatibility
    with existing grammar files. The test suite ensures reliability for future development.
    syntactic committed Sep 15, 2025
    Configuration menu
    Copy the full SHA
    38a6ca4 View commit details
    Browse the repository at this point in the history
  2. Merge pull request syntactic#6 from syntactic/2025_update

    Modernize codebase for Python 3.7+ compatibility and add comprehensive testing
    syntactic authored Sep 15, 2025
    Configuration menu
    Copy the full SHA
    54a7470 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2025

  1. Implement modern OOP architecture with clean API and eliminate global…

    … variables
    
    Major architectural redesign to transform JSGFTools from college project to production-ready library:
    
    BREAKING CHANGES:
    - New jsgf package with clean object-oriented API
    - Grammar.from_file() and Grammar.from_string() factory methods
    - DeterministicGenerator and ProbabilisticGenerator classes with proper encapsulation
    - No more global variable dependencies - thread-safe and concurrent usage ready
    
    New Features:
    - Comprehensive type hints throughout codebase
    - Rich exception hierarchy with contextual error messages
    - GeneratorConfig for customizable behavior (recursion limits, random seeds)
    - Grammar validation and cycle detection
    - Iterator-based generation for memory efficiency
    - Legacy adapter maintains backwards compatibility
    
    Architecture:
    - Clean separation: Grammar parsing, AST representation, string generation, CLI
    - Proper encapsulation eliminates global state antipatterns
    - Factory methods and configuration objects for professional API design
    - Modern package structure with clear module responsibilities
    
    Performance:
    - Memory-efficient generators using iterators instead of building large lists
    - Thread-safe design allows concurrent usage
    - Configurable recursion limits and generation constraints
    
    The new API provides a clean migration path while maintaining full compatibility
    with existing grammar files through the legacy adapter.
    
    Example usage:
    ```python
    from jsgf import Grammar, DeterministicGenerator, GeneratorConfig
    
    grammar = Grammar.from_file("example.jsgf")
    config = GeneratorConfig(max_recursion_depth=100)
    generator = DeterministicGenerator(grammar, config)
    
    for sentence in generator.generate():
        print(sentence)
    ```
    syntactic committed Sep 16, 2025
    Configuration menu
    Copy the full SHA
    5faf0b1 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2025

  1. Add comprehensive Unicode support and publish to PyPI (v2.1.1)

    - Add Unicode support for 10+ major language scripts (Chinese, Japanese,
      Korean, Arabic, Russian, Hebrew, Greek, Thai, Hindi, and more) in both
      parsers (legacy and modern)
    - Add 11 comprehensive Unicode tests covering all supported scripts
    - Fix argparse support in DeterministicGenerator CLI (--help now works)
    - Publish to PyPI as 'jsgf-tools' package
    - Add modern pyproject.toml for Python packaging standards
    - Add MANIFEST.in for proper file inclusion in distribution
    - Update README with PyPI installation instructions and Unicode examples
    - Update setup.py with enhanced metadata and keywords
    syntactic committed Oct 6, 2025
    Configuration menu
    Copy the full SHA
    f0fad03 View commit details
    Browse the repository at this point in the history
  2. Merge pull request syntactic#7 from syntactic/2025_update

    Add comprehensive Unicode support and publish to PyPI (v2.1.1)
    
    - Add Unicode support for 10+ major language scripts (Chinese, Japanese,
      Korean, Arabic, Russian, Hebrew, Greek, Thai, Hindi, and more) in both
      parsers (legacy and modern)
    - Add 11 comprehensive Unicode tests covering all supported scripts
    - Fix argparse support in DeterministicGenerator CLI (--help now works)
    - Publish to PyPI as 'jsgf-tools' package
    - Add modern pyproject.toml for Python packaging standards
    - Add MANIFEST.in for proper file inclusion in distribution
    - Update README with PyPI installation instructions and Unicode examples
    - Update setup.py with enhanced metadata and keywords
    syntactic authored Oct 6, 2025
    Configuration menu
    Copy the full SHA
    66413ce View commit details
    Browse the repository at this point in the history
Loading