New sx_cst.ml: CstAtom, CstList, CstDict node types with leading/trailing trivia (whitespace + comments). Two projections: - cst_to_source/cst_file_to_source: exact source reconstruction - cst_to_ast: strip trivia → Sx_types.value for evaluation New parse_all_cst/parse_file_cst in sx_parser.ml: parallel CST parser alongside existing AST parser. Reuses read_string, read_symbol, try_number. Trivia collected via collect_trivia (replaces skip_whitespace_and_comments). Round-trip invariant: cst_file_to_source(parse_all_cst(src)) = src Verified on 13 synthetic tests + 7 real codebase files (101KB evaluator, parser, primitives, render, tree-tools, engine, io). CST→AST equivalence: cst_to_ast matches parse_all output. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
12 lines
202 B
Plaintext
12 lines
202 B
Plaintext
(executables
|
|
(names run_tests debug_set sx_server integration_tests)
|
|
(libraries sx unix))
|
|
|
|
(executable
|
|
(name mcp_tree)
|
|
(libraries sx unix yojson str))
|
|
|
|
(executable
|
|
(name test_cst)
|
|
(libraries sx))
|