dofile works, but compile still fails.
Code: Select all
ImportC "squirrel.lib"
sq_open.i(stacksize.l)
sq_pop(*vm, nelementstoppop.l)
sq_close(*vm)
sq_pushroottable(*vm)
sq_pushstring(*vm, f.p-UTF8, len.l)
sq_get(*vm, idx.l)
sq_pushinteger(*vm, ni.l)
sq_pushfloat(*vm, nf.f)
sq_call.i(*vm, param.l, retval.l, raiseerror.l)
sq_compile.i(*vm, *ReadFunc, parameter.i, sourcename.p-UTF8, raiseerror.l)
sq_setcompilererrorhandler(*vm, *ErrorFunc)
sq_setprintfunc(*vm, *PrintFunc, *ErrorFunc)
EndImport
ImportC "sqstdlib.lib"
sqstd_dofile(*vm, filename.p-UTF8, retval.l, printerror.l)
sqstd_loadfile(*vm, filename.p-UTF8, printerror.l)
EndImport
ProcedureC ErrorFunc(*vm, *desc, *source, line.i, column.i)
Debug PeekS(*desc, -1, #PB_UTF8)
Debug PeekS(*source, -1, #PB_UTF8) + " line: " + Str(line) + " col: " + Str(column)
EndProcedure
ProcedureC PrintFunc(*vm, *s, *a)
Debug PeekS(*s, -1, #PB_UTF8)
Debug PeekS(*a, -1, #PB_UTF8)
EndProcedure
ProcedureC.a GetCharFileFunc(hFile.i)
Protected Byte.a
ReadData(hFile, @Byte, 1)
;Debug RSet(Hex(Byte), 2, "0") + " " + Chr(Byte)
ProcedureReturn Byte
EndProcedure
Define hFile.i
*vm = sq_open(10240)
If *vm
sq_setcompilererrorhandler(*vm, @ErrorFunc())
sq_setprintfunc(*vm, @PrintFunc(), #Null)
Debug sq_pushroottable(*vm)
hFile = ReadFile(#PB_Any, "HelloWorld.nut")
If hFile
Debug sq_compile(*vm, @GetCharFileFunc(), hFile, "HelloWorld.nut", #True)
CloseFile(hFile)
;
Debug sqstd_dofile(*vm, "HelloWorld.nut", #False, #True)
;Debug sqstd_dofile(*vm, "compileError.nut", #False, #True)
;
; Debug sq_pushstring(*vm, "foo", -1)
; Debug sq_get(*vm, -2)
; Debug sq_pushinteger(*vm, 1)
; Debug sq_pushfloat(*vm, 2.0)
; Debug sq_pushstring(*vm, "three", -1)
; Debug sq_call(*vm, 4, #False, #True)
Debug sq_pop(*vm, 1)
EndIf
sq_close(*vm)
EndIf