File: semgrep-grammars/src/tree-sitter-objc/LICENSE
Git repo name: tree-sitter-objc
Latest commit in repo: 18802acf31d0b5c1c1d50bdbc9eb0e1636cab9ed
Last change in file:
  commit a360943e0f108b7d0935924a4eb772ce1a6aaec7
  Author: Amaan Qureshi <amaanq12@gmail.com>
  Date:   Wed May 17 19:59:20 2023 -0400
  
      feat: Initial working parser
---
File: semgrep-grammars/src/tree-sitter-objc/grammar.js
Git repo name: tree-sitter-objc
Latest commit in repo: 18802acf31d0b5c1c1d50bdbc9eb0e1636cab9ed
Last change in file:
  commit 79d20da9a62d4f9996e034f47bf026c593c8a27a
  Author: Amaan Qureshi <amaanq12@gmail.com>
  Date:   Sun Dec 15 17:00:33 2024 -0500
  
      feat: upgrade tree-sitter-c, reduce state count
---
File: semgrep-grammars/src/semgrep-objc/grammar.js
Git repo name: semgrep
Latest commit in repo: ab2a1ab10ab7d850b5f2951c83050e3378191c1c
Last change in file:
  commit fd711d769479fc1a20340ed0cccdc955cb2aaa95
  Author: Corey Gagnon <gagnon.corey@gmail.com>
  Date:   Mon Sep 21 08:31:31 2026 -0700
  
      feat: add Objective-C language support (objc)
      
      Add Objective-C (`objc`, `.m` files, alpha maturity), closing #9265.
      
      Grammar (libs/ocaml-tree-sitter-semgrep):
      - lang/semgrep-grammars/src/semgrep-objc: overlay grammar on
        tree-sitter-grammars/tree-sitter-objc v3.0.2 adding the semgrep pattern
        constructs (metavariables via the base identifier rule, ellipsis, deep
        ellipsis, named ellipsis, typed metavariables, and a __SEMGREP_EXPRESSION
        entry point), modeled on semgrep-cpp; corpus tests in
        test/corpus/semgrep.txt (83/83 incl. 75 inherited from tree-sitter-objc)
      - lang/upstream-grammars.json: `objc` entry pinned to tree-sitter-objc
        v3.0.2, generated with tree-sitter 0.26.3 / ABI 14, depending on the
        shared `c` entry (tree-sitter-objc inherits from tree-sitter-c)
      - lang/objc: standard descriptor (extensions, parsing-stats corpus,
        fyi.list, test/ok)
      
      Engine:
      - languages/objc/tree-sitter/semgrep-objc: vendored parser generated by the
        in-tree pipeline with tree-sitter 0.26.3 at ABI 14 (CST.ml, Parse.ml,
        Boilerplate.ml, parser.c), per languages/GRAMMAR_INTEGRATION.md
      - languages/objc/generic/Parse_objc_tree_sitter.ml: CST -> AST_generic
        converter covering message sends (first keyword segment as the method
        name, receiver/argument metavariables, keyword-position ellipsis), class
        interfaces/implementations, method/property/ivar declarations, control
        flow, blocks (lowered to Lambda so bodies stay analyzable), literals, and
        the C constructs Objective-C inherits; supports whole-file targets and
        bare-expression patterns
      - registration: Parse_target, Parse_pattern, Guess_lang, Check_pattern
        (dollar-identifiers are illegal in ObjC, so metavariables are safe),
        Pretty_print_AST (C-family groups), Test_parsing, dune wiring
      - semgrep_interfaces: objc Language entry, changed in the in-tree copy
        per that repo's contribution guidance
      - tests: tests/parsing/objc, tests/patterns/objc (message-send ellipsis in
        trailing and mid-keyword position, metavariable receiver, deep ellipsis,
        matching inside control flow), registered in Unit_parsing and Unit_engine
      
      Parsing stats over the lang/objc/projects.txt corpus: 95.0% line coverage
      across 44,685 lines (AFNetworking, SDWebImage, MBProgressHUD, Masonry).
      
      This implementation has been running in production, scanning a large
      Objective-C codebase. Objective-C++ (`.mm`) support is also in production
      there and will be proposed as a follow-up.
---
