- Compiler: PP → Lexer → Parser → Analyzer → Gengo pipeline - Parser: 232/236 (98%) Harbour compatibility, registry-based dispatch - RTL: 351 Harbour-compatible functions - RDD: DBF/NTX/CDX engines with Rushmore bitmap optimization - Go Interop: IMPORT + pkg.Func() + obj:Method() with FastPath (15M calls/sec) - HB_FUNC API: Full Harbour C API compatible Go bridge - Concurrency: SPAWN/LAUNCH/GOROUTINE, <-, WATCH, PARALLEL FOR, ASYNC/AWAIT - Extensions: Multi-return, DEFER, Slice, f-string, Nil-safe ?:, CONST - Macro Compiler: Runtime AST parsing and evaluation - Debugger: TUI debugger with source display, breakpoints, stepping - FRB: Native + Pcode dual mode runtime binary - Tests: 13 packages ALL PASS Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
46 lines
859 B
Plaintext
46 lines
859 B
Plaintext
// Minimal GET typing test
|
|
FUNCTION Main()
|
|
LOCAL cName
|
|
LOCAL GetList := {}
|
|
|
|
cName := Space(10)
|
|
|
|
CLS
|
|
@ 2, 5 SAY "Type and press ESC:" GET cName
|
|
? ""
|
|
? "GetList len:", Len(GetList)
|
|
|
|
// Manual read loop for debugging
|
|
LOCAL oGet, nKey
|
|
oGet := GetList[1]
|
|
? "Buffer:[" + oGet:cBuffer + "]"
|
|
? "DispLen:", oGet:nDispLen
|
|
? "Type:", oGet:cType
|
|
? "Press key to start edit..."
|
|
Inkey(0)
|
|
|
|
oGet:setFocus()
|
|
|
|
DO WHILE .T.
|
|
SetPos(oGet:nRow, oGet:nCol + oGet:nPos - 1)
|
|
nKey := Inkey(0)
|
|
|
|
? "Key:", nKey
|
|
|
|
IF nKey = 27
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF nKey >= 32 .AND. nKey <= 126
|
|
oGet:overStrike(Chr(nKey))
|
|
oGet:display()
|
|
? "Buf:[" + oGet:cBuffer + "] Pos:", oGet:nPos
|
|
ENDIF
|
|
ENDDO
|
|
|
|
oGet:killFocus()
|
|
? ""
|
|
? "Result:[" + cName + "]"
|
|
Inkey(0)
|
|
RETURN NIL
|