aboutsummaryrefslogtreecommitdiff
path: root/AGENTS/ARCH
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 15:33:17 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 15:35:05 +0000
commit8745f421b4cf7e1d54c17a360d46fab889ca12cc (patch)
tree4c2a3508627db04493af35643580417d41b63f89 /AGENTS/ARCH
parent5e84edbe1a79c6a7752ee276ea6c1a4daef4fa8e (diff)
feat(input)!: validate INPUT and read whole lines into STRING
Scalar INPUT now reads one whitespace-delimited token through module-local IR helpers instead of scanf, then skips spaces and tabs and consumes one newline. INTEGER, REAL, BOOLEAN (TRUE or FALSE in any case) and CHAR are validated, and bad input or end of input is a runtime error. STRING INPUT reads the rest of the line. The unused scanf and REAL printf format globals are removed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS/ARCH')
-rw-r--r--AGENTS/ARCH/LAYOUT.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/AGENTS/ARCH/LAYOUT.md b/AGENTS/ARCH/LAYOUT.md
index 805f1e1..dc8696e 100644
--- a/AGENTS/ARCH/LAYOUT.md
+++ b/AGENTS/ARCH/LAYOUT.md
@@ -12,6 +12,7 @@
| `include/cps/TemplateAST.h`, `lib/Parser/ParserTemplate.cc` | TEMPLATE declarations, type parameter packs and canonical template ids; call and pack parsing also uses ParserExpression.cc/ParserFunction.cc |
| `lib/CodeGen/CodeGen.cc` | Initialization, symbols and main() compilation |
| `lib/CodeGen/CallGen.cc` | Call-argument marshalling (`marshalCallArgs`, variadic arguments) and call resolution (`resolveCall`) |
+| `lib/CodeGen/InputGen.cc` | INPUT token reader and validators for scalar targets, emitted as module-local IR helpers |
| `lib/CodeGen/ExpressionGen.cc`, `StatementGen.cc`, `ControlFlowGen.cc` | Expression/statement dispatch and control-flow emission |
| `lib/CodeGen/OperatorGen.cc`, `include/cps/Operator.h` | Exact global/member operator selection, calls and temporary receivers; shared operator spellings |
| `lib/CodeGen/TemplateGen.cc`, `TemplateClone.h`, `TemplateClone.cc` | Template registry validation, cached function/class instantiation, structural type substitution, pack expansion and deferred bodies; call deduction/selection lives in CallGen.cc |