Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
76 changes: 38 additions & 38 deletions compiler/ast.t27

Large diffs are not rendered by default.

38 changes: 19 additions & 19 deletions compiler/cli/gen.t27
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
// gen.t27 0 Code Generation with TDD Validation
// gen.t27 Code Generation with TDD Validation
// Commands for generating code from t27 specs with TDD enforcement

module gen_commands {
using parser: @import("../parser/parser.t27");
using codegen_zig: @import("../codegen/zig/codegen.t27");
using testgen: @import("../codegen/testgen.t27");

// 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
// ═════════════════════════════════════════════════════════════════════
// Codegen options
// 707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
// ═════════════════════════════════════════════════════════════════════

pub const GenOptions = struct {
backend: []const u8, // Target backend (zig, c, verilog, etc.)
Expand All @@ -34,9 +34,9 @@ module gen_commands {
output_format: []const u8,
};

// 139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
// Command: tri gen <spec> 208 Generate code from spec with TDD validation
// 209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
// ═════════════════════════════════════════════════════════════════════
// Command: tri gen <spec> Generate code from spec with TDD validation
// ═════════════════════════════════════════════════════════════════════

pub fn gen(spec_path: []const u8, options: GenOptions) i32 {
// Check if spec exists
Expand Down Expand Up @@ -73,9 +73,9 @@ module gen_commands {
return 1;
}

// 278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
// ═════════════════════════════════════════════════════════════════════
// TDD CONTRACT ENFORCEMENT (Per User Requirement: No prototype mode)
// 347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
// ═════════════════════════════════════════════════════════════════════
var has_tests = false;
var test_count: usize = 0;
var invariant_count: usize = 0;
Expand Down Expand Up @@ -130,9 +130,9 @@ module gen_commands {
print_int(invariant_count);
error_print(" invariants\n");

// 416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
// ═════════════════════════════════════════════════════════════════════
// Generate code
// 485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553
// ═════════════════════════════════════════════════════════════════════

// Determine output paths
const output_dir = if (options.output_dir.len == 0)
Expand Down Expand Up @@ -259,9 +259,9 @@ module gen_commands {
return 0;
}

// 554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
// Command: tri gen all 623 Generate code for all specs in project
// 624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
// ═════════════════════════════════════════════════════════════════════
// Command: tri gen all Generate code for all specs in project
// ═════════════════════════════════════════════════════════════════════

pub fn gen_all(options: GenOptions) i32 {
const spec_files = glob("specs/**/*.t27");
Expand Down Expand Up @@ -306,9 +306,9 @@ module gen_commands {
return if (fail_count > 0) 1 else 0;
}

// 693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
// ═════════════════════════════════════════════════════════════════════
// Helper functions
// 762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
// ═════════════════════════════════════════════════════════════════════

// Get basename without extension
pub fn basename_without_ext(path: []const u8) []const u8 {
Expand Down Expand Up @@ -336,9 +336,9 @@ module gen_commands {
return path[filename_start..end];
}

// 831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
// ═════════════════════════════════════════════════════════════════════
// Type definitions
// 900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968
// ═════════════════════════════════════════════════════════════════════

pub const Program = struct {
constants: []Constant,
Expand Down Expand Up @@ -435,9 +435,9 @@ module gen_commands {
};
}

// 969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071
// ═══════════════════════════════════════════════════════════════════════════════════════════════════════
// TDD-Inside-Spec: Tests and Invariants for Gen Commands
// 1072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174
// ═══════════════════════════════════════════════════════════════════════════════════════════════════════

test gen_returns_zero_on_success
// Mock successful generation scenario
Expand Down
28 changes: 14 additions & 14 deletions compiler/cli/git.t27
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// git.t27 0 Git Integration with Tri Skill Workflow (ADR-002)
// git.t27 Git Integration with Tri Skill Workflow (ADR-002)
// Commands for git operations with skill validation and issue binding

module git_commands {
using skill_registry: @import("../skill/registry.t27");

// 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
// ═════════════════════════════════════════════════════════
// Command: tri git commit [--all] [-m "msg"] [--mode strict|normal|local]
// 585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
// ═════════════════════════════════════════════════════════════════════

pub fn git_commit(all: bool, message: []const u8, mode: []const u8) i32 {
const registry_path = ".trinity/skills/registry.json";
Expand Down Expand Up @@ -125,9 +125,9 @@ module git_commands {
return 0;
}

// 127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
// ═════════════════════════════════════════════════════════
// Command: tri git push [<remote> <branch>] [--mode strict|normal|local]
// 184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
// ═════════════════════════════════════════════════════════════════════

pub fn git_push(remote: []const u8, branch: []const u8, mode: []const u8) i32 {
const registry_path = ".trinity/skills/registry.json";
Expand Down Expand Up @@ -242,9 +242,9 @@ module git_commands {
return 0;
}

// 253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
// Command: tri git status 310 Show git status with skill info
// 311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
// ═════════════════════════════════════════════════════════
// Command: tri git status Show git status with skill info
// ═════════════════════════════════════════════════════════════════════

pub fn git_status_with_skill() i32 {
const registry_path = ".trinity/skills/registry.json";
Expand Down Expand Up @@ -290,9 +290,9 @@ module git_commands {
return 0;
}

// 380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
// ═════════════════════════════════════════════════════════
// Helper functions
// 437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
// ═════════════════════════════════════════════════════════════════════

// Find active or last sealed skill from registry
fn find_active_or_sealed_skill(registry_json: []const u8) ?Skill {
Expand Down Expand Up @@ -452,9 +452,9 @@ module git_commands {
return result;
}

// 506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
// ═════════════════════════════════════════════════════════
// Type definitions
// 563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631
// ═════════════════════════════════════════════════════════════════════

pub const Skill = struct {
id: []const u8,
Expand Down Expand Up @@ -482,9 +482,9 @@ module git_commands {
};
}

// 632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
// ═══════════════════════════════════════════════════════════════════════════════════════════
// TDD-Inside-Spec: Tests and Invariants for Git Integration
// 723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813
// ═══════════════════════════════════════════════════════════════════════════════════════════

test git_commit_requires_registry
// Mock: registry doesn't exist
Expand Down
Loading
Loading