Skip to content

feat: implement basic expressions, function calls and literals - #2

Merged
Seddryck merged 6 commits into
mainfrom
codex/issue-1-basic-expressions
Aug 9, 2026
Merged

feat: implement basic expressions, function calls and literals#2
Seddryck merged 6 commits into
mainfrom
codex/issue-1-basic-expressions

Conversation

@Seddryck

@Seddryck Seddryck commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • implement root, open, and closed expression syntax with function pipelines
  • add catalogue-independent function calls and positional value arguments
  • support numeric, boolean, quoted, date, date-time, and time literals
  • add syntax highlighting captures and regenerate Tree-sitter artifacts
  • cover valid syntax and explicit rejection cases with corpus tests

Impact

This establishes the initial concrete syntax tree required for future Expressif grammar features while keeping callable resolution and validation in the semantic binding layer.

Validation

  • npm run generate
  • npm test — 31/31 corpus tests passed
  • npm pack --dry-run
  • git diff --check

Close #1

Summary by CodeRabbit

  • New Features
    • Added an Expressif language parser supporting expressions, pipelines, function calls, literals, temporal values, escapes, and whitespace.
    • Added syntax highlighting for functions, literals, strings, and date/time values.
    • Added C, Node.js, and Python integrations for using the parser.
    • Added build, installation, packaging, and testing support across supported environments.
  • Documentation
    • Added project documentation, contribution guidance, security reporting instructions, and development workflows.
  • Chores
    • Added repository formatting, file handling, dependency update, labeling, and continuous integration configuration.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@Seddryck, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 31 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d982898b-c185-4f36-97e7-19c9a1775927

📥 Commits

Reviewing files that changed from the base of the PR and between d45a64e and d2d1977.

📒 Files selected for processing (14)
  • .github/workflows/ci.yml
  • CMakeLists.txt
  • Makefile
  • SECURITY.md
  • bindings/node/index.d.ts
  • grammar.js
  • package.json
  • pyproject.toml
  • queries/highlights.scm
  • src/grammar.json
  • src/node-types.json
  • src/parser.c
  • test/corpus/expressions.txt
  • test/corpus/invalid.txt
📝 Walkthrough

Walkthrough

The repository adds an Expressif Tree-sitter grammar with generated parser artifacts, C, Node.js, and Python bindings, build configurations, syntax highlighting, parser corpus tests, documentation, and CI workflows.

Changes

Expressif parser implementation

Layer / File(s) Summary
Repository foundation
.editorconfig, .gitattributes, .github/*, .gitignore, AGENTS.md, CONTRIBUTING.md, README.md, SECURITY.md
Repository policies, formatting rules, automation, documentation, and security guidance are added.
Grammar and generated parser
grammar.js, tree-sitter.json, src/*, queries/highlights.scm, test/corpus/*
The grammar parses expressions, function calls, pipelines, numeric and boolean values, quoted strings, temporal literals, whitespace, and invalid inputs.
Native and language bindings
bindings/c/*, bindings/node/*, bindings/python/*, binding.gyp, package.json, pyproject.toml, setup.py
C, Node.js, and Python bindings expose the generated language and optional query metadata.
Native build and installation
CMakeLists.txt, Makefile, bindings/c/tree-sitter-expressif.pc.in
CMake and Make build, test, package, install, and uninstall the parser library and headers.
Continuous validation
.github/workflows/ci.yml
CI runs Tree-sitter parser tests and conditionally validates discovered C# projects.

Estimated code review effort: 5 (Critical) | ~90+ minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant TreeSitterCLI
  participant GeneratedParser
  participant LanguageBinding
  participant Parser
  Developer->>TreeSitterCLI: generate parser artifacts
  TreeSitterCLI->>GeneratedParser: write grammar and parser outputs
  LanguageBinding->>GeneratedParser: load tree_sitter_expressif
  GeneratedParser->>Parser: provide TSLanguage
  Parser-->>LanguageBinding: expose configured language
Loading
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR adds unrelated policy, CI, build-system, package-binding, documentation, and runtime files beyond issue #1's grammar and test scope. Move repository policy, CI, build-system, binding, documentation, and runtime additions into separate PRs; keep this PR focused on grammar, queries, generated artifacts, and tests.
Docstring Coverage ⚠️ Warning Docstring coverage is 35.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the implementation of basic expressions, function calls, and literals.
Linked Issues check ✅ Passed [#1] The grammar, generated artifacts, highlighting rules, and corpus tests cover the required expressions, calls, literals, pipelines, whitespace, and invalid syntax.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/issue-1-basic-expressions

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Seddryck
Seddryck marked this pull request as ready for review August 8, 2026 23:12

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 13

🧹 Nitpick comments (8)
queries/highlights.scm (1)

1-15: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider capturing escape_sequence and the punctuation tokens.

The grammar defines a named escape_sequence node. The query does not capture it, so escapes inside double_quoted_literal render with the plain string color. The delimiters |, (, ), and , are also uncaptured.

These additions are optional and only affect editor rendering.

♻️ Proposed additions
 [
   (double_quoted_literal)
   (backtick_quoted_literal)
 ] `@string`
 
+(escape_sequence) `@string.escape`
+
+"|" `@operator`
+
+[
+  "("
+  ")"
+] `@punctuation.bracket`
+
+"," `@punctuation.delimiter`
+
 [
   (date_literal)
   (date_time_literal)
   (time_literal)
 ] `@string.special`
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@queries/highlights.scm` around lines 1 - 15, Update the highlight query to
capture the named escape_sequence node with an appropriate escape-related
capture, and add punctuation captures for the |, (, ), and , tokens. Keep the
existing function, number, boolean, string, and date/time captures unchanged.
setup.py (1)

8-8: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

setup.py depends on two deprecated packaging APIs. Both sites rely on packaging helpers that setuptools and wheel have deprecated and plan to remove, so a future dependency upgrade breaks the Python build rather than warning.

  • setup.py#L8-L8: replace the wheel.bdist_wheel import with setuptools.command.bdist_wheel, and keep a try/except ImportError fallback to the wheel location for older setuptools versions.
  • setup.py#L13-L16: replace the distutils-provided self.copy_tree("queries", dest) call with shutil.copytree("queries", dest, dirs_exist_ok=True) and import copytree at the top of the file.

Pin a minimum setuptools version in the build requirements once setuptools.command.bdist_wheel is used, so the fallback path is only exercised where it is needed.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@setup.py` at line 8, The deprecated packaging APIs in setup.py must be
replaced: at setup.py lines 8-8, import bdist_wheel from
setuptools.command.bdist_wheel with an ImportError fallback to
wheel.bdist_wheel; at lines 13-16, replace self.copy_tree("queries", dest) with
shutil.copytree using dirs_exist_ok=True and add the required import. Also pin a
minimum setuptools version in the build requirements to support the preferred
import while retaining the fallback for older versions.
test/corpus/invalid.txt (2)

165-180: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Rejection coverage is missing for several constructs named in the objectives.

The objectives require rejection of variables, references, named arguments, spread arguments, operators, and unquoted textual arguments.

This file covers variables at Lines 88-103 and unquoted textual arguments at Lines 165-180. It does not cover named arguments, spread arguments, operators, or references.

Add cases for the remaining constructs, for example foo(a: 1), foo(...a), 1 + 2, and the reference syntax the language reserves.

Do you want me to draft these corpus cases?

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/corpus/invalid.txt` around lines 165 - 180, Add rejection cases to
test/corpus/invalid.txt for the missing constructs: named arguments such as
foo(a: 1), spread arguments such as foo(...a), operators such as 1 + 2, and the
language’s reserved reference syntax. Match the existing invalid-corpus
structure and expected ERROR parse trees, while preserving the current variable
and unquoted-text cases.

9-17: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Pin the exact Tree-sitter CLI version for corpus error trees.

test/corpus/invalid.txt records full error-recovery output, but package.json only declares tree-sitter-cli with a caret bump policy and package-lock.json is uncommitted. Switch the dependency to an exact patch version or add the file-local CLI/recovery-source note so lockfile refreshes cannot change these expected trees.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/corpus/invalid.txt` around lines 9 - 17, Pin the tree-sitter-cli
dependency in package.json to an exact patch version, and commit the resulting
package-lock.json so corpus error trees remain reproducible. Use the dependency
declaration as the change point; do not alter the expected tree in
test/corpus/invalid.txt.
test/corpus/expressions.txt (2)

190-204: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

The test name claims preservation, but the assertion does not check it.

The case is named "Backtick text preserves punctuation and whitespace". The expected tree contains only (backtick_quoted_content) with no source text. The test passes for any single content token, so it does not verify that the leading space, the comma, the parentheses, and the trailing space are inside the literal.

Add a second case that shows the distinction, for example a backtick literal used as a positional argument next to an unquoted equivalent that is rejected. Also consider adding cases for a temporal literal and a backtick literal used as call arguments. No such case exists today.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/corpus/expressions.txt` around lines 190 - 204, Expand the backtick
literal corpus tests so “Backtick text preserves punctuation and whitespace”
verifies the preserved content rather than only the backtick_quoted_content
node. Add a contrasting positional-argument case using a backtick literal beside
an equivalent unquoted value that is rejected, and add coverage for temporal
literals and backtick literals passed as call arguments.

1-29: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Make the empty parenthesized call test the parentheses.

lower and lower() currently produce the same S-expression because Tree-sitter corpus tests hide anonymous tokens. Convert only the lower() case to :cst-style output, as supported by tree-sitter test; the expected tree will then include the "(" and ")" tokens and block removal of the optional(seq("(", ..., ")")) branch.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/corpus/expressions.txt` around lines 1 - 29, Update only the “Empty
parenthesized function call” corpus test to use :cst output, preserving the
existing bare lower test. Include the anonymous "(" and ")" tokens in that
test’s expected tree so it distinguishes lower() from lower() without
parentheses and validates the optional parenthesized-call grammar branch.
src/node-types.json (1)

146-164: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚖️ Poor tradeoff

Use supertypes for the choice-only wrapper rules.

value, quoted_literal, temporal_literal, and expression add visible CST layers because they are plain choice rules in grammar.js. Adding them to supertypes removes the wrapper nodes while keeping them available as Tree-sitter query unions, which avoids downstream consumers needing to navigate every wrapper. This is an optional CST-shape decision, but if applied it requires npm run generate and corpus test updates.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/node-types.json` around lines 146 - 164, Add value, quoted_literal,
temporal_literal, and expression to the grammar’s supertypes configuration so
these choice-only wrappers are omitted from the CST while remaining available as
query unions. Regenerate the node types with npm run generate and update any
affected corpus expectations.
.github/workflows/ci.yml (1)

23-24: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Disable credential persistence for both checkout steps.

Both actions/checkout steps use the default persist-credentials: true. No visible step needs authenticated Git operations. Set persist-credentials: false in both steps. The action documents true as the default. (github.com)

Proposed fix
       - name: Check out repository
         uses: actions/checkout@v6
+        with:
+          persist-credentials: false

Apply the same change to the checkout step in the csharp job.

[enhancement]

Also applies to: 37-38

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 23 - 24, Update both actions/checkout
steps in the CI workflow, including the checkout step in the csharp job, to set
persist-credentials to false. Keep the existing checkout configuration unchanged
otherwise.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/dependabot.yml:
- Around line 9-17: Align both binding references with the repository layout: in
.github/dependabot.yml lines 9-17, point the pip ecosystem at the directory
containing pyproject.toml and setup.py and remove or relocate the NuGet entry
until a NuGet manifest exists; in README.md lines 69-72, list bindings/c,
bindings/node, and bindings/python instead of the C# and TypeScript paths.

In @.github/workflows/ci.yml:
- Around line 49-53: Guard C# project discovery in the PowerShell workflow step
by checking that bindings/csharp exists before calling Get-ChildItem, while
preserving found=False and the skip message when it is absent. Apply the same
existence check to the Restore and Build C# jobs so they skip cleanly without
enumerating a missing path.

In `@bindings/node/binding_test.js`:
- Around line 5-10: Update the package test script in package.json (lines 17-20)
to include node --test bindings/node/binding_test.js, ensuring the can load
grammar test in bindings/node/binding_test.js (lines 5-10) runs as part of npm
test; no direct change is required in the test file.

In `@bindings/node/index.d.ts`:
- Around line 12-19: Update the NodeInfo type union to match the node-types.json
contract: model children as a single ChildNode object rather than an array, and
make super_types, fields, and children optional where required for supertype and
field-only variants. Preserve the existing BaseNode intersection while adjusting
the union branches so TypeScript consumers receive the published nodeTypeInfo
shape.

In `@CMakeLists.txt`:
- Around line 74-76: Ensure parser generation runs before native tests: update
the ts-test custom target in CMakeLists.txt lines 74-76 to depend on
src/parser.c, and change the test target declaration in Makefile lines 113-114
to test: $(PARSER), preserving the existing test commands.

In `@CONTRIBUTING.md`:
- Line 13: Correct the issue-search sentence in CONTRIBUTING.md by changing
“hasn't already be submitted” to “hasn't already been submitted.”
- Around line 44-46: Use the repository identity Expressif.Syntax consistently
in CONTRIBUTING.md: at lines 44-46, direct pull requests to
Seddryck/Expressif.Syntax; at line 3, replace Expressif-Syntax with
Expressif.Syntax. In SECURITY.md line 5, replace Expressif-Parser with
Expressif.Syntax.
- Around line 21-27: Update the topic-branch guidance in CONTRIBUTING.md to
consistently use the latest origin/main as the base, replacing references to
master and local main. Adjust the example git checkout command accordingly, and
state that pull requests must target main.
- Around line 37-40: Update the documentation commit guidance in the
“Documentation” section of CONTRIBUTING.md by replacing the “(doc)” commit
prefix with the Conventional Commits “docs:” prefix, while preserving the
existing exception for trivial comment and documentation changes.
- Around line 30-33: Update the contribution checklist around the test and
AppVeyor bullets to reflect the active GitHub Actions workflows: instruct
contributors to verify the C# binding when bindings/csharp exists and run the
parser tests, and remove the AppVeyor status check unless it is still a required
CI job.

In `@grammar.js`:
- Line 13: Update the grammar’s extras handling so newline characters are not
skipped while scanning quoted literals, while preserving whitespace skipping
elsewhere. Clarify the intended newline behavior in the grammar and add a corpus
test covering newlines inside both double-quoted and backtick literals,
verifying they are rejected or preserved as intended.

In `@pyproject.toml`:
- Around line 24-25: Update the core optional dependency version constraint for
tree-sitter to require a lower bound that supports parser ABI 15, while
retaining the existing compatible upper-bound behavior. Ensure the dependency
used by the Python binding tests and generated parser is not allowed to resolve
to 0.24.0.

In `@SECURITY.md`:
- Line 5: Correct the misspelled “vulnerabilty” link text in the
security-reporting sentence to “vulnerability,” leaving the link destination and
surrounding documentation unchanged.

---

Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 23-24: Update both actions/checkout steps in the CI workflow,
including the checkout step in the csharp job, to set persist-credentials to
false. Keep the existing checkout configuration unchanged otherwise.

In `@queries/highlights.scm`:
- Around line 1-15: Update the highlight query to capture the named
escape_sequence node with an appropriate escape-related capture, and add
punctuation captures for the |, (, ), and , tokens. Keep the existing function,
number, boolean, string, and date/time captures unchanged.

In `@setup.py`:
- Line 8: The deprecated packaging APIs in setup.py must be replaced: at
setup.py lines 8-8, import bdist_wheel from setuptools.command.bdist_wheel with
an ImportError fallback to wheel.bdist_wheel; at lines 13-16, replace
self.copy_tree("queries", dest) with shutil.copytree using dirs_exist_ok=True
and add the required import. Also pin a minimum setuptools version in the build
requirements to support the preferred import while retaining the fallback for
older versions.

In `@src/node-types.json`:
- Around line 146-164: Add value, quoted_literal, temporal_literal, and
expression to the grammar’s supertypes configuration so these choice-only
wrappers are omitted from the CST while remaining available as query unions.
Regenerate the node types with npm run generate and update any affected corpus
expectations.

In `@test/corpus/expressions.txt`:
- Around line 190-204: Expand the backtick literal corpus tests so “Backtick
text preserves punctuation and whitespace” verifies the preserved content rather
than only the backtick_quoted_content node. Add a contrasting
positional-argument case using a backtick literal beside an equivalent unquoted
value that is rejected, and add coverage for temporal literals and backtick
literals passed as call arguments.
- Around line 1-29: Update only the “Empty parenthesized function call” corpus
test to use :cst output, preserving the existing bare lower test. Include the
anonymous "(" and ")" tokens in that test’s expected tree so it distinguishes
lower() from lower() without parentheses and validates the optional
parenthesized-call grammar branch.

In `@test/corpus/invalid.txt`:
- Around line 165-180: Add rejection cases to test/corpus/invalid.txt for the
missing constructs: named arguments such as foo(a: 1), spread arguments such as
foo(...a), operators such as 1 + 2, and the language’s reserved reference
syntax. Match the existing invalid-corpus structure and expected ERROR parse
trees, while preserving the current variable and unquoted-text cases.
- Around line 9-17: Pin the tree-sitter-cli dependency in package.json to an
exact patch version, and commit the resulting package-lock.json so corpus error
trees remain reproducible. Use the dependency declaration as the change point;
do not alter the expected tree in test/corpus/invalid.txt.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6e09e864-1207-4138-bb17-b41ca7629a9f

📥 Commits

Reviewing files that changed from the base of the PR and between 303b442 and d01710c.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (39)
  • .editorconfig
  • .gitattributes
  • .github/conventional_commits_labels.json
  • .github/dependabot.yml
  • .github/release.yml
  • .github/workflows/ci.yml
  • .gitignore
  • AGENTS.md
  • CMakeLists.txt
  • CONTRIBUTING.md
  • Makefile
  • README.md
  • SECURITY.md
  • binding.gyp
  • bindings/c/tree-sitter-expressif.pc.in
  • bindings/c/tree_sitter/tree-sitter-expressif.h
  • bindings/node/binding.cc
  • bindings/node/binding_test.js
  • bindings/node/index.d.ts
  • bindings/node/index.js
  • bindings/python/tests/test_binding.py
  • bindings/python/tree_sitter_expressif/__init__.py
  • bindings/python/tree_sitter_expressif/__init__.pyi
  • bindings/python/tree_sitter_expressif/binding.c
  • bindings/python/tree_sitter_expressif/py.typed
  • grammar.js
  • package.json
  • pyproject.toml
  • queries/highlights.scm
  • setup.py
  • src/grammar.json
  • src/node-types.json
  • src/parser.c
  • src/tree_sitter/alloc.h
  • src/tree_sitter/array.h
  • src/tree_sitter/parser.h
  • test/corpus/expressions.txt
  • test/corpus/invalid.txt
  • tree-sitter.json

Comment thread .github/dependabot.yml
Comment on lines +9 to +17
- package-ecosystem: "nuget"
directory: "/bindings/csharp"
schedule:
interval: "weekly"

- package-ecosystem: "pip"
directory: "/bindings/python"
schedule:
interval: "weekly"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Align the binding layout across configuration and documentation.

The repository binding layout is inconsistent between .github/dependabot.yml and README.md. The supplied project exposes C, Node, and Python bindings, but these files reference C# and TypeScript directories and place Python packaging under the wrong directory. This can suppress automated dependency updates.

  • .github/dependabot.yml#L9-L17: point the pip update to the directory containing pyproject.toml and setup.py, and remove or relocate the NuGet block until an actual NuGet manifest exists.
  • README.md#L69-L72: list bindings/c, bindings/node, and bindings/python.

[bug]

📍 Affects 2 files
  • .github/dependabot.yml#L9-L17 (this comment)
  • README.md#L69-L72
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/dependabot.yml around lines 9 - 17, Align both binding references
with the repository layout: in .github/dependabot.yml lines 9-17, point the pip
ecosystem at the directory containing pyproject.toml and setup.py and remove or
relocate the NuGet entry until a NuGet manifest exists; in README.md lines
69-72, list bindings/c, bindings/node, and bindings/python instead of the C# and
TypeScript paths.

Comment thread .github/workflows/ci.yml Outdated
Comment thread bindings/node/binding_test.js
Comment thread bindings/node/index.d.ts
Comment thread CMakeLists.txt
Comment thread CONTRIBUTING.md
Comment thread CONTRIBUTING.md
Comment thread grammar.js
Comment thread pyproject.toml Outdated
Comment thread SECURITY.md Outdated
@Seddryck
Seddryck merged commit 9d15977 into main Aug 9, 2026
4 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.

Implement basic expressions, function calls and literals

1 participant