Skip to content

Conversation

@LeBoufty
Copy link
Contributor

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    not work as expected)
  • Documentation update

Description

Complete language plugin for C. Performs both manifest creation and symbol extraction.

LeBoufty and others added 14 commits May 7, 2025 10:36
* Added C parser

* Update package-lock.json

* Added C components to export

* Export parent classes of nested classes (#126)

* Types

* JSDoc comments

* First shot at parsing

* Why doesn't my autoformatter work anymore

* Added .c test file management

* Fixed property name

* Fixed property name

* First round of tests

* Fixed disastrous spelling mistake
* Added macros to header resolution

* Added safety for unnamed structs

* Typedef handling

* Handling of struct declaration inside a typedef

* Refactored tests

* Symbol registry

* New test file

* Added tests for registry
* Include resolver

* Added tests to include resolver

* Tests for several internal includes
* Removed (useless) specifier checking for symbols

* Invocation resolver

* Added definitionPath to functions

* Added getInvocationsForSymbol

* Added registration of undeclared functions such as main

* Tests for invocation resolver
* Dependency formatter

* Added tests to formatter

* C Manifest generation

* Added C function to handler

* Changed logic for function name resolution

* Added C to languages

* Fixed macro content not being parsed

* Improved include path logic

* Prevented overwriting of structs in header resolution

* Recursively looks through inclusions

* Changed standard inclusion data type

* Safer query for typedef double-definitions

* Updated JSDoc for header query

* Separated function definition and signature

* Emergency include resolution

* Update crashcases.h

* added metrics

* added metrics to manifest
* back merge main in to branch

* Fixed deno-exclusive errors

* Fixed lint

---------

Co-authored-by: LeBoufty <boufto@gmail.com>
* Update .gitignore

* Added test:watch task to cli

* Update deno.lock

* Added typedefs to datatypes' invocations

* Added C file content map to test files

* Added .napirc to C test files

* C Extractor

* C Extraction binding
* Forced datatypes to have names

* New test file

* Warning manager

* Added warnings to manifest generation

* Added enum member management

* Added support for unnamed enums

* Removed unnamed enums from diagnostics
* Fixed definesToKeep can have undefined

* Gave signature/definition linking responsibility to includeResolver

* Removed leftover logging

* Added caching to include resolution

* Changed internal inclusion structure

* Changed structure for included symbols

* Switched invocations to IncludedSymbol

* Added first-level include recursion management

* Removed includes for deleted files

* Includedirs and compaction

* Extraction refinement

* Fixed bad handling of typedefs with same name

* Improved recursive inclusion resolution

* Added credits
@LeBoufty LeBoufty merged commit 9859f33 into main May 30, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants