Fabulous.AST
1.0.0-pre16
See the version list below for details.
dotnet add package Fabulous.AST --version 1.0.0-pre16
NuGet\Install-Package Fabulous.AST -Version 1.0.0-pre16
<PackageReference Include="Fabulous.AST" Version="1.0.0-pre16" />
<PackageVersion Include="Fabulous.AST" Version="1.0.0-pre16" />
<PackageReference Include="Fabulous.AST" />
paket add Fabulous.AST --version 1.0.0-pre16
#r "nuget: Fabulous.AST, 1.0.0-pre16"
#:package Fabulous.AST@1.0.0-pre16
#addin nuget:?package=Fabulous.AST&version=1.0.0-pre16&prerelease
#tool nuget:?package=Fabulous.AST&version=1.0.0-pre16&prerelease
Fabulous.AST
Welcome to the Fabulous.AST, an Abstract Syntax Tree (AST) Domain Specific Language (DSL) for F#.
Fabulous.AST uses Fantomas to generate F# code from AST. This means that you can use Fabulous.AST to generate F# code that is formatted according to the Fantomas style guide. It's designed to provide a simple and expressive way to represent code as a tree of nodes. This makes it easier to manipulate and analyze code programmatically.
Let's take a look at an AST example in Fantomas:
open Fantomas.Core
open Fantomas.Core.SyntaxOak
open Fantomas.FCS.Text
Oak(
[],
[ ModuleOrNamespaceNode(
None,
[ BindingNode(
None,
None,
MultipleTextsNode([ SingleTextNode("let", Range.Zero) ], Range.Zero),
false,
None,
None,
Choice1Of2(IdentListNode([ IdentifierOrDot.Ident(SingleTextNode("x", Range.Zero)) ], Range.Zero)),
None,
[],
None,
SingleTextNode("=", Range.Zero),
Expr.Constant(Constant.FromText(SingleTextNode("12", Range.Zero))),
Range.Zero
)
|> ModuleDecl.TopLevelBinding ],
Range.Zero
) ],
Range.Zero
)
|> CodeFormatter.FormatOakAsync
|> Async.RunSynchronously
|> printfn "%s"
produces the following code:
let x = 12
Now let's take a look at same example using Fabulous.AST:
open Fantomas.Core
open Fabulous.AST
open type Fabulous.AST.Ast
Oak() {
AnonymousModule() {
Value("y", "12")
}
}
|> Gen.mkOak
|> CodeFormatter.FormatOakAsync
|> Async.RunSynchronously
|> printfn "%s"
produces the following code:
let x = 12
Documentation
The full documentation for Fabulous.AST can be found at Fabulous.AST.
Other useful links:
Supporting Fabulous.AST
The simplest way to show us your support is by giving this project and the Fabulous.AST project a star. You can also support us by becoming our sponsor on the GitHub Sponsors program.
Contributing
Have you found a bug or have a suggestion of how to enhance Fabulous.AST? Open an issue, and we will take a look at it as soon as possible.
Do you want to contribute with a PR? PRs are always welcome, just make sure to create it from the correct branch (main) and follow the Contributor Guide.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Fantomas.Core (= 6.3.10)
-
net8.0
- Fantomas.Core (= 6.3.10)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Fabulous.AST:
| Package | Downloads |
|---|---|
|
MigrateLib
Declarative migrations for SQLite |
|
|
MigLib
Package Description |
|
|
Fabulous.AST.Json
Fabulous.AST.Json, a JSON type generator for Fabulous.AST |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-pre06 | 83 | 1/9/2026 |
| 2.0.0-pre05 | 228 | 12/19/2025 |
| 2.0.0-pre04 | 250 | 12/15/2025 |
| 2.0.0-pre03 | 167 | 12/13/2025 |
| 2.0.0-pre02 | 113 | 12/12/2025 |
| 2.0.0-pre01 | 119 | 12/12/2025 |
| 1.10.0 | 180 | 1/9/2026 |
| 1.9.0 | 829 | 12/12/2025 |
| 1.8.0 | 136 | 12/6/2025 |
| 1.7.0 | 665 | 12/3/2025 |
| 1.6.0 | 589 | 6/7/2025 |
| 1.5.0 | 182 | 5/10/2025 |
| 1.4.0 | 281 | 4/4/2025 |
| 1.3.0 | 252 | 3/16/2025 |
| 1.2.0 | 505 | 3/5/2025 |
| 1.1.0 | 214 | 1/12/2025 |
| 1.0.0 | 225 | 12/15/2024 |
| 1.0.0-pre9 | 283 | 5/13/2024 |
| 1.0.0-pre8 | 191 | 5/12/2024 |
| 1.0.0-pre7 | 209 | 5/10/2024 |
| 1.0.0-pre6 | 203 | 5/10/2024 |
| 1.0.0-pre5 | 231 | 4/14/2024 |
| 1.0.0-pre4 | 191 | 4/7/2024 |
| 1.0.0-pre3 | 211 | 4/1/2024 |
| 1.0.0-pre2 | 209 | 3/27/2024 |
| 1.0.0-pre17 | 176 | 10/6/2024 |
| 1.0.0-pre16 | 206 | 7/14/2024 |
| 1.0.0-pre15 | 212 | 7/1/2024 |
| 1.0.0-pre14 | 180 | 6/13/2024 |
| 1.0.0-pre13 | 198 | 6/2/2024 |
| 1.0.0-pre12 | 412 | 5/20/2024 |
| 1.0.0-pre11 | 200 | 5/16/2024 |
| 1.0.0-pre10 | 195 | 5/13/2024 |
| 1.0.0-pre1 | 200 | 3/25/2024 |
| 0.9.0 | 281 | 3/12/2024 |
| 0.8.2 | 242 | 3/11/2024 |
| 0.8.1 | 231 | 3/10/2024 |
| 0.8.0 | 250 | 3/8/2024 |
| 0.7.0 | 2,224 | 2/11/2024 |
| 0.6.2 | 370 | 6/8/2023 |
| 0.6.1 | 330 | 6/4/2023 |
| 0.6.0 | 315 | 5/29/2023 |
| 0.5.0 | 351 | 4/21/2023 |
| 0.4.0 | 379 | 4/13/2023 |
| 0.3.0 | 361 | 4/11/2023 |
| 0.2.0 | 349 | 4/6/2023 |
| 0.1.0 | 382 | 4/3/2023 |
### Added
- Delegate widget by @edgarfgp in https://github.com/edgarfgp/Fabulous.AST/pull/112
- Allow ParsedHashDirectives to take non string arguments by @edgarfgp in https://github.com/edgarfgp/Fabulous.AST/pull/116
### Changed
* Update target frameworks by @edgarfgp in https://github.com/edgarfgp/Fabulous.AST/pull/114
* Correct typo by @sashang in https://github.com/edgarfgp/Fabulous.AST/pull/115