Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
bff240e
Initial commit; using JNA and roslyn c# parser
lshala Feb 13, 2026
40b1641
Merge branch 'main' into feature/csharp-language-frontend
lshala Feb 18, 2026
00ac486
Add todos
lshala Feb 18, 2026
d460dfe
Using defined kotlin classes instead of pointer
lshala Feb 23, 2026
73a788b
Linux support
lshala Feb 25, 2026
e61d9ad
Support linux-x64
lshala Feb 26, 2026
7cbb922
Refactor
lshala Feb 26, 2026
edca954
Support amd64
lshala Feb 26, 2026
5776bad
Change rid
lshala Feb 26, 2026
0847456
Fix kdoc links
lshala Feb 27, 2026
3d36f1b
Add dotnet version in build.yml
lshala Feb 27, 2026
70ea6f3
Put dotnet to another folder where root is not needed
lshala Feb 27, 2026
1bf34b3
Cast syntaxNode to CSharpSyntaxNode
lshala Feb 27, 2026
79e05cd
Merge branch 'main' into feature/csharp-language-frontend
lshala Feb 27, 2026
4acd95a
Add csharp config in configure_frontends
lshala Feb 27, 2026
23632f4
Fix build
lshala Feb 27, 2026
7ce3e86
Add DeclarationHandler handling namespace and class declarations
lshala Feb 28, 2026
6495ee4
Add class and method declaration handling
lshala Mar 2, 2026
6eacfab
Add a custom print ast method for debugging
lshala Mar 2, 2026
fa50695
Merge branch 'main' into feature/csharp-language-frontend
lshala Mar 2, 2026
3d13dd6
Implement locationOf
lshala Mar 2, 2026
43cef4e
Implement codeOf in csharp language frontend
lshala Mar 2, 2026
03fe877
Add indent in ast print
lshala Mar 3, 2026
529f049
Add FieldDeclaration and VariableDeclarator
Yannick-Gruebl Mar 13, 2026
8924e7a
Merge remote-tracking branch 'cpg/feature/csharp-language-frontend' i…
Yannick-Gruebl Mar 13, 2026
db80c7d
Merge remote-tracking branch 'cpg/yg/fielddeclaration' into yg/fieldd…
Yannick-Gruebl Mar 13, 2026
811d444
Merge remote-tracking branch 'yannick/yg/fielddeclaration' into featu…
lshala Mar 16, 2026
12fed4f
gitignore
lshala Mar 16, 2026
62657c7
Refactor field declaration handling
lshala Mar 16, 2026
a049e3e
Add support for file scoped namespaces
lshala Mar 16, 2026
fc6e7df
Merge branch 'main' into feature/csharp-language-frontend
lshala Mar 16, 2026
69ec2d3
Add builtInTypes
lshala Mar 17, 2026
fb20bc0
Handle method parameters
lshala Mar 17, 2026
79ef780
Merge branch 'main' into feature/csharp-language-frontend
lshala Mar 17, 2026
428d59a
Add docstrings
lshala Mar 17, 2026
189c58a
Add constructor declaration handling; start implementing support for …
lshala Mar 20, 2026
6eecc5a
Start implementing statement handler and handling blocks
lshala Mar 23, 2026
ac2f180
Add return statement and literal support
lshala Mar 23, 2026
dac2bba
Start implementing support for IfStatements
lshala Mar 23, 2026
6f73461
Change getKind to getType; Add BinaryExpressionSyntax
lshala Mar 24, 2026
6c56f23
IfStatements
lshala Mar 25, 2026
2516c32
Local variables
lshala Mar 26, 2026
18cc0ea
Assign expressions
lshala Mar 27, 2026
e85acaa
For loop
lshala Mar 27, 2026
9631353
MemberAccess
lshala Mar 30, 2026
33bde9b
Add access handling
lshala Mar 31, 2026
7c33426
Add Call and MemberCall handling
lshala Mar 31, 2026
614bca2
Add HasImplicitReceiver trait
lshala Mar 31, 2026
fb2d8a2
Add ObjectCreationExpression
lshala Mar 31, 2026
77a34d3
Refactor JNA callings of field and variable declaration extraction
lshala Apr 7, 2026
e8babf9
Add object initializer workaround handling
lshala Apr 7, 2026
844f28d
Merge branch 'main' into feature/csharp-language-frontend
lshala Apr 7, 2026
ff146d7
Replace neo4j transient annotation with DoNotPersist
lshala Apr 7, 2026
dca05a5
Add log4j2.xml file
lshala Apr 7, 2026
cac5597
Merge branch 'main' into feature/csharp-language-frontend
lshala Apr 8, 2026
4123ff8
Add ObjectInitializer handling
lshala Apr 9, 2026
f58717b
Fix test
lshala Apr 9, 2026
bb84ca4
Add missing constructor body support
lshala Apr 9, 2026
b175e09
Add base types/super classes
lshala Apr 10, 2026
1d910ac
Add Switch statement
lshala Apr 10, 2026
9134d99
Remove comment
lshala Apr 10, 2026
fccc9de
Add Enum declarations support
lshala Apr 13, 2026
e3bf277
Merge branch 'main' into feature/csharp-language-frontend
lshala Apr 16, 2026
5fbe51d
Property declaration cs calls
lshala Apr 26, 2026
44bdcb2
First part implementing property declarations
lshala Apr 26, 2026
a548bf5
Merge branch 'main' into feature/csharp-language-frontend
lshala Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ jobs:
- uses: actions/setup-go@v6
with:
go-version-file: cpg-language-go/src/test/resources/golang/integration/go.mod
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0"
env:
DOTNET_INSTALL_DIR: ~/.dotnet
- name: Setup neo4j
run: |
docker run -d --env NEO4J_AUTH=neo4j/password -p7474:7474 -p7687:7687 -e NEO4JLABS_PLUGINS='["apoc"]' neo4j:5 || true
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ logs
*.dylib
*.so
*.log
*.dll

# .NET build artifacts
obj/
bin/

gradle.properties
LibrariesTest.kt
Expand Down
2 changes: 2 additions & 0 deletions configure_frontends.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,7 @@ answerJVM=$(ask "Do you want to enable the JVM frontend? (currently $(getPropert
setProperty "enableJVMFrontend" $answerJVM
answerINI=$(ask "Do you want to enable the INI frontend? (currently $(getProperty "enableINIFrontend"))")
setProperty "enableINIFrontend" $answerINI
answerCsharp=$(ask "Do you want to enable the C# frontend? (currently $(getProperty "enableCSharpFrontend"))")
setProperty "enableCSharpFrontend" answerCsharp
answerMCP=$(ask "Do you want to enable the MCP module? (currently $(getProperty "enableMCPModule"))")
setProperty "enableMCPModule" $answerMCP
32 changes: 32 additions & 0 deletions cpg-language-csharp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
plugins { id("cpg.frontend-conventions") }

dependencies { implementation("net.java.dev.jna:jna:5.18.1") }

val publishNativeParser by
tasks.registering(Exec::class) {
// TODO: Check again https://learn.microsoft.com/en-us/dotnet/core/rid-catalog
val osName = System.getProperty("os.name")
val os = if (osName.startsWith("Mac")) "osx" else "linux"
val arch = System.getProperty("os.arch").replace("aarch64", "arm64").replace("amd64", "x64")
val rid = "$os-$arch"
workingDir = file("src/main/csharp/NativeParser")
val dotnet =
listOf(
"/opt/homebrew/opt/dotnet@8/bin/dotnet",
"/usr/local/bin/dotnet",
"/usr/bin/dotnet",
)
.map { file(it) }
.firstOrNull { it.exists() }
?.absolutePath ?: "dotnet"
commandLine(dotnet, "publish", "-c", "Release", "-r", rid)
}

tasks.named("compileKotlin") { dependsOn(publishNativeParser) }

mavenPublishing {
pom {
name.set("Code Property Graph - C# Frontend")
description.set("A C# language frontend for the CPG")
}
}
2 changes: 2 additions & 0 deletions cpg-language-csharp/src/main/csharp/NativeParser/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bin/
obj/
Loading
Loading