# Compiler Error Examples

This directory contains example `.sb` files that demonstrate each type of error
the Storybook compiler can detect. Each file is intentionally incorrect to showcase
the error messages and helpful hints.

## How to Run

To see all error messages, validate each file individually:

```bash
# From the storybook root directory
cargo build --release

# Run each file to see its error
./target/release/sb validate tests/compiler_errors/01_unexpected_token.sb
./target/release/sb validate tests/compiler_errors/02_unexpected_eof.sb
./target/release/sb validate tests/compiler_errors/03_invalid_token.sb
# ... etc
```

Or use this script to show all errors:

```bash
#!/bin/bash
for file in tests/compiler_errors/*.sb; do
    echo "═══════════════════════════════════════════════════════════"
    echo "File: $(basename $file)"
    echo "═══════════════════════════════════════════════════════════"
    cargo run --bin sb -- validate "$file" 2>&1 || true
    echo ""
done
```

## Error Categories

### Parse Errors (Syntax)
- `01_unexpected_token.sb` - Missing colon after field name
- `02_unexpected_eof.sb` - Incomplete declaration
- `03_invalid_token.sb` - Invalid character in syntax
- `04_unclosed_prose.sb` - Prose block missing closing `---`

### Validation Errors (Semantics)
- `05_trait_out_of_range.sb` - Trait value outside 0.0-1.0 range
- `06_age_out_of_range.sb` - Age value outside 0-150 range
- `07_unknown_life_arc_state.sb` - Transition to undefined state
- `08_schedule_overlap.sb` - Schedule blocks overlap in time
- `09_unknown_behavior_action.sb` - Undefined behavior tree action
- `10_duplicate_field.sb` - Same field name used twice
- `11_relationship_bond_out_of_range.sb` - Bond value outside 0.0-1.0 range

Each error includes:
- ✓ Clear error message explaining what went wrong
- ✓ Helpful hint on how to fix it
- ✓ Context-specific suggestions
