Directories
¶
| Path | Synopsis |
|---|---|
|
Package bddtest hosts the Godog step definitions and per-scenario World for the gpp spec suite.
|
Package bddtest hosts the Godog step definitions and per-scenario World for the gpp spec suite. |
|
Package cli implements the gpp command-line interface.
|
Package cli implements the gpp command-line interface. |
|
Package core is gpp's dependent type theory (v0.7.0): first-order terms over nat and enum-tag data, normalization by evaluation, definitional equality, a linear-arithmetic decider, structural termination checking, and the QTT quantity semiring.
|
Package core is gpp's dependent type theory (v0.7.0): first-order terms over nat and enum-tag data, normalization by evaluation, definitional equality, a linear-arithmetic decider, structural termination checking, and the QTT quantity semiring. |
|
Package diag defines gpp's user-facing diagnostics.
|
Package diag defines gpp's user-facing diagnostics. |
|
Package directive parses and renders gpp directive comments:
|
Package directive parses and renders gpp directive comments: |
|
Package emit assembles, formats, and writes generated Go files.
|
Package emit assembles, formats, and writes generated Go files. |
|
Package gen orchestrates generation: it drives parsing, naming, lowering, and emission for every package matched by the CLI's patterns.
|
Package gen orchestrates generation: it drives parsing, naming, lowering, and emission for every package matched by the CLI's patterns. |
|
Package lower computes and applies the text edits that turn G++ source into Go.
|
Package lower computes and applies the text edits that turn G++ source into Go. |
|
The server's dispatch layer, authored in gpp: incoming work is an enum, routing is a match, and extending the server means adding a variant and an arm — the language serving itself.
|
The server's dispatch layer, authored in gpp: incoming work is an enum, routing is a match, and extending the server means adding a variant and an arm — the language serving itself. |
|
Package naming implements the lowered-name scheme: a lowered function keeps its method's own name when that name is unique in the package, falling back to the receiver-prefixed concatenation when it collides — the same discipline enum variant structs use.
|
Package naming implements the lowered-name scheme: a lowered function keeps its method's own name when that name is unique in the package, falling back to the receiver-prefixed concatenation when it collides — the same discipline enum variant structs use. |
|
Package registry indexes the generic methods visible to a compilation: those declared in the packages being generated, plus those advertised by dependency packages via //gpp:method markers in their distributed Go.
|
Package registry indexes the generic methods visible to a compilation: those declared in the packages being generated, plus those advertised by dependency packages via //gpp:method markers in their distributed Go. |
|
Package resolve rewrites G++ method-syntax uses of generic methods into calls (or closures) over the lowered package-level functions.
|
Package resolve rewrites G++ method-syntax uses of generic methods into calls (or closures) over the lowered package-level functions. |
|
Package sourcemap maps positions in emitted Go back to .gpp source.
|
Package sourcemap maps positions in emitted Go back to .gpp source. |
|
Package syntax parses .gpp source: Go grammar plus G++'s extensions — type parameters on methods (v0.1.0), enum declarations and match statements (v0.2.0).
|
Package syntax parses .gpp source: Go grammar plus G++'s extensions — type parameters on methods (v0.1.0), enum declarations and match statements (v0.2.0). |
|
parser
G++ extension nodes and entry points.
|
G++ extension nodes and entry points. |
|
Package toolchain delegates to the standard go tool.
|
Package toolchain delegates to the standard go tool. |
|
Package version is the single source of the toolchain version — a leaf package so both the CLI and the emitter (which stamps generated files) can share it without cycles.
|
Package version is the single source of the toolchain version — a leaf package so both the CLI and the emitter (which stamps generated files) can share it without cycles. |
Click to show internal directories.
Click to hide internal directories.