Commit Graph

20 Commits

Author SHA1 Message Date
Bill
dfa40b7802 Sprint 2 Step 22: Undo/Redo UI 2026-02-06 21:48:25 -07:00
Bill
3b80ff4250 Sprint 2 Step 21: Undo/Redo journal 2026-02-06 21:45:02 -07:00
Bill
b0b917eed1 Sprint 2 Step 20: Mutation via UI 2026-02-06 21:37:45 -07:00
Bill
91e52e28d2 Sprint 2 Step 19: Connect ImGui to orchestrator 2026-02-06 21:30:12 -07:00
Bill
db9990620b Sprint 2 Step 18: AST mutation via RPC 2026-02-06 21:02:01 -07:00
Bill
44634bf4fe Sprint 2 Step 17: JSON-RPC server 2026-02-06 20:44:07 -07:00
Bill
dfb8409dd9 Sprint 2 Step 16: Orchestrator process 2026-02-06 20:22:37 -07:00
Bill
d46aec55ee Sprint 2 Step 15: Projection toggle 2026-02-06 20:14:51 -07:00
Bill
41ab6c3022 Sprint 2 Step 14: AST → text viewport 2026-02-06 20:10:59 -07:00
Bill
37e504b448 Sprint 2 Step 13: Text viewport 2026-02-06 20:07:25 -07:00
Bill
6e74281096 Sprint 2 Step 12: Dear ImGui shell scaffolding 2026-02-06 20:04:12 -07:00
Bill
f094c14ea7 Sprint 2 Step 11: Python generator - Annotation output 2026-02-06 19:56:57 -07:00
Bill
95c56f35cb Sprint 2 Step 8: Python generator base with Module/Function support 2026-02-06 19:35:48 -07:00
Bill
8ca6eccd56 Sprint 2 Step 7: Schema validation 2026-02-06 19:31:38 -07:00
Bill
665c96b648 Sprint 2 Step 6: JSON deserialization and round-trip verification
fromJson(json) reconstructs heap-allocated AST from JSON. createNode factory
handles all 33 concepts. deleteTree for cleanup. Test verifies save→load→save
produces byte-identical JSON for the full Calculator model.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:14:45 -07:00
Bill
5579a4747f Sprint 2 Step 5: JSON serialization with nlohmann/json
toJson(ASTNode*) recursively serializes the AST to JSON with id, concept,
properties, and children structure. Added childRoles() to ASTNode for
enumeration. FetchContent pulls nlohmann/json v3.11.3. Test serializes the
full Calculator model and verifies every node in the JSON output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:11:48 -07:00
Bill
71cd903fa8 Sprint 2 Step 4: annotation concepts (DerefStrategy, OptimizationLock, LangSpecific)
Adds the three annotation types from SemAnno. Test builds SimpleFunctionExample
with @deref(batched), exercises OptimizationLock on Module, LangSpecific on
Variable, and DerefStrategy's derefTime child link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:04:37 -07:00
Bill
25b9d5c480 Sprint 2 Step 3: all Statement, Expression, Type, and Parameter concepts
Ports all 33 SemAnno concepts from MPS into C++ headers grouped by category.
Test builds the exact Calculator model from Phase1Test.mps as a 27-node C++
object graph and verifies every property, child link, and parent chain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 19:01:35 -07:00
Bill
0f90bec21f Sprint 2 Step 2: child links, Function and Variable concepts
Adds generic child link support to ASTNode (addChild/setChild for multi/single-
valued roles, getChildren/getChild/allChildren for traversal). Function and
Variable as first child concepts of Module. Test builds Module->Function tree,
walks parent/child pointers in both directions, verifies single-valued replace.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 18:54:18 -07:00
Bill
586914df4e Sprint 2 Step 1: base ASTNode class and Module concept
Adds the C++ editor stack foundation with ASTNode (id, conceptType, parent pointer, virtual dtor) and Module as the first concrete concept (name, targetLanguage). Header-only, compiles with C++20, test passes all assertions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 18:44:42 -07:00