Fyper.Parser
1.1.0
dotnet add package Fyper.Parser --version 1.1.0
NuGet\Install-Package Fyper.Parser -Version 1.1.0
<PackageReference Include="Fyper.Parser" Version="1.1.0" />
<PackageVersion Include="Fyper.Parser" Version="1.1.0" />
<PackageReference Include="Fyper.Parser" />
paket add Fyper.Parser --version 1.1.0
#r "nuget: Fyper.Parser, 1.1.0"
#:package Fyper.Parser@1.1.0
#addin nuget:?package=Fyper.Parser&version=1.1.0
#tool nuget:?package=Fyper.Parser&version=1.1.0
Fyper.Parser
Zero-dependency Cypher parser for F#. Parses Cypher query strings into Fyper's typed AST.
Usage
open Fyper.Parser
let parsed = CypherParser.parse
"MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.age > 30 RETURN p.name, m.title"
// parsed.Clauses = [Match(RelPattern(...)); Where(BinOp(...)); Return(...)]
Roundtrip
Parse Cypher, inspect the AST, compile back:
let parsed = CypherParser.parse "MATCH (p:Person) WHERE p.age > $min RETURN p"
let compiled = Fyper.CypherCompiler.compile parsed
printfn "%s" compiled.Cypher
// MATCH (p:Person) WHERE (p.age > $min) RETURN p
Supported Grammar
All Cypher clauses: MATCH, OPTIONAL MATCH, WHERE, RETURN, WITH, CREATE, MERGE (ON MATCH/ON CREATE), DELETE, DETACH DELETE, SET, REMOVE, ORDER BY, SKIP, LIMIT, UNWIND, UNION, CALL.
Expressions: comparison, arithmetic, logical (AND/OR/NOT), string ops (CONTAINS, STARTS WITH, ENDS WITH), IS NULL, IN, CASE WHEN, EXISTS subqueries.
Patterns: nodes, relationships (outgoing/incoming/undirected), variable-length paths (*1..5, *, *2..), named relationships, inline properties.
Dependencies
Only Fyper core (which depends only on FSharp.Core). No parser generators, no external libraries.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FSharp.Core (>= 10.1.201)
- Fyper (>= 1.1.0)
-
net8.0
- FSharp.Core (>= 10.1.201)
- Fyper (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.