Commits

trunk
Switch branches/tags
All users
Until Dec 17, 2025
December 2025
Su Mo Tu We Th Fr Sa
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

Commits on December 17, 2025

  1. Add -NUM context shorthand (e.g., -3 = -C 3)
    GNU grep supports -NUM as a shorthand for -C NUM.
    This is commonly used: `grep -3 pattern` instead of `grep -C 3 pattern`.
    espadonne committed
  2. Add Unicode support, increase line buffer, fix mixed line endings
    - Enable PCRE2_UTF and PCRE2_UCP for full Unicode support
    - Unicode character classes (\p{L}, \p{N}, etc.) now work
    - Unicode case folding for -i flag
    - Increase max_line_len from 8KB to 1MB
    - Strip trailing \r for Windows line endings on Unix
    - Add 4 Unicode tests to test suite (71 total)
    espadonne committed
  3. Add full PCRE support via libpcre2
    Implements -P/--perl-regexp with complete PCRE2 functionality:
    - Lookahead/lookbehind assertions
    - Non-capturing groups (?:...)
    - Named groups (?P<name>...)
    - PCRE character classes (\d, \w, \s, etc.)
    - Word boundaries (\b)
    
    New pcre_api.f90 module provides C bindings to libpcre2-8.
    Makefile now links against libpcre2 via pkg-config.
    espadonne committed
  4. Add output enhancements: -o, context lines, color
    - Fix -o to print only matched portions (multiple per line)
    - Implement context lines (-A, -B, -C) with group separators
    - Add --color=always support with ANSI escape codes
    - Add tests for output options and context lines
    espadonne committed
  5. Integrate regex engine for BRE/ERE support
    - Update Makefile with regex module dependencies and comprehensive tests
    - Update ferp_matcher.f90 to use regex_api for pattern matching
    - Update main.f90 to compile patterns once for efficiency
    - Add 36 tests covering BRE, ERE, POSIX classes, anchors, quantifiers
    espadonne committed
  6. Add Thompson NFA regex engine
    - regex_types.f90: Token, AST, and NFA data structures
    - regex_lexer.f90: BRE/ERE pattern tokenization with POSIX classes
    - regex_parser.f90: Recursive descent parser for AST construction
    - regex_nfa.f90: Thompson construction algorithm
    - regex_engine.f90: NFA simulation with epsilon closure
    - regex_api.f90: Public interface (compile, match, search)
    espadonne committed
  7. espadonne committed
  8. espadonne committed
  9. espadonne committed
  10. espadonne committed
  11. espadonne committed