Files
FESADev/phases/abaqus-input-parser/step2.md
T
2026-06-12 17:15:05 +09:00

1.8 KiB

Step 2: syntax-diagnostics

Read First

Read these files before editing:

  • /AGENTS.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/io-definitions/abaqus-input-parser-io.md
  • /src/fesa/io/abaqus/input_parser.hpp
  • /src/fesa/io/abaqus/input_parser.cpp
  • /tests/unit/abaqus_input_parser_mesh_test.cpp

Review completed step summaries in /phases/abaqus-input-parser/index.json.

Task

Add structured diagnostics for parser syntax and unsupported subset behavior.

Required behavior:

  • Unsupported keywords produce Status::is_ok() == false with an error diagnostic code and message that identifies the keyword.
  • Malformed *NODE and *ELEMENT data lines produce error diagnostics.
  • Missing required TYPE on *ELEMENT produces an error diagnostic.
  • Unsupported element types produce an error diagnostic and do not add that element.
  • Diagnostics must include enough context in the message to locate the line number.
  • Existing valid mesh parser behavior remains unchanged.

Tests To Write First

Extend /tests/unit/abaqus_input_parser_mesh_test.cpp or add /tests/unit/abaqus_input_parser_diagnostics_test.cpp before production code.

Test:

  • unsupported keyword failure;
  • malformed node row failure;
  • missing element TYPE failure;
  • unsupported element type failure.

Run the targeted CTest and confirm the new tests fail for missing behavior before implementation.

Acceptance Criteria

ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R abaqus_input_parser
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_workspace.py

Verification Procedure

Update step 2 status with summary or a concrete error/blocked reason.

Forbidden

  • Do not add new semantic model fields except what diagnostics require.
  • Do not add material, section, step, boundary, or load parsing.