feat: SET commands + ErrorBlock/Break error handling
SET commands (setcmd.go):
- SetDateFunc: __SetDateFormat([cNew]) → cOld
- SetDecimalsFunc: SET DECIMALS TO n
- SetEpochFunc: SET EPOCH TO n
- 11 toggle functions: SetExact, SetDeleted, SetSoftSeek, SetExclusive,
SetFixed, SetCancel, SetBell, SetConfirm, SetInsert, SetEscape, SetWrap
- SET constants: _SET_EXACT, _SET_DELETED, etc. for PRG code
- GetSetDateFormat(), GetSetDecimals(), GetSetEpoch() helpers
- Default: DATE="mm/dd/yy", EPOCH=1900, DECIMALS=2
Error handling (error.go):
- Break(xValue): panics with BreakValue, caught by BEGIN SEQUENCE
- BreakBlock(): returns {|e| Break(e)} code block
- LaunchError(): dispatches error through ErrorBlock handler
- RuntimeError(): creates + launches standard runtime error
- IsBreak(): checks if recovered panic is a BreakValue
- createErrorHash(): builds Harbour-compatible error hash
Registration: ErrorBlock, ErrorNew, DosError, FError, Break + all SET functions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>