From 2ebaeab3c69aaa66902ccf3892ac41c4ec8ae883 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sat, 4 Jan 2020 16:13:13 -0300 Subject: [PATCH 01/12] Initial implementation of $NOPREFIX Allows QB64-specific keywords to be called without the leading underscore. Per user and per project; affects nothing globally. Allows prefixed keywords to be used even when it's set. --- source/ide/ide_global.bas | 25 +- source/qb64.bas | 345 +++++++----- .../extensions/opengl/opengl_methods.bas | 15 +- source/subs_functions/subs_functions.bas | 524 +++++++++--------- 4 files changed, 489 insertions(+), 420 deletions(-) diff --git a/source/ide/ide_global.bas b/source/ide/ide_global.bas index 53117edee..26c37c8f8 100644 --- a/source/ide/ide_global.bas +++ b/source/ide/ide_global.bas @@ -116,13 +116,24 @@ DIM SHARED idecurrentlinelayout AS STRING DIM SHARED idecurrentlinelayouti AS LONG DIM SHARED idelayoutallow AS LONG -DIM SHARED listOfKeywords$, listOfCustomKeywords$, customKeywordsLength AS LONG -listOfKeywords$ = "@?@$CHECKING@$CONSOLE@ONLY@$DYNAMIC@$ELSE@$ELSEIF@$END@$ENDIF@$EXEICON@$IF@$INCLUDE@$LET@$RESIZE@$SCREENHIDE@$SCREENSHOW@$STATIC@$VERSIONINFO@$VIRTUALKEYBOARD@ABS@ABSOLUTE@ACCESS@ALIAS@AND@APPEND@AS@ASC@ATN@BASE@BEEP@BINARY@BLOAD@BSAVE@BYVAL@CALL@CALLS@CASE@IS@CDBL@CDECL@CHAIN@CHDIR@CHR$@CINT@CIRCLE@CLEAR@CLNG@CLOSE@CLS@COLOR@COM@COMMAND$@COMMON@CONST@COS@CSNG@CSRLIN@CUSTOMTYPE@CVD@CVDMBF@CVI@CVL@CVS@CVSMBF@DATA@DATE$@DECLARE@DEF@DEFDBL@DEFINT@DEFLNG@DEFSNG@DEFSTR@DIM@DO@DOUBLE@DRAW@DYNAMIC@ELSE@ELSEIF@END@ENDIF@ENVIRON@ENVIRON$@EOF@EQV@ERASE@ERDEV@ERDEV$@ERL@ERR@ERROR@EVERYCASE@EXIT@EXP@FIELD@FILEATTR@FILES@FIX@FN@FOR@FRE@FREE@FREEFILE@FUNCTION@GET@GOSUB@GOTO@HEX$@IF@IMP@INKEY$@INP@INPUT@INPUT$@INSTR@INT@INTEGER@INTERRUPT@INTERRUPTX@IOCTL@IOCTL$@KEY@KILL@LBOUND@LCASE$@LEFT$@LEN@LET@LIBRARY@LINE@LIST@LOC@LOCATE@LOCK@LOF@LOG@LONG@LOOP@LPOS@LPRINT@LSET@LTRIM$@MID$@MKD$@MKDIR@MKDMBF$@MKI$@MKL$@MKS$@MKSMBF$@MOD@NAME@NEXT@NOT@OCT$@OFF@ON@OPEN@OPTION@OR@OUT@OUTPUT@PAINT@PALETTE@PCOPY@PEEK@PEN@PLAY@PMAP@POINT@POKE@POS@PRESET@PRINT@PSET@PUT@RANDOM@RANDOMIZE@READ@REDIM@REM@RESET@RESTORE@RESUME@RETURN@RIGHT$@RMDIR@RND@RSET@RTRIM$@RUN@SADD@SCREEN@SEEK@SEG@SELECT@SETMEM@SGN@SHARED@SHELL@SIGNAL@SIN@SINGLE@SLEEP@SOUND@SPACE$@SPC@SQR@STATIC@STEP@STICK@STOP@STR$@STRIG@STRING@STRING$@SUB@SWAP@SYSTEM@TAB@TAN@THEN@TIME$@TIMER@TO@TROFF@TRON@TYPE@UBOUND@UCASE$@UEVENT@UNLOCK@UNTIL@USING@VAL@VARPTR@VARPTR$@VARSEG@VIEW@WAIT@WEND@WHILE@WIDTH@WINDOW@WRITE@XOR@_ACOS@_ACOSH@_ALPHA@_ALPHA32@_ARCCOT@_ARCCSC@_ARCSEC@_ASIN@_ASINH@_ATAN2@_ATANH@_AUTODISPLAY@_AXIS@_BACKGROUNDCOLOR@_BIT@_BLEND@_BLINK@_BLUE@_BLUE32@_BUTTON@_BUTTONCHANGE@_BYTE@_CEIL@_CLEARCOLOR@_CLIP@_CLIPBOARD$@_CLIPBOARDIMAGE@_COMMANDCOUNT@_CONNECTED@_CONNECTIONADDRESS$@_CONNECTIONADDRESS@_CONSOLE@_CONSOLETITLE@_CONTINUE@_CONTROLCHR@_COPYIMAGE@_COPYPALETTE@_COSH@_COT@_COTH@_CSC@_CSCH@_CV@_CWD$@_D2G@_D2R@_DEFAULTCOLOR@_DEFINE@_DELAY@_DEPTHBUFFER@_DESKTOPHEIGHT@_DESKTOPWIDTH@_DEST@_DEVICE$@_DEVICEINPUT@_DEVICES@_DIR$@_DIREXISTS@_DISPLAY@_DISPLAYORDER@_DONTBLEND@_DONTWAIT@" -listOfKeywords$ = listOfKeywords$ + "_ERRORLINE@_EXIT@_EXPLICIT@_FILEEXISTS@_FLOAT@_FONT@_FONTHEIGHT@_FONTWIDTH@_FREEFONT@_FREEIMAGE@_FREETIMER@_FULLSCREEN@_G2D@_G2R@_GLRENDER@_GREEN@_GREEN32@_HEIGHT@_HIDE@_HYPOT@_ICON@_INCLERRORFILE$@_INCLERRORLINE@_INTEGER64@_KEYCLEAR@_KEYDOWN@_KEYHIT@_LASTAXIS@_LASTBUTTON@_LASTWHEEL@_LIMIT@_LOADFONT@_LOADIMAGE@_MAPTRIANGLE@_MAPUNICODE@_MEM@_MEMCOPY@_MEMELEMENT@_MEMEXISTS@_MEMFILL@_MEMFREE@_MEMGET@_MEMIMAGE@_MEMNEW@_MEMPUT@_MIDDLE@_MK$@_MOUSEBUTTON@_MOUSEHIDE@_MOUSEINPUT@_MOUSEMOVE@_MOUSEMOVEMENTX@_MOUSEMOVEMENTY@_MOUSEPIPEOPEN@_MOUSESHOW@_MOUSEWHEEL@_MOUSEX@_MOUSEY@_NEWIMAGE@_OFFSET@_OPENCLIENT@_OPENCONNECTION@_OPENHOST@_OS$@_PALETTECOLOR@_PI@_PIXELSIZE@_PRESERVE@_PRINTIMAGE@_PRINTMODE@_PRINTSTRING@_PRINTWIDTH@_PUTIMAGE@_R2D@_R2G@_RED@_RED32@_RESIZE@_RESIZEHEIGHT@_RESIZEWIDTH@_RGB@_RGB32@_RGBA@_RGBA32@_ROUND@_SCREENCLICK@_SCREENEXISTS@_SCREENHIDE@_SCREENICON@_SCREENIMAGE@_SCREENMOVE@_SCREENPRINT@_SCREENSHOW@_SCREENX@_SCREENY@_SEC@_SECH@_SETALPHA@_SHELLHIDE@_SINH@_SNDBAL@_SNDCLOSE@_SNDCOPY@_SNDGETPOS@_SNDLEN@_SNDLIMIT@_SNDLOOP@_SNDOPEN@_SNDOPENRAW@_SNDPAUSE@_SNDPAUSED@_SNDPLAY@_SNDPLAYCOPY@_SNDPLAYFILE@_SNDPLAYING@_SNDRATE@_SNDRAW@_SNDRAWDONE@_SNDRAWLEN@_SNDSETPOS@_SNDSTOP@_SNDVOL@_SOURCE@_STARTDIR$@_STRCMP@_STRICMP@_TANH@_TITLE@_TITLE$@_UNSIGNED@_WHEEL@_WIDTH@_WINDOWHANDLE@_WINDOWHASFOCUS@_GLACCUM@_GLALPHAFUNC@_GLARETEXTURESRESIDENT@_GLARRAYELEMENT@_GLBEGIN@_GLBINDTEXTURE@_GLBITMAP@_GLBLENDFUNC@_GLCALLLIST@_GLCALLLISTS@_GLCLEAR@_GLCLEARACCUM@_GLCLEARCOLOR@_GLCLEARDEPTH@_GLCLEARINDEX@_GLCLEARSTENCIL@_GLCLIPPLANE@_GLCOLOR3B@_GLCOLOR3BV@_GLCOLOR3D@_GLCOLOR3DV@_GLCOLOR3F@_GLCOLOR3FV@_GLCOLOR3I@_GLCOLOR3IV@_GLCOLOR3S@_GLCOLOR3SV@_GLCOLOR3UB@_GLCOLOR3UBV@_GLCOLOR3UI@_GLCOLOR3UIV@_GLCOLOR3US@_GLCOLOR3USV@_GLCOLOR4B@_GLCOLOR4BV@_GLCOLOR4D@_GLCOLOR4DV@_GLCOLOR4F@_GLCOLOR4FV@_GLCOLOR4I@_GLCOLOR4IV@_GLCOLOR4S@_GLCOLOR4SV@_GLCOLOR4UB@_GLCOLOR4UBV@_GLCOLOR4UI@_GLCOLOR4UIV@_GLCOLOR4US@_GLCOLOR4USV@_GLCOLORMASK@_GLCOLORMATERIAL@_GLCOLORPOINTER@_GLCOPYPIXELS@_GLCOPYTEXIMAGE1D@_GLCOPYTEXIMAGE2D@_GLCOPYTEXSUBIMAGE1D@" -listOfKeywords$ = listOfKeywords$ + "_GLCOPYTEXSUBIMAGE2D@_GLCULLFACE@_GLDELETELISTS@_GLDELETETEXTURES@_GLDEPTHFUNC@_GLDEPTHMASK@_GLDEPTHRANGE@_GLDISABLE@_GLDISABLECLIENTSTATE@_GLDRAWARRAYS@_GLDRAWBUFFER@_GLDRAWELEMENTS@_GLDRAWPIXELS@_GLEDGEFLAG@_GLEDGEFLAGPOINTER@_GLEDGEFLAGV@_GLENABLE@_GLENABLECLIENTSTATE@_GLEND@_GLENDLIST@_GLEVALCOORD1D@_GLEVALCOORD1DV@_GLEVALCOORD1F@_GLEVALCOORD1FV@_GLEVALCOORD2D@_GLEVALCOORD2DV@_GLEVALCOORD2F@_GLEVALCOORD2FV@_GLEVALMESH1@_GLEVALMESH2@_GLEVALPOINT1@_GLEVALPOINT2@_GLFEEDBACKBUFFER@_GLFINISH@_GLFLUSH@_GLFOGF@_GLFOGFV@_GLFOGI@_GLFOGIV@_GLFRONTFACE@_GLFRUSTUM@_GLGENLISTS@_GLGENTEXTURES@_GLGETBOOLEANV@_GLGETCLIPPLANE@_GLGETDOUBLEV@_GLGETERROR@_GLGETFLOATV@_GLGETINTEGERV@_GLGETLIGHTFV@_GLGETLIGHTIV@_GLGETMAPDV@_GLGETMAPFV@_GLGETMAPIV@_GLGETMATERIALFV@_GLGETMATERIALIV@_GLGETPIXELMAPFV@_GLGETPIXELMAPUIV@_GLGETPIXELMAPUSV@_GLGETPOINTERV@_GLGETPOLYGONSTIPPLE@_GLGETSTRING@_GLGETTEXENVFV@_GLGETTEXENVIV@_GLGETTEXGENDV@_GLGETTEXGENFV@_GLGETTEXGENIV@_GLGETTEXIMAGE@_GLGETTEXLEVELPARAMETERFV@_GLGETTEXLEVELPARAMETERIV@_GLGETTEXPARAMETERFV@_GLGETTEXPARAMETERIV@_GLHINT@_GLINDEXMASK@_GLINDEXPOINTER@_GLINDEXD@_GLINDEXDV@_GLINDEXF@_GLINDEXFV@_GLINDEXI@_GLINDEXIV@_GLINDEXS@_GLINDEXSV@_GLINDEXUB@_GLINDEXUBV@_GLINITNAMES@_GLINTERLEAVEDARRAYS@_GLISENABLED@_GLISLIST@_GLISTEXTURE@_GLLIGHTMODELF@_GLLIGHTMODELFV@_GLLIGHTMODELI@_GLLIGHTMODELIV@_GLLIGHTF@_GLLIGHTFV@_GLLIGHTI@_GLLIGHTIV@_GLLINESTIPPLE@_GLLINEWIDTH@_GLLISTBASE@_GLLOADIDENTITY@_GLLOADMATRIXD@_GLLOADMATRIXF@_GLLOADNAME@_GLLOGICOP@_GLMAP1D@_GLMAP1F@_GLMAP2D@_GLMAP2F@_GLMAPGRID1D@_GLMAPGRID1F@_GLMAPGRID2D@_GLMAPGRID2F@_GLMATERIALF@_GLMATERIALFV@_GLMATERIALI@_GLMATERIALIV@_GLMATRIXMODE@_GLMULTMATRIXD@_GLMULTMATRIXF@_GLNEWLIST@_GLNORMAL3B@_GLNORMAL3BV@_GLNORMAL3D@_GLNORMAL3DV@_GLNORMAL3F@_GLNORMAL3FV@_GLNORMAL3I@_GLNORMAL3IV@_GLNORMAL3S@_GLNORMAL3SV@_GLNORMALPOINTER@_GLORTHO@_GLPASSTHROUGH@_GLPIXELMAPFV@_GLPIXELMAPUIV@_GLPIXELMAPUSV@_GLPIXELSTOREF@_GLPIXELSTOREI@_GLPIXELTRANSFERF@_GLPIXELTRANSFERI@_GLPIXELZOOM@_GLPOINTSIZE@_GLPOLYGONMODE@_GLPOLYGONOFFSET@_GLPOLYGONSTIPPLE@" -listOfKeywords$ = listOfKeywords$ + "_GLPOPATTRIB@_GLPOPCLIENTATTRIB@_GLPOPMATRIX@_GLPOPNAME@_GLPRIORITIZETEXTURES@_GLPUSHATTRIB@_GLPUSHCLIENTATTRIB@_GLPUSHMATRIX@_GLPUSHNAME@_GLRASTERPOS2D@_GLRASTERPOS2DV@_GLRASTERPOS2F@_GLRASTERPOS2FV@_GLRASTERPOS2I@_GLRASTERPOS2IV@_GLRASTERPOS2S@_GLRASTERPOS2SV@_GLRASTERPOS3D@_GLRASTERPOS3DV@_GLRASTERPOS3F@_GLRASTERPOS3FV@_GLRASTERPOS3I@_GLRASTERPOS3IV@_GLRASTERPOS3S@_GLRASTERPOS3SV@_GLRASTERPOS4D@_GLRASTERPOS4DV@_GLRASTERPOS4F@_GLRASTERPOS4FV@_GLRASTERPOS4I@_GLRASTERPOS4IV@_GLRASTERPOS4S@_GLRASTERPOS4SV@_GLREADBUFFER@_GLREADPIXELS@_GLRECTD@_GLRECTDV@_GLRECTF@_GLRECTFV@_GLRECTI@_GLRECTIV@_GLRECTS@_GLRECTSV@_GLRENDERMODE@_GLROTATED@_GLROTATEF@_GLSCALED@_GLSCALEF@_GLSCISSOR@_GLSELECTBUFFER@_GLSHADEMODEL@_GLSTENCILFUNC@_GLSTENCILMASK@_GLSTENCILOP@_GLTEXCOORD1D@_GLTEXCOORD1DV@_GLTEXCOORD1F@_GLTEXCOORD1FV@_GLTEXCOORD1I@_GLTEXCOORD1IV@_GLTEXCOORD1S@_GLTEXCOORD1SV@_GLTEXCOORD2D@_GLTEXCOORD2DV@_GLTEXCOORD2F@_GLTEXCOORD2FV@_GLTEXCOORD2I@_GLTEXCOORD2IV@_GLTEXCOORD2S@_GLTEXCOORD2SV@_GLTEXCOORD3D@_GLTEXCOORD3DV@_GLTEXCOORD3F@_GLTEXCOORD3FV@_GLTEXCOORD3I@_GLTEXCOORD3IV@_GLTEXCOORD3S@_GLTEXCOORD3SV@_GLTEXCOORD4D@_GLTEXCOORD4DV@_GLTEXCOORD4F@_GLTEXCOORD4FV@_GLTEXCOORD4I@_GLTEXCOORD4IV@_GLTEXCOORD4S@_GLTEXCOORD4SV@_GLTEXCOORDPOINTER@_GLTEXENVF@_GLTEXENVFV@_GLTEXENVI@_GLTEXENVIV@_GLTEXGEND@_GLTEXGENDV@_GLTEXGENF@_GLTEXGENFV@_GLTEXGENI@_GLTEXGENIV@_GLTEXIMAGE1D@_GLTEXIMAGE2D@_GLTEXPARAMETERF@_GLTEXPARAMETERFV@_GLTEXPARAMETERI@_GLTEXPARAMETERIV@_GLTEXSUBIMAGE1D@_GLTEXSUBIMAGE2D@_GLTRANSLATED@_GLTRANSLATEF@_GLVERTEX2D@_GLVERTEX2DV@_GLVERTEX2F@_GLVERTEX2FV@_GLVERTEX2I@_GLVERTEX2IV@_GLVERTEX2S@_GLVERTEX2SV@_GLVERTEX3D@_GLVERTEX3DV@_GLVERTEX3F@_GLVERTEX3FV@_GLVERTEX3I@_GLVERTEX3IV@_GLVERTEX3S@_GLVERTEX3SV@_GLVERTEX4D@_GLVERTEX4DV@_GLVERTEX4F@_GLVERTEX4FV@_GLVERTEX4I@_GLVERTEX4IV@_GLVERTEX4S@_GLVERTEX4SV@_GLVERTEXPOINTER@_GLVIEWPORT@SMOOTH@STRETCH@_ANTICLOCKWISE@_BEHIND@_CLEAR@_FILLBACKGROUND@_GLUPERSPECTIVE@_HARDWARE@_HARDWARE1@_KEEPBACKGROUND@_NONE@_OFF@_ONLY@_ONLYBACKGROUND@_ONTOP@_SEAMLESS@_SMOOTH@_SMOOTHSHRUNK@_SMOOTHSTRETCHED@" -listOfKeywords$ = listOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@" -listOfKeywords$ = listOfKeywords$ + "_DEFLATE$@_INFLATE$@_READBIT@_RESETBIT@_SETBIT@_TOGGLEBIT@$ASSERTS@_ASSERT@_CAPSLOCK@_NUMLOCK@_SCROLLLOCK@_TOGGLE@_CONSOLEFONT@_CONSOLECURSOR@_CONSOLEINPUT@_CINP@" +DIM SHARED backupListOfKeywords$, listOfKeywords$, listOfCustomKeywords$, customKeywordsLength AS LONG +DIM SHARED listOfKeywordsWithoutPrefix$ +backupListOfKeywords$ = "@?@$CHECKING@$CONSOLE@ONLY@$DYNAMIC@$ELSE@$ELSEIF@$END@$ENDIF@$EXEICON@$IF@$INCLUDE@$LET@$RESIZE@$SCREENHIDE@$SCREENSHOW@$STATIC@$VERSIONINFO@$VIRTUALKEYBOARD@ABS@ABSOLUTE@ACCESS@ALIAS@AND@APPEND@AS@ASC@ATN@BASE@BEEP@BINARY@BLOAD@BSAVE@BYVAL@CALL@CALLS@CASE@IS@CDBL@CDECL@CHAIN@CHDIR@CHR$@CINT@CIRCLE@CLEAR@CLNG@CLOSE@CLS@COLOR@COM@COMMAND$@COMMON@CONST@COS@CSNG@CSRLIN@CUSTOMTYPE@CVD@CVDMBF@CVI@CVL@CVS@CVSMBF@DATA@DATE$@DECLARE@DEF@DEFDBL@DEFINT@DEFLNG@DEFSNG@DEFSTR@DIM@DO@DOUBLE@DRAW@DYNAMIC@ELSE@ELSEIF@END@ENDIF@ENVIRON@ENVIRON$@EOF@EQV@ERASE@ERDEV@ERDEV$@ERL@ERR@ERROR@EVERYCASE@EXIT@EXP@FIELD@FILEATTR@FILES@FIX@FN@FOR@FRE@FREE@FREEFILE@FUNCTION@GET@GOSUB@GOTO@HEX$@IF@IMP@INKEY$@INP@INPUT@INPUT$@INSTR@INT@INTEGER@INTERRUPT@INTERRUPTX@IOCTL@IOCTL$@KEY@KILL@LBOUND@LCASE$@LEFT$@LEN@LET@LIBRARY@LINE@LIST@LOC@LOCATE@LOCK@LOF@LOG@LONG@LOOP@LPOS@LPRINT@LSET@LTRIM$@MID$@MKD$@MKDIR@MKDMBF$@MKI$@MKL$@MKS$@MKSMBF$@MOD@NAME@NEXT@NOT@OCT$@OFF@ON@OPEN@OPTION@OR@OUT@OUTPUT@PAINT@PALETTE@PCOPY@PEEK@PEN@PLAY@PMAP@POINT@POKE@POS@PRESET@PRINT@PSET@PUT@RANDOM@RANDOMIZE@READ@REDIM@REM@RESET@RESTORE@RESUME@RETURN@RIGHT$@RMDIR@RND@RSET@RTRIM$@RUN@SADD@SCREEN@SEEK@SEG@SELECT@SETMEM@SGN@SHARED@SHELL@SIGNAL@SIN@SINGLE@SLEEP@SOUND@SPACE$@SPC@SQR@STATIC@STEP@STICK@STOP@STR$@STRIG@STRING@STRING$@SUB@SWAP@SYSTEM@TAB@TAN@THEN@TIME$@TIMER@TO@TROFF@TRON@TYPE@UBOUND@UCASE$@UEVENT@UNLOCK@UNTIL@USING@VAL@VARPTR@VARPTR$@VARSEG@VIEW@WAIT@WEND@WHILE@WIDTH@WINDOW@WRITE@XOR@_ACOS@_ACOSH@_ALPHA@_ALPHA32@_ARCCOT@_ARCCSC@_ARCSEC@_ASIN@_ASINH@_ATAN2@_ATANH@_AUTODISPLAY@_AXIS@_BACKGROUNDCOLOR@_BIT@_BLEND@_BLINK@_BLUE@_BLUE32@_BUTTON@_BUTTONCHANGE@_BYTE@_CEIL@_CLEARCOLOR@_CLIP@_CLIPBOARD$@_CLIPBOARDIMAGE@_COMMANDCOUNT@_CONNECTED@_CONNECTIONADDRESS$@_CONNECTIONADDRESS@_CONSOLE@_CONSOLETITLE@_CONTINUE@_CONTROLCHR@_COPYIMAGE@_COPYPALETTE@_COSH@_COT@_COTH@_CSC@_CSCH@_CV@_CWD$@_D2G@_D2R@_DEFAULTCOLOR@_DEFINE@_DELAY@_DEPTHBUFFER@_DESKTOPHEIGHT@_DESKTOPWIDTH@_DEST@_DEVICE$@_DEVICEINPUT@_DEVICES@_DIR$@_DIREXISTS@_DISPLAY@_DISPLAYORDER@_DONTBLEND@_DONTWAIT@" +backupListOfKeywords$ = backupListOfKeywords$ + "_ERRORLINE@_EXIT@_EXPLICIT@_FILEEXISTS@_FLOAT@_FONT@_FONTHEIGHT@_FONTWIDTH@_FREEFONT@_FREEIMAGE@_FREETIMER@_FULLSCREEN@_G2D@_G2R@_GLRENDER@_GREEN@_GREEN32@_HEIGHT@_HIDE@_HYPOT@_ICON@_INCLERRORFILE$@_INCLERRORLINE@_INTEGER64@_KEYCLEAR@_KEYDOWN@_KEYHIT@_LASTAXIS@_LASTBUTTON@_LASTWHEEL@_LIMIT@_LOADFONT@_LOADIMAGE@_MAPTRIANGLE@_MAPUNICODE@_MEM@_MEMCOPY@_MEMELEMENT@_MEMEXISTS@_MEMFILL@_MEMFREE@_MEMGET@_MEMIMAGE@_MEMNEW@_MEMPUT@_MIDDLE@_MK$@_MOUSEBUTTON@_MOUSEHIDE@_MOUSEINPUT@_MOUSEMOVE@_MOUSEMOVEMENTX@_MOUSEMOVEMENTY@_MOUSEPIPEOPEN@_MOUSESHOW@_MOUSEWHEEL@_MOUSEX@_MOUSEY@_NEWIMAGE@_OFFSET@_OPENCLIENT@_OPENCONNECTION@_OPENHOST@_OS$@_PALETTECOLOR@_PI@_PIXELSIZE@_PRESERVE@_PRINTIMAGE@_PRINTMODE@_PRINTSTRING@_PRINTWIDTH@_PUTIMAGE@_R2D@_R2G@_RED@_RED32@_RESIZE@_RESIZEHEIGHT@_RESIZEWIDTH@_RGB@_RGB32@_RGBA@_RGBA32@_ROUND@_SCREENCLICK@_SCREENEXISTS@_SCREENHIDE@_SCREENICON@_SCREENIMAGE@_SCREENMOVE@_SCREENPRINT@_SCREENSHOW@_SCREENX@_SCREENY@_SEC@_SECH@_SETALPHA@_SHELLHIDE@_SINH@_SNDBAL@_SNDCLOSE@_SNDCOPY@_SNDGETPOS@_SNDLEN@_SNDLIMIT@_SNDLOOP@_SNDOPEN@_SNDOPENRAW@_SNDPAUSE@_SNDPAUSED@_SNDPLAY@_SNDPLAYCOPY@_SNDPLAYFILE@_SNDPLAYING@_SNDRATE@_SNDRAW@_SNDRAWDONE@_SNDRAWLEN@_SNDSETPOS@_SNDSTOP@_SNDVOL@_SOURCE@_STARTDIR$@_STRCMP@_STRICMP@_TANH@_TITLE@_TITLE$@_UNSIGNED@_WHEEL@_WIDTH@_WINDOWHANDLE@_WINDOWHASFOCUS@_GLACCUM@_GLALPHAFUNC@_GLARETEXTURESRESIDENT@_GLARRAYELEMENT@_GLBEGIN@_GLBINDTEXTURE@_GLBITMAP@_GLBLENDFUNC@_GLCALLLIST@_GLCALLLISTS@_GLCLEAR@_GLCLEARACCUM@_GLCLEARCOLOR@_GLCLEARDEPTH@_GLCLEARINDEX@_GLCLEARSTENCIL@_GLCLIPPLANE@_GLCOLOR3B@_GLCOLOR3BV@_GLCOLOR3D@_GLCOLOR3DV@_GLCOLOR3F@_GLCOLOR3FV@_GLCOLOR3I@_GLCOLOR3IV@_GLCOLOR3S@_GLCOLOR3SV@_GLCOLOR3UB@_GLCOLOR3UBV@_GLCOLOR3UI@_GLCOLOR3UIV@_GLCOLOR3US@_GLCOLOR3USV@_GLCOLOR4B@_GLCOLOR4BV@_GLCOLOR4D@_GLCOLOR4DV@_GLCOLOR4F@_GLCOLOR4FV@_GLCOLOR4I@_GLCOLOR4IV@_GLCOLOR4S@_GLCOLOR4SV@_GLCOLOR4UB@_GLCOLOR4UBV@_GLCOLOR4UI@_GLCOLOR4UIV@_GLCOLOR4US@_GLCOLOR4USV@_GLCOLORMASK@_GLCOLORMATERIAL@_GLCOLORPOINTER@_GLCOPYPIXELS@_GLCOPYTEXIMAGE1D@_GLCOPYTEXIMAGE2D@_GLCOPYTEXSUBIMAGE1D@" +backupListOfKeywords$ = backupListOfKeywords$ + "_GLCOPYTEXSUBIMAGE2D@_GLCULLFACE@_GLDELETELISTS@_GLDELETETEXTURES@_GLDEPTHFUNC@_GLDEPTHMASK@_GLDEPTHRANGE@_GLDISABLE@_GLDISABLECLIENTSTATE@_GLDRAWARRAYS@_GLDRAWBUFFER@_GLDRAWELEMENTS@_GLDRAWPIXELS@_GLEDGEFLAG@_GLEDGEFLAGPOINTER@_GLEDGEFLAGV@_GLENABLE@_GLENABLECLIENTSTATE@_GLEND@_GLENDLIST@_GLEVALCOORD1D@_GLEVALCOORD1DV@_GLEVALCOORD1F@_GLEVALCOORD1FV@_GLEVALCOORD2D@_GLEVALCOORD2DV@_GLEVALCOORD2F@_GLEVALCOORD2FV@_GLEVALMESH1@_GLEVALMESH2@_GLEVALPOINT1@_GLEVALPOINT2@_GLFEEDBACKBUFFER@_GLFINISH@_GLFLUSH@_GLFOGF@_GLFOGFV@_GLFOGI@_GLFOGIV@_GLFRONTFACE@_GLFRUSTUM@_GLGENLISTS@_GLGENTEXTURES@_GLGETBOOLEANV@_GLGETCLIPPLANE@_GLGETDOUBLEV@_GLGETERROR@_GLGETFLOATV@_GLGETINTEGERV@_GLGETLIGHTFV@_GLGETLIGHTIV@_GLGETMAPDV@_GLGETMAPFV@_GLGETMAPIV@_GLGETMATERIALFV@_GLGETMATERIALIV@_GLGETPIXELMAPFV@_GLGETPIXELMAPUIV@_GLGETPIXELMAPUSV@_GLGETPOINTERV@_GLGETPOLYGONSTIPPLE@_GLGETSTRING@_GLGETTEXENVFV@_GLGETTEXENVIV@_GLGETTEXGENDV@_GLGETTEXGENFV@_GLGETTEXGENIV@_GLGETTEXIMAGE@_GLGETTEXLEVELPARAMETERFV@_GLGETTEXLEVELPARAMETERIV@_GLGETTEXPARAMETERFV@_GLGETTEXPARAMETERIV@_GLHINT@_GLINDEXMASK@_GLINDEXPOINTER@_GLINDEXD@_GLINDEXDV@_GLINDEXF@_GLINDEXFV@_GLINDEXI@_GLINDEXIV@_GLINDEXS@_GLINDEXSV@_GLINDEXUB@_GLINDEXUBV@_GLINITNAMES@_GLINTERLEAVEDARRAYS@_GLISENABLED@_GLISLIST@_GLISTEXTURE@_GLLIGHTMODELF@_GLLIGHTMODELFV@_GLLIGHTMODELI@_GLLIGHTMODELIV@_GLLIGHTF@_GLLIGHTFV@_GLLIGHTI@_GLLIGHTIV@_GLLINESTIPPLE@_GLLINEWIDTH@_GLLISTBASE@_GLLOADIDENTITY@_GLLOADMATRIXD@_GLLOADMATRIXF@_GLLOADNAME@_GLLOGICOP@_GLMAP1D@_GLMAP1F@_GLMAP2D@_GLMAP2F@_GLMAPGRID1D@_GLMAPGRID1F@_GLMAPGRID2D@_GLMAPGRID2F@_GLMATERIALF@_GLMATERIALFV@_GLMATERIALI@_GLMATERIALIV@_GLMATRIXMODE@_GLMULTMATRIXD@_GLMULTMATRIXF@_GLNEWLIST@_GLNORMAL3B@_GLNORMAL3BV@_GLNORMAL3D@_GLNORMAL3DV@_GLNORMAL3F@_GLNORMAL3FV@_GLNORMAL3I@_GLNORMAL3IV@_GLNORMAL3S@_GLNORMAL3SV@_GLNORMALPOINTER@_GLORTHO@_GLPASSTHROUGH@_GLPIXELMAPFV@_GLPIXELMAPUIV@_GLPIXELMAPUSV@_GLPIXELSTOREF@_GLPIXELSTOREI@_GLPIXELTRANSFERF@_GLPIXELTRANSFERI@_GLPIXELZOOM@_GLPOINTSIZE@_GLPOLYGONMODE@_GLPOLYGONOFFSET@_GLPOLYGONSTIPPLE@" +backupListOfKeywords$ = backupListOfKeywords$ + "_GLPOPATTRIB@_GLPOPCLIENTATTRIB@_GLPOPMATRIX@_GLPOPNAME@_GLPRIORITIZETEXTURES@_GLPUSHATTRIB@_GLPUSHCLIENTATTRIB@_GLPUSHMATRIX@_GLPUSHNAME@_GLRASTERPOS2D@_GLRASTERPOS2DV@_GLRASTERPOS2F@_GLRASTERPOS2FV@_GLRASTERPOS2I@_GLRASTERPOS2IV@_GLRASTERPOS2S@_GLRASTERPOS2SV@_GLRASTERPOS3D@_GLRASTERPOS3DV@_GLRASTERPOS3F@_GLRASTERPOS3FV@_GLRASTERPOS3I@_GLRASTERPOS3IV@_GLRASTERPOS3S@_GLRASTERPOS3SV@_GLRASTERPOS4D@_GLRASTERPOS4DV@_GLRASTERPOS4F@_GLRASTERPOS4FV@_GLRASTERPOS4I@_GLRASTERPOS4IV@_GLRASTERPOS4S@_GLRASTERPOS4SV@_GLREADBUFFER@_GLREADPIXELS@_GLRECTD@_GLRECTDV@_GLRECTF@_GLRECTFV@_GLRECTI@_GLRECTIV@_GLRECTS@_GLRECTSV@_GLRENDERMODE@_GLROTATED@_GLROTATEF@_GLSCALED@_GLSCALEF@_GLSCISSOR@_GLSELECTBUFFER@_GLSHADEMODEL@_GLSTENCILFUNC@_GLSTENCILMASK@_GLSTENCILOP@_GLTEXCOORD1D@_GLTEXCOORD1DV@_GLTEXCOORD1F@_GLTEXCOORD1FV@_GLTEXCOORD1I@_GLTEXCOORD1IV@_GLTEXCOORD1S@_GLTEXCOORD1SV@_GLTEXCOORD2D@_GLTEXCOORD2DV@_GLTEXCOORD2F@_GLTEXCOORD2FV@_GLTEXCOORD2I@_GLTEXCOORD2IV@_GLTEXCOORD2S@_GLTEXCOORD2SV@_GLTEXCOORD3D@_GLTEXCOORD3DV@_GLTEXCOORD3F@_GLTEXCOORD3FV@_GLTEXCOORD3I@_GLTEXCOORD3IV@_GLTEXCOORD3S@_GLTEXCOORD3SV@_GLTEXCOORD4D@_GLTEXCOORD4DV@_GLTEXCOORD4F@_GLTEXCOORD4FV@_GLTEXCOORD4I@_GLTEXCOORD4IV@_GLTEXCOORD4S@_GLTEXCOORD4SV@_GLTEXCOORDPOINTER@_GLTEXENVF@_GLTEXENVFV@_GLTEXENVI@_GLTEXENVIV@_GLTEXGEND@_GLTEXGENDV@_GLTEXGENF@_GLTEXGENFV@_GLTEXGENI@_GLTEXGENIV@_GLTEXIMAGE1D@_GLTEXIMAGE2D@_GLTEXPARAMETERF@_GLTEXPARAMETERFV@_GLTEXPARAMETERI@_GLTEXPARAMETERIV@_GLTEXSUBIMAGE1D@_GLTEXSUBIMAGE2D@_GLTRANSLATED@_GLTRANSLATEF@_GLVERTEX2D@_GLVERTEX2DV@_GLVERTEX2F@_GLVERTEX2FV@_GLVERTEX2I@_GLVERTEX2IV@_GLVERTEX2S@_GLVERTEX2SV@_GLVERTEX3D@_GLVERTEX3DV@_GLVERTEX3F@_GLVERTEX3FV@_GLVERTEX3I@_GLVERTEX3IV@_GLVERTEX3S@_GLVERTEX3SV@_GLVERTEX4D@_GLVERTEX4DV@_GLVERTEX4F@_GLVERTEX4FV@_GLVERTEX4I@_GLVERTEX4IV@_GLVERTEX4S@_GLVERTEX4SV@_GLVERTEXPOINTER@_GLVIEWPORT@SMOOTH@STRETCH@_ANTICLOCKWISE@_BEHIND@_CLEAR@_FILLBACKGROUND@_GLUPERSPECTIVE@_HARDWARE@_HARDWARE1@_KEEPBACKGROUND@_NONE@_OFF@_ONLY@_ONLYBACKGROUND@_ONTOP@_SEAMLESS@_SMOOTH@_SMOOTHSHRUNK@_SMOOTHSTRETCHED@" +backupListOfKeywords$ = backupListOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@" +backupListOfKeywords$ = backupListOfKeywords$ + "_DEFLATE$@_INFLATE$@_READBIT@_RESETBIT@_SETBIT@_TOGGLEBIT@$ASSERTS@_ASSERT@_CAPSLOCK@_NUMLOCK@_SCROLLLOCK@_TOGGLE@_CONSOLEFONT@_CONSOLECURSOR@_CONSOLEINPUT@_CINP@$NOPREFIX@" + +listOfKeywords$ = backupListOfKeywords$ +listOfKeywordsWithoutPrefix$ = backupListOfKeywords$ + +i = 0 +DO + i = INSTR(i + 1, listOfKeywordsWithoutPrefix$, "_") + IF i = 0 THEN EXIT DO + listOfKeywordsWithoutPrefix$ = LEFT$(listOfKeywordsWithoutPrefix$, i - 1) + MID$(listOfKeywordsWithoutPrefix$, i + 1) +LOOP 'IDE MODULE: shared data & definitions '--------------------------------------------------- diff --git a/source/qb64.bas b/source/qb64.bas index 720748455..238955918 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -24,7 +24,6 @@ DEFLNG A-Z REDIM SHARED OName(0) AS STRING 'Operation Name REDIM SHARED PL(0) AS INTEGER 'Priority Level DIM SHARED QuickReturn AS INTEGER -Set_OrderOfOperations 'This will also make certain our directories are valid, and if not make them. REDIM EveryCaseSet(100), SelectCaseCounter AS _UNSIGNED LONG DIM ExecLevel(255), ExecCounter AS INTEGER @@ -103,7 +102,7 @@ DIM SHARED VerboseMode AS _BYTE, CMDLineFile AS STRING DIM SHARED totalUnusedVariables AS LONG, usedVariableList$, bypassNextVariable AS _BYTE DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING DIM SHARED duplicateConstWarning AS _BYTE -DIM SHARED ExeIconSet AS LONG +DIM SHARED ExeIconSet AS LONG, qb64prefix$, qb64prefix_set DIM SHARED VersionInfoSet AS _BYTE 'Variables to handle $VERSIONINFO metacommand: @@ -1415,6 +1414,9 @@ lastWarningHeader = "" REDIM SHARED warning$(1000) uniquenumbern = 0 ColorHack = 0 +qb64prefix_set = 0 +qb64prefix$ = "_" +listOfKeywords$ = backupListOfKeywords$ ''create a type for storing memory blocks ''UDT @@ -1534,6 +1536,7 @@ IF idemode = 0 THEN qberrorhappened = 0 END IF +Set_OrderOfOperations reginternal @@ -2397,7 +2400,7 @@ DO IF firstelement$ = "DEFSNG" THEN d = 1 IF firstelement$ = "DEFDBL" THEN d = 1 IF firstelement$ = "DEFSTR" THEN d = 1 - IF firstelement$ = "_DEFINE" THEN d = 1 + IF firstelement$ = qb64prefix$ + "DEFINE" THEN d = 1 IF d THEN predefining = 1: GOTO predefine predefined: predefining = 0 @@ -2972,8 +2975,9 @@ DO IF LEFT$(a3u$, 4) = "REM " OR _ (LEFT$(a3u$, 3) = "REM" AND LEN(a3u$) = 3) OR _ LEFT$(a3u$, 1) = "'" OR _ - (LEFT$(a3u$, 7) = "OPTION " AND LEFT$(LTRIM$(MID$(a3u$, 8)), 9) = "_EXPLICIT") THEN - 'It's a comment or OPTION _EXPLICIT itself, alright. + (LEFT$(a3u$, 7) = "OPTION " AND LEFT$(LTRIM$(MID$(a3u$, 8)), 9) = qb64prefix$ + "EXPLICIT") OR _ + LEFT$(a3u$, 1) = "$" THEN + 'It's a comment, $metacommand, or OPTION _EXPLICIT itself, alright. 'But even being a comment, there could be an $INCLUDE in there, let's check: IF LEFT$(a3u$, 4) = "REM " THEN i = 5 ELSE i = 2 IF LEFT$(LTRIM$(MID$(a3u$, i)), 8) = "$INCLUDE" THEN opex_comments = 0 @@ -3118,7 +3122,7 @@ DO linenumber = oldlinenumber GOTO ideret4 ELSE - a$ = "$COLOR can only be set once. Please remove multiple references to it." + a$ = "$COLOR can only be set once" GOTO errmes END IF END IF @@ -3404,7 +3408,7 @@ DO linenumber = oldlinenumber GOTO ideret4 ELSE - a$ = "$COLOR can only be set once. Please remove multiple references to it." + a$ = "$COLOR can only be set once" GOTO errmes END IF END IF @@ -3462,6 +3466,37 @@ DO GOTO finishednonexec END IF + IF LEFT$(a3u$, 9) = "$NOPREFIX" THEN + IF qb64prefix_set = 0 THEN + IF linenumber > 1 THEN + a$ = "$NOPREFIX must be set in the first line": GOTO errmes + END IF + layout$ = "$NOPREFIX" + qb64prefix$ = "" + qb64prefix_set = 1 + 're-add internal keywords without the "_" prefix + + Set_OrderOfOperations + IF UseGL THEN gl_include_content + reginternal + + f = HASHFLAG_TYPE + HASHFLAG_RESERVED + HashAdd qb64prefix$ + "UNSIGNED", f, 0 + HashAdd qb64prefix$ + "BIT", f, 0 + HashAdd qb64prefix$ + "BYTE", f, 0 + HashAdd qb64prefix$ + "INTEGER64", f, 0 + HashAdd qb64prefix$ + "OFFSET", f, 0 + HashAdd qb64prefix$ + "FLOAT", f, 0 + + f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX + HashAdd qb64prefix$ + "EXPLICIT", f, 0 + + listOfKeywords$ = listOfKeywordsWithoutPrefix$ + GOTO finishednonexec + ELSE + a$ = "$NOPREFIX can only be set once": GOTO errmes + END IF + END IF IF a3u$ = "$SCREENHIDE" THEN layout$ = "$SCREENHIDE" @@ -3560,12 +3595,12 @@ DO ValidateVersion: 'Check if only numbers and commas (4 comma-separated values) - IF LEN(VersionInfoValue$) = 0 THEN a$ = "Expected: $VERSIONINFO:" + VersionInfoKey$ + "=#,#,#,# (4 comma-separated numeric values: major, minor, revision and build)": GOTO errmes + IF LEN(VersionInfoValue$) = 0 THEN a$ = "Expected $VERSIONINFO:" + VersionInfoKey$ + "=#,#,#,# (4 comma-separated numeric values: major, minor, revision and build)": GOTO errmes viCommas = 0 FOR i = 1 TO LEN(VersionInfoValue$) IF ASC(VersionInfoValue$, i) = 44 THEN viCommas = viCommas + 1 IF INSTR("0123456789,", MID$(VersionInfoValue$, i, 1)) = 0 OR (i = LEN(VersionInfoValue$) AND viCommas <> 3) OR RIGHT$(VersionInfoValue$, 1) = "," THEN - a$ = "Expected: $VERSIONINFO:" + VersionInfoKey$ + "=#,#,#,# (4 comma-separated numeric values: major, minor, revision and build)": GOTO errmes + a$ = "Expected $VERSIONINFO:" + VersionInfoKey$ + "=#,#,#,# (4 comma-separated numeric values: major, minor, revision and build)": GOTO errmes END IF NEXT RETURN @@ -5590,7 +5625,7 @@ DO IF firstelement$ = "DEFSNG" THEN a$ = a$ + sp + "AS" + sp + "SINGLE": n = n + 2: GOTO definetype IF firstelement$ = "DEFDBL" THEN a$ = a$ + sp + "AS" + sp + "DOUBLE": n = n + 2: GOTO definetype IF firstelement$ = "DEFSTR" THEN a$ = a$ + sp + "AS" + sp + "STRING": n = n + 2: GOTO definetype - IF firstelement$ = "_DEFINE" THEN + IF firstelement$ = qb64prefix$ + "DEFINE" THEN asreq = 1 definetype: l$ = firstelement$ @@ -5605,8 +5640,8 @@ DO typ2$ = t$ + sp + typ2$ NEXT typ$ = RTRIM$(typ$) - IF t$ <> "AS" THEN a$ = "_DEFINE: Expected ... AS ...": GOTO errmes - IF i = n OR i = 2 THEN a$ = "_DEFINE: Expected ... AS ...": GOTO errmes + IF t$ <> "AS" THEN a$ = qb64prefix$ + "DEFINE: Expected ... AS ...": GOTO errmes + IF i = n OR i = 2 THEN a$ = qb64prefix$ + "DEFINE: Expected ... AS ...": GOTO errmes n = i - 1 @@ -5615,8 +5650,8 @@ DO definenext: 'expects an alphabet letter or underscore i = i + 1: e$ = getelement$(a$, i): E = ASC(UCASE$(e$)) - IF LEN(e$) > 1 THEN a$ = "_DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes - IF E <> 95 AND (E > 90 OR E < 65) THEN a$ = "_DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes + IF LEN(e$) > 1 THEN a$ = qb64prefix$ + "DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes + IF E <> 95 AND (E > 90 OR E < 65) THEN a$ = qb64prefix$ + "DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes IF E = 95 THEN E = 27 ELSE E = E - 64 defineaz(E) = typ$ defineextaz(E) = type2symbol(typ$) @@ -5633,14 +5668,14 @@ DO 'expects "-" or "," i = i + 1: e$ = getelement$(a$, i) - IF e$ <> "-" AND e$ <> "," THEN a$ = "_DEFINE: Expected - or ,": GOTO errmes + IF e$ <> "-" AND e$ <> "," THEN a$ = qb64prefix$ + "DEFINE: Expected - or ,": GOTO errmes IF e$ = "-" THEN l$ = l$ + sp2 + "-" - IF i = n THEN a$ = "_DEFINE: Syntax incomplete": GOTO errmes + IF i = n THEN a$ = qb64prefix$ + "DEFINE: Syntax incomplete": GOTO errmes 'expects an alphabet letter or underscore i = i + 1: e$ = getelement$(a$, i): E = ASC(UCASE$(e$)) - IF LEN(e$) > 1 THEN a$ = "_DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes - IF E <> 95 AND (E > 90 OR E < 65) THEN a$ = "_DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes + IF LEN(e$) > 1 THEN a$ = qb64prefix$ + "DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes + IF E <> 95 AND (E > 90 OR E < 65) THEN a$ = qb64prefix$ + "DEFINE: Expected an alphabet letter or the underscore character (_)": GOTO errmes IF E = 95 THEN E = 27 ELSE E = E - 64 IF firste > E THEN SWAP E, firste FOR e2 = firste TO E @@ -5657,7 +5692,7 @@ DO END IF 'expects "," i = i + 1: e$ = getelement$(a$, i) - IF e$ <> "," THEN a$ = "_DEFINE: Expected ,": GOTO errmes + IF e$ <> "," THEN a$ = qb64prefix$ + "DEFINE: Expected ,": GOTO errmes END IF l$ = l$ + sp2 + "," GOTO definenext @@ -7569,9 +7604,9 @@ DO '_ECHO checking - IF firstelement$ = "_ECHO" THEN + IF firstelement$ = qb64prefix$ + "ECHO" THEN IF Console = 0 THEN - a$ = "_ECHO requires $CONSOLE or $CONSOLE:ONLY to be set first": GOTO errmes + a$ = qb64prefix$ + "ECHO requires $CONSOLE or $CONSOLE:ONLY to be set first": GOTO errmes END IF END IF @@ -7873,7 +7908,7 @@ DO IF firstelement$ = "DIM" THEN dimoption = 1 IF firstelement$ = "REDIM" THEN dimoption = 2: redimoption = 1 - IF secondelement$ = "_PRESERVE" THEN + IF secondelement$ = qb64prefix$ + "PRESERVE" THEN redimoption = 2 IF n = 2 THEN a$ = "Expected REDIM _PRESERVE ...": GOTO errmes END IF @@ -7888,7 +7923,7 @@ DO IF commonoption = 1 AND subfuncn <> 0 THEN a$ = "COMMON cannot be used within a SUB/FUNCTION": GOTO errmes i = 2 - IF redimoption = 2 THEN i = 3: l$ = l$ + sp + "_PRESERVE" + IF redimoption = 2 THEN i = 3: l$ = l$ + sp + qb64prefix$ + "PRESERVE" IF dimoption <> 3 THEN 'shared cannot be static a2$ = getelement(a$, i) @@ -8512,8 +8547,8 @@ DO END IF IF n = 1 THEN - IF firstelement$ = "_CONTINUE" THEN - l$ = "_CONTINUE" + IF firstelement$ = "_CONTINUE" OR (firstelement$ = "CONTINUE" AND qb64prefix_set = 1) THEN + l$ = UCASE$(firstelement$) 'scan backwards until previous control level reached FOR i = controllevel TO 1 STEP -1 t = controltype(i) @@ -8531,7 +8566,7 @@ DO GOTO finishedline END IF NEXT - a$ = "_CONTINUE outside DO..LOOP/FOR..NEXT/WHILE..WEND block": GOTO errmes + a$ = qb64prefix$ + "CONTINUE outside DO..LOOP/FOR..NEXT/WHILE..WEND block": GOTO errmes END IF END IF @@ -8903,7 +8938,7 @@ DO '(_MEM) _MEMPUT _MEMGET IF n >= 1 THEN - IF firstelement$ = "_MEMGET" THEN + IF firstelement$ = "_MEMGET" OR (firstelement$ = "MEMGET" AND qb64prefix_set = 1) THEN 'get expressions e$ = "" B = 0 @@ -8922,15 +8957,15 @@ DO END IF NEXT var$ = e$ - IF e$ = "" OR ne <> 2 THEN a$ = "Expected _MEMGET mem-reference,offset,variable": GOTO errmes + IF e$ = "" OR ne <> 2 THEN a$ = "Expected " + qb64prefix$ + "MEMGET mem-reference, offset, variable": GOTO errmes - l$ = "_MEMGET" + sp + l$ = UCASE$(firstelement$) + sp e$ = fixoperationorder$(blk$): IF Error_Happened THEN GOTO errmes l$ = l$ + tlayout$ test$ = evaluate(e$, typ): IF Error_Happened THEN GOTO errmes - IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected _MEM type": GOTO errmes + IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected " + qb64prefix$ + "MEM type": GOTO errmes blkoffs$ = evaluatetotyp(e$, -6) ' IF typ AND ISREFERENCE THEN e$ = refer(e$, typ, 0) @@ -9002,7 +9037,7 @@ DO IF n >= 1 THEN - IF firstelement$ = "_MEMPUT" THEN + IF firstelement$ = "_MEMPUT" OR (firstelement$ = "MEMPUT" AND qb64prefix_set = 1) THEN 'get expressions typ$ = "" e$ = "" @@ -9022,16 +9057,16 @@ DO IF LEN(e$) = 0 THEN e$ = e2$ ELSE e$ = e$ + sp + e2$ END IF NEXT - IF ne < 2 OR e$ = "" THEN a$ = "Expected _MEMPUT mem-reference,offset,variable|value[AS type]": GOTO errmes + IF ne < 2 OR e$ = "" THEN a$ = "Expected " + qb64prefix$ + "MEMPUT mem-reference, offset, variable|value[AS type]": GOTO errmes IF ne = 2 THEN var$ = e$ ELSE typ$ = UCASE$(e$) - l$ = "_MEMPUT" + sp + l$ = UCASE$(firstelement$) + sp e$ = fixoperationorder$(blk$): IF Error_Happened THEN GOTO errmes l$ = l$ + tlayout$ test$ = evaluate(e$, typ): IF Error_Happened THEN GOTO errmes - IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected _MEM type": GOTO errmes + IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected " + qb64prefix$ + "MEM type": GOTO errmes blkoffs$ = evaluatetotyp(e$, -6) e$ = fixoperationorder$(offs$): IF Error_Happened THEN GOTO errmes @@ -9096,7 +9131,7 @@ DO 'typname2typsize = 0 'the default t = typname2typ(typ$) IF t = 0 THEN a$ = "Invalid type": GOTO errmes - IF (t AND ISOFFSETINBITS) <> 0 OR (t AND ISUDT) <> 0 OR (t AND ISSTRING) THEN a$ = "_MEMPUT requires numeric type": GOTO errmes + IF (t AND ISOFFSETINBITS) <> 0 OR (t AND ISUDT) <> 0 OR (t AND ISSTRING) THEN a$ = qb64prefix$ + "MEMPUT requires numeric type": GOTO errmes IF (t AND ISPOINTER) THEN t = t - ISPOINTER 'attempt conversion... e$ = fixoperationorder$(var$): IF Error_Happened THEN GOTO errmes @@ -9138,7 +9173,7 @@ DO IF n >= 1 THEN - IF firstelement$ = "_MEMFILL" THEN + IF firstelement$ = "_MEMFILL" OR (firstelement$ = "MEMFILL" AND qb64prefix_set = 1) THEN 'get expressions typ$ = "" e$ = "" @@ -9159,16 +9194,16 @@ DO IF LEN(e$) = 0 THEN e$ = e2$ ELSE e$ = e$ + sp + e2$ END IF NEXT - IF ne < 3 OR e$ = "" THEN a$ = "Expected _MEMFILL mem-reference,offset,bytes,variable|value[AS type]": GOTO errmes + IF ne < 3 OR e$ = "" THEN a$ = "Expected " + qb64prefix$ + "MEMFILL mem-reference, offset, bytes, variable|value[AS type]": GOTO errmes IF ne = 3 THEN var$ = e$ ELSE typ$ = UCASE$(e$) - l$ = "_MEMFILL" + sp + l$ = UCASE$(firstelement$) + sp e$ = fixoperationorder$(blk$): IF Error_Happened THEN GOTO errmes l$ = l$ + tlayout$ test$ = evaluate(e$, typ): IF Error_Happened THEN GOTO errmes - IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected _MEM type": GOTO errmes + IF (typ AND ISUDT) = 0 OR (typ AND 511) <> 1 THEN a$ = "Expected " + qb64prefix$ + "MEM type": GOTO errmes blkoffs$ = evaluatetotyp(e$, -6) e$ = fixoperationorder$(offs$): IF Error_Happened THEN GOTO errmes @@ -9205,7 +9240,7 @@ DO '... AS type method t = typname2typ(typ$) IF t = 0 THEN a$ = "Invalid type": GOTO errmes - IF (t AND ISOFFSETINBITS) <> 0 OR (t AND ISUDT) <> 0 OR (t AND ISSTRING) THEN a$ = "_MEMFILL requires numeric type": GOTO errmes + IF (t AND ISOFFSETINBITS) <> 0 OR (t AND ISUDT) <> 0 OR (t AND ISSTRING) THEN a$ = qb64prefix$ + "MEMFILL requires numeric type": GOTO errmes IF (t AND ISPOINTER) THEN t = t - ISPOINTER 'attempt conversion... e$ = fixoperationorder$(var$): IF Error_Happened THEN GOTO errmes @@ -9500,7 +9535,9 @@ DO 'generate error on driect _GL call - IF firstelement$ = "_GL" THEN a$ = "Cannot call SUB _GL directly": GOTO errmes + IF firstelement$ = "_GL" THEN + a$ = "Cannot call SUB _GL directly": GOTO errmes + END IF IF firstelement$ = "OPEN" THEN 'gwbasic or qbasic version? @@ -10104,7 +10141,7 @@ DO END IF IF firstelement$ = "OPTION" THEN - IF optionexplicit = 0 THEN e$ = " or OPTION _EXPLICIT" ELSE e$ = "" + IF optionexplicit = 0 THEN e$ = " or OPTION " + qb64prefix$ + "EXPLICIT" ELSE e$ = "" IF n = 1 THEN a$ = "Expected OPTION BASE" + e$: GOTO errmes e$ = getelement$(a$, 2) SELECT CASE e$ @@ -10115,16 +10152,20 @@ DO l$ = "OPTION" + sp + "BASE" + sp + l$ layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ GOTO finishedline - CASE "_EXPLICIT" - IF optionexplicit = -1 AND NoIDEMode = 0 THEN a$ = "Duplicate OPTION _EXPLICIT": GOTO errmes - IF LEN(layout$) THEN a$ = "OPTION _EXPLICIT must come before any other statement": GOTO errmes - IF linenumber > 1 AND opex_comments = 0 THEN a$ = "OPTION _EXPLICIT must come before any other statement": GOTO errmes + CASE "EXPLICIT", "_EXPLICIT" + IF e$ = "EXPLICIT" AND qb64prefix$ = "_" THEN + IF optionexplicit = 0 THEN e$ = " or OPTION _EXPLICIT" ELSE e$ = "" + a$ = "Expected OPTION BASE" + e$: GOTO errmes + END IF + IF optionexplicit = -1 AND NoIDEMode = 0 THEN a$ = "Duplicate OPTION " + qb64prefix$ + "EXPLICIT": GOTO errmes + IF LEN(layout$) THEN a$ = "OPTION " + qb64prefix$ + "EXPLICIT must come before any other statement": GOTO errmes + IF linenumber > 1 AND opex_comments = 0 THEN a$ = "OPTION " + qb64prefix$ + "EXPLICIT must come before any other statement": GOTO errmes optionexplicit = -1 - l$ = "OPTION" + sp + "_EXPLICIT" + l$ = "OPTION" + sp + qb64prefix$ + "EXPLICIT" layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ GOTO finishedline CASE ELSE - IF optionexplicit = 0 THEN e$ = " or OPTION _EXPLICIT" ELSE e$ = "" + IF optionexplicit = 0 THEN e$ = " or OPTION " + qb64prefix$ + "EXPLICIT" ELSE e$ = "" a$ = "Expected OPTION BASE" + e$: GOTO errmes END SELECT END IF @@ -14003,9 +14044,9 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) 'check if _UNSIGNED was specified unsgn = 0 - IF LEFT$(typ$, 10) = "_UNSIGNED " THEN + IF LEFT$(typ$, 10 + (qb64prefix_set = 1)) = qb64prefix$ + "UNSIGNED " THEN unsgn = 1 - typ$ = RIGHT$(typ$, LEN(typ$) - 10) + typ$ = RIGHT$(typ$, LEN(typ$) - (10 + (qb64prefix_set = 1))) IF LEN(typ$) = 0 THEN Give_Error "Expected more type information after _UNSIGNED!": EXIT FUNCTION END IF @@ -14251,10 +14292,10 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF LEFT$(typ$, 4) = "_BIT" THEN - IF LEN(typ$) > 4 THEN - IF LEFT$(typ$, 7) <> "_BIT * " THEN Give_Error "Expected _BIT * number": EXIT FUNCTION - c$ = RIGHT$(typ$, LEN(typ$) - 7) + IF LEFT$(typ$, 4 + (qb64prefix_set = 1)) = qb64prefix$ + "BIT" THEN + IF LEN(typ$) > (4 + (qb64prefix_set = 1)) THEN + IF LEFT$(typ$, 7 + (qb64prefix_set = 1)) <> qb64prefix$ + "BIT * " THEN Give_Error "Expected " + qb64prefix$ + "BIT * number": EXIT FUNCTION + c$ = RIGHT$(typ$, LEN(typ$) - (7 + (qb64prefix_set = 1))) IF isuinteger(c$) = 0 THEN Give_Error "Number expected after *": EXIT FUNCTION IF LEN(c$) > 2 THEN Give_Error "Too many characters in number after *": EXIT FUNCTION bits = VAL(c$) @@ -14354,7 +14395,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = "_BYTE" THEN + IF typ$ = qb64prefix$ + "BYTE" THEN ct$ = "int8" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "BYTE_" + varname$ @@ -14528,7 +14569,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) - IF typ$ = "_OFFSET" THEN + IF typ$ = qb64prefix$ + "OFFSET" THEN ct$ = "ptrszint" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "OFFSET_" + varname$ @@ -14692,7 +14733,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = "_INTEGER64" THEN + IF typ$ = qb64prefix$ + "INTEGER64" THEN ct$ = "int64" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "INTEGER64_" + varname$ @@ -14942,7 +14983,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = "_FLOAT" THEN + IF typ$ = qb64prefix$ + "FLOAT" THEN ct$ = "long double" n$ = n$ + "FLOAT_" + varname$ IF elements$ <> "" THEN @@ -16092,7 +16133,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) '*special case CVI,CVL,CVS,CVD,_CV (part #1) - IF n$ = "_CV" THEN + IF n$ = "_CV" OR (n$ = "CV" AND qb64prefix_set = 1) THEN IF curarg = 1 THEN cvtype$ = type2symbol$(e$) IF Error_Happened THEN EXIT FUNCTION @@ -16103,7 +16144,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) '*special case MKI,MKL,MKS,MKD,_MK (part #1) - IF n$ = "_MK" THEN + IF n$ = "_MK" OR (n$ = "MK" AND qb64prefix_set = 1) THEN IF RTRIM$(id2.musthave) = "$" THEN IF curarg = 1 THEN mktype$ = type2symbol$(e$) @@ -16161,7 +16202,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) 'PRINT #12, "r$="; r$ '*special case* - IF n$ = "_MEMGET" THEN + IF n$ = "_MEMGET" OR (n$ = "MEMGET" AND qb64prefix_set = 1) THEN IF curarg = 1 THEN memget_blk$ = e$ END IF @@ -16179,7 +16220,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) END IF t = typname2typ(e$) IF t = 0 THEN Give_Error "Invalid TYPE name": EXIT FUNCTION - IF t AND ISOFFSETINBITS THEN Give_Error "_BIT TYPE unsupported": EXIT FUNCTION + IF t AND ISOFFSETINBITS THEN Give_Error qb64prefix$ + "BIT TYPE unsupported": EXIT FUNCTION memget_size = typname2typsize IF t AND ISSTRING THEN IF (t AND ISFIXEDLENGTH) = 0 THEN Give_Error "Expected STRING * ...": EXIT FUNCTION @@ -16237,7 +16278,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) '------------------------------------------------------------------------------------------------------------ '***special case*** - IF n$ = "_MEM" THEN + IF n$ = "_MEM" OR (n$ = "MEM" AND qb64prefix_set = 1) THEN IF curarg = 1 THEN IF args = 1 THEN targettyp = -7 @@ -16250,12 +16291,12 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) END IF '*special case* - IF n$ = "_OFFSET" THEN + IF n$ = "_OFFSET" OR (n$ = "OFFSET" AND qb64prefix_set = 1) THEN IF (sourcetyp AND ISREFERENCE) = 0 THEN - Give_Error "_OFFSET expects the name of a variable/array": EXIT FUNCTION + Give_Error qb64prefix$ + "OFFSET expects the name of a variable/array": EXIT FUNCTION END IF IF (sourcetyp AND ISARRAY) THEN - IF (sourcetyp AND ISOFFSETINBITS) THEN Give_Error "_OFFSET cannot reference _BIT type arrays": EXIT FUNCTION + IF (sourcetyp AND ISOFFSETINBITS) THEN Give_Error qb64prefix$ + "OFFSET cannot reference _BIT type arrays": EXIT FUNCTION END IF r$ = "((uptrszint)(" + evaluatetotyp$(e2$, -6) + "))" IF Error_Happened THEN EXIT FUNCTION @@ -16414,7 +16455,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) END IF '*special case* - IF n$ = "_ROUND" THEN + IF n$ = "_ROUND" OR (n$ = "ROUND" AND qb64prefix_set = 1) THEN IF (sourcetyp AND ISSTRING) THEN Give_Error "Expected numeric value": EXIT FUNCTION IF (sourcetyp AND ISREFERENCE) THEN e$ = refer(e$, sourcetyp, 0) IF Error_Happened THEN EXIT FUNCTION @@ -16526,10 +16567,10 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) IF n$ = "MKL" THEN mktype = 2: mktype$ = "&" IF n$ = "MKS" THEN mktype = 3: mktype$ = "!" IF n$ = "MKD" THEN mktype = 4: mktype$ = "#" - IF n$ = "_MK" THEN mktype = -1 + IF n$ = "_MK" OR (n$ = "MK" AND qb64prefix_set = 1) THEN mktype = -1 IF mktype THEN IF mktype <> -1 OR curarg = 2 THEN - IF (sourcetyp AND ISOFFSET) THEN Give_Error "Cannot convert _OFFSET type to other types": EXIT FUNCTION + IF (sourcetyp AND ISOFFSET) THEN Give_Error "Cannot convert " + qb64prefix$ + "OFFSET type to other types": EXIT FUNCTION 'both _MK and trad. process the following qtyp& = 0 IF mktype$ = "%%" THEN ctype$ = "b": qtyp& = BYTETYPE - ISPOINTER @@ -16545,7 +16586,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) IF mktype$ = "##" THEN ctype$ = "f": qtyp& = FLOATTYPE - ISPOINTER IF LEFT$(mktype$, 2) = "~`" THEN ctype$ = "ubit": qtyp& = UINTEGER64TYPE - ISPOINTER: size = VAL(RIGHT$(mktype$, LEN(mktype$) - 2)) IF LEFT$(mktype$, 1) = "`" THEN ctype$ = "bit": qtyp& = INTEGER64TYPE - ISPOINTER: size = VAL(RIGHT$(mktype$, LEN(mktype$) - 1)) - IF qtyp& = 0 THEN Give_Error "_MK only accepts numeric types": EXIT FUNCTION + IF qtyp& = 0 THEN Give_Error qb64prefix$ + "MK only accepts numeric types": EXIT FUNCTION IF size THEN r$ = ctype$ + "2string(" + str2(size) + "," ELSE @@ -16562,7 +16603,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) IF n$ = "CVL" THEN cvtype = 2: cvtype$ = "&" IF n$ = "CVS" THEN cvtype = 3: cvtype$ = "!" IF n$ = "CVD" THEN cvtype = 4: cvtype$ = "#" - IF n$ = "_CV" THEN cvtype = -1 + IF n$ = "_CV" OR (n$ = "CV" AND qb64prefix_set = 1) THEN cvtype = -1 IF cvtype THEN IF cvtype <> -1 OR curarg = 2 THEN IF (sourcetyp AND ISSTRING) = 0 THEN Give_Error n$ + " requires a STRING argument": EXIT FUNCTION @@ -16582,7 +16623,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) IF cvtype$ = "##" THEN ctype$ = "f": typ& = FLOATTYPE - ISPOINTER IF LEFT$(cvtype$, 2) = "~`" THEN ctype$ = "ubit": typ& = UINTEGER64TYPE - ISPOINTER: size = VAL(RIGHT$(cvtype$, LEN(cvtype$) - 2)) IF LEFT$(cvtype$, 1) = "`" THEN ctype$ = "bit": typ& = INTEGER64TYPE - ISPOINTER: size = VAL(RIGHT$(cvtype$, LEN(cvtype$) - 1)) - IF typ& = 0 THEN Give_Error "_CV cannot return STRING type!": EXIT FUNCTION + IF typ& = 0 THEN Give_Error qb64prefix$ + "CV cannot return STRING type!": EXIT FUNCTION IF ctype$ = "bit" OR ctype$ = "ubit" THEN r$ = "string2" + ctype$ + "(" + e$ + "," + str2(size) + ")" ELSE @@ -17261,7 +17302,7 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) r$ = r$ + e$ '***special case**** - IF n$ = "_MEM" THEN + IF n$ = "_MEM" OR (n$ = "MEM" AND qb64prefix_set = 1) THEN IF args = 1 THEN IF curarg = 1 THEN r$ = r$ + ")": GOTO evalfuncspecial END IF @@ -17593,7 +17634,7 @@ FUNCTION evaluatetotyp$ (a2$, targettyp AS LONG) ELSE - Give_Error "_MEMELEMENT cannot reference variable-length strings": EXIT FUNCTION + Give_Error qb64prefix$ + "MEMELEMENT cannot reference variable-length strings": EXIT FUNCTION END IF EXIT FUNCTION @@ -17622,7 +17663,7 @@ FUNCTION evaluatetotyp$ (a2$, targettyp AS LONG) e$ = refer(e$, sourcetyp, 0) IF Error_Happened THEN EXIT FUNCTION ELSE - Give_Error "_MEMELEMENT cannot reference variable-length strings": EXIT FUNCTION + Give_Error qb64prefix$ + "MEMELEMENT cannot reference variable-length strings": EXIT FUNCTION END IF 'evaluatetotyp$ = "byte_element((uint64)" + e$ + "->chr," + bytes$ + "," + NewByteElement$ + ")" @@ -17699,7 +17740,7 @@ FUNCTION evaluatetotyp$ (a2$, targettyp AS LONG) IF (sourcetyp AND ISARRAY) THEN IF sourcetyp AND ISSTRING THEN IF (sourcetyp AND ISFIXEDLENGTH) = 0 THEN - Give_Error "_MEM cannot reference variable-length strings": EXIT FUNCTION + Give_Error qb64prefix$ + "MEM cannot reference variable-length strings": EXIT FUNCTION END IF END IF @@ -17741,7 +17782,7 @@ FUNCTION evaluatetotyp$ (a2$, targettyp AS LONG) 'String IF sourcetyp AND ISSTRING THEN - IF (sourcetyp AND ISFIXEDLENGTH) = 0 THEN Give_Error "_MEM cannot reference variable-length strings": EXIT FUNCTION + IF (sourcetyp AND ISFIXEDLENGTH) = 0 THEN Give_Error qb64prefix$ + "MEM cannot reference variable-length strings": EXIT FUNCTION idnumber = VAL(e$) getid idnumber: IF Error_Happened THEN EXIT FUNCTION @@ -18938,16 +18979,16 @@ FUNCTION fixoperationorder$ (savea$) f3$ = UCASE$(f2$) internaltype = 0 IF f3$ = "STRING" THEN internaltype = 1 - IF f3$ = "_UNSIGNED" THEN internaltype = 1 - IF f3$ = "_BIT" THEN internaltype = 1 - IF f3$ = "_BYTE" THEN internaltype = 1 + IF f3$ = "_UNSIGNED" OR (f3$ = "UNSIGNED" AND qb64prefix_set = 1) THEN internaltype = 1 + IF f3$ = "_BIT" OR (f3$ = "BIT" AND qb64prefix_set = 1) THEN internaltype = 1 + IF f3$ = "_BYTE" OR (f3$ = "BYTE" AND qb64prefix_set = 1) THEN internaltype = 1 IF f3$ = "INTEGER" THEN internaltype = 1 IF f3$ = "LONG" THEN internaltype = 1 - IF f3$ = "_INTEGER64" THEN internaltype = 1 + IF f3$ = "_INTEGER64" OR (f3$ = "INTEGER64" AND qb64prefix_set = 1) THEN internaltype = 1 IF f3$ = "SINGLE" THEN internaltype = 1 IF f3$ = "DOUBLE" THEN internaltype = 1 - IF f3$ = "_FLOAT" THEN internaltype = 1 - IF f3$ = "_OFFSET" THEN internaltype = 1 + IF f3$ = "_FLOAT" OR (f3$ = "FLOAT" AND qb64prefix_set = 1) THEN internaltype = 1 + IF f3$ = "_OFFSET" OR (f3$ = "OFFSET" AND qb64prefix_set = 1) THEN internaltype = 1 IF internaltype = 1 THEN f2$ = f3$ removeelements a$, i, i, 0 @@ -21973,6 +22014,17 @@ FUNCTION type2symbol$ (typ$) t2$ = "DOUBLE": s$ = "#": IF LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound t2$ = "_FLOAT": s$ = "##": IF LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound t2$ = "STRING": s$ = "$": IF LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED BIT": s$ = "~`1": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED BYTE": s$ = "~%%": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED INTEGER": s$ = "~%": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED LONG": s$ = "~&": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED INTEGER64": s$ = "~&&": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "UNSIGNED OFFSET": s$ = "~%&": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "BIT": s$ = "`1": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "BYTE": s$ = "%%": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "INTEGER64": s$ = "&&": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "OFFSET": s$ = "%&": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound + t2$ = "FLOAT": s$ = "##": IF qb64prefix_set = 1 AND LEFT$(t$, LEN(t2$)) = t2$ THEN GOTO t2sfound Give_Error e$: EXIT FUNCTION t2sfound: type2symbol$ = s$ @@ -22113,30 +22165,33 @@ FUNCTION typname2typ& (t2$) IF t$ = "SINGLE" THEN typname2typ& = SINGLETYPE: EXIT FUNCTION IF t$ = "DOUBLE" THEN typname2typ& = DOUBLETYPE: EXIT FUNCTION - IF t$ = "_FLOAT" THEN typname2typ& = FLOATTYPE: EXIT FUNCTION - IF LEFT$(t$, 10) = "_UNSIGNED " THEN u = 1: t$ = RIGHT$(t$, LEN(t$) - 10) - IF LEFT$(t$, 4) = "_BIT" THEN - IF t$ = "_BIT" THEN + IF t$ = "_FLOAT" OR (t$ = "FLOAT" AND qb64prefix_set = 1) THEN typname2typ& = FLOATTYPE: EXIT FUNCTION + IF LEFT$(t$, 10) = "_UNSIGNED " OR (LEFT$(t$, 9) = "UNSIGNED " AND qb64prefix_set = 1) THEN + u = 1 + t$ = MID$(t$, INSTR(t$, CHR$(32))) + END IF + IF LEFT$(t$, 4) = "_BIT" OR (LEFT$(t$, 3) = "BIT" AND qb64prefix_set = 1) THEN + IF t$ = "_BIT" OR (t$ = "BIT" AND qb64prefix_set = 1) THEN IF u THEN typname2typ& = UBITTYPE ELSE typname2typ& = BITTYPE EXIT FUNCTION END IF - IF LEFT$(t$, 7) <> "_BIT * " THEN Give_Error "Expected _BIT * number": EXIT FUNCTION + IF LEFT$(t$, 7) <> "_BIT * " OR (LEFT$(t$, 6) = "BIT * " AND qb64prefix_set = 1) THEN Give_Error "Expected _BIT * number": EXIT FUNCTION n$ = RIGHT$(t$, LEN(t$) - 7) - IF isuinteger(n$) = 0 THEN Give_Error "Invalid size after _BIT *": EXIT FUNCTION + IF isuinteger(n$) = 0 THEN Give_Error "Invalid size after " + qb64prefix$ + "BIT *": EXIT FUNCTION b = VAL(n$) - IF b = 0 OR b > 56 THEN Give_Error "Invalid size after _BIT *": EXIT FUNCTION + IF b = 0 OR b > 56 THEN Give_Error "Invalid size after " + qb64prefix$ + "BIT *": EXIT FUNCTION t = BITTYPE - 1 + b: IF u THEN t = t + ISUNSIGNED typname2typ& = t EXIT FUNCTION END IF t = 0 - IF t$ = "_BYTE" THEN t = BYTETYPE + IF t$ = "_BYTE" OR (t$ = "BYTE" AND qb64prefix_set = 1) THEN t = BYTETYPE IF t$ = "INTEGER" THEN t = INTEGERTYPE IF t$ = "LONG" THEN t = LONGTYPE - IF t$ = "_INTEGER64" THEN t = INTEGER64TYPE - IF t$ = "_OFFSET" THEN t = OFFSETTYPE + IF t$ = "_INTEGER64" OR (t$ = "INTEGER64" AND qb64prefix_set = 1) THEN t = INTEGER64TYPE + IF t$ = "_OFFSET" OR (t$ = "OFFSET" AND qb64prefix_set = 1) THEN t = OFFSETTYPE IF t THEN IF u THEN t = t + ISUNSIGNED typname2typ& = t @@ -23491,20 +23546,20 @@ FUNCTION id2fulltypename$ id2fulltypename$ = a$: EXIT FUNCTION END IF IF t AND ISOFFSETINBITS THEN - IF bits > 1 THEN a$ = "_BIT * " + str2(bits) ELSE a$ = "_BIT" - IF t AND ISUNSIGNED THEN a$ = "_UNSIGNED " + a$ + IF bits > 1 THEN a$ = qb64prefix$ + "BIT * " + str2(bits) ELSE a$ = qb64prefix$ + "BIT" + IF t AND ISUNSIGNED THEN a$ = qb64prefix$ + "UNSIGNED " + a$ id2fulltypename$ = a$: EXIT FUNCTION END IF IF t AND ISFLOAT THEN IF bits = 32 THEN a$ = "SINGLE" IF bits = 64 THEN a$ = "DOUBLE" - IF bits = 256 THEN a$ = "_FLOAT" + IF bits = 256 THEN a$ = qb64prefix$ + "FLOAT" ELSE 'integer-based - IF bits = 8 THEN a$ = "_BYTE" + IF bits = 8 THEN a$ = qb64prefix$ + "BYTE" IF bits = 16 THEN a$ = "INTEGER" IF bits = 32 THEN a$ = "LONG" - IF bits = 64 THEN a$ = "_INTEGER64" - IF t AND ISUNSIGNED THEN a$ = "_UNSIGNED " + a$ + IF bits = 64 THEN a$ = qb64prefix$ + "INTEGER64" + IF t AND ISUNSIGNED THEN a$ = qb64prefix$ + "UNSIGNED " + a$ END IF id2fulltypename$ = a$ END FUNCTION @@ -23556,23 +23611,23 @@ FUNCTION symbol2fulltypename$ (s2$) u = 1 IF LEN(typ$) = 1 THEN Give_Error "Expected ~...": EXIT FUNCTION s$ = RIGHT$(s$, LEN(s$) - 1) - u$ = "_UNSIGNED " + u$ = qb64prefix$ + "UNSIGNED " END IF - IF s$ = "%%" THEN t$ = u$ + "_BYTE": GOTO gotsym2typ + IF s$ = "%%" THEN t$ = u$ + qb64prefix$ + "BYTE": GOTO gotsym2typ IF s$ = "%" THEN t$ = u$ + "INTEGER": GOTO gotsym2typ IF s$ = "&" THEN t$ = u$ + "LONG": GOTO gotsym2typ - IF s$ = "&&" THEN t$ = u$ + "_INTEGER64": GOTO gotsym2typ - IF s$ = "%&" THEN t$ = u$ + "_OFFSET": GOTO gotsym2typ + IF s$ = "&&" THEN t$ = u$ + qb64prefix$ + "INTEGER64": GOTO gotsym2typ + IF s$ = "%&" THEN t$ = u$ + qb64prefix$ + "OFFSET": GOTO gotsym2typ IF LEFT$(s$, 1) = "`" THEN IF LEN(s$) = 1 THEN - t$ = u$ + "_BIT * 1" + t$ = u$ + qb64prefix$ + "BIT * 1" GOTO gotsym2typ END IF n$ = RIGHT$(s$, LEN(s$) - 1) IF isuinteger(n$) = 0 THEN Give_Error "Expected number after symbol `": EXIT FUNCTION - t$ = u$ + "_BIT * " + n$ + t$ = u$ + qb64prefix$ + "BIT * " + n$ GOTO gotsym2typ END IF @@ -23580,7 +23635,7 @@ FUNCTION symbol2fulltypename$ (s2$) IF s$ = "!" THEN t$ = "SINGLE": GOTO gotsym2typ IF s$ = "#" THEN t$ = "DOUBLE": GOTO gotsym2typ - IF s$ = "##" THEN t$ = "_FLOAT": GOTO gotsym2typ + IF s$ = "##" THEN t$ = qb64prefix$ + "FLOAT": GOTO gotsym2typ IF s$ = "$" THEN t$ = "STRING": GOTO gotsym2typ IF LEFT$(s$, 1) = "$" THEN @@ -23858,7 +23913,7 @@ SUB ParseExpression (exp$) SELECT CASE MID$(exp$, op + c + 1, 1) CASE "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "N": numset = -1 'Valid digit CASE "-" 'We need to check if it's a minus or a negative - IF OName(OpOn) = "_PI" OR numset THEN EXIT DO + IF OName(OpOn) = "_PI" OR (OName(OpOn) = "PI" AND qb64prefix_set = 1) OR numset THEN EXIT DO CASE ELSE 'Not a valid digit, we found our separator EXIT DO END SELECT @@ -23916,28 +23971,28 @@ SUB Set_OrderOfOperations 'OName ended up becoming the name of our commands, as I modified things.... Go figure! LOL! 'Constants get evaluated first, with a Priority Level of 1 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_PI" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "PI" REDIM _PRESERVE PL(i): PL(i) = 1 'I'm not certain where exactly percentages should go. They kind of seem like a special case to me. COS10% should be COS.1 I'd think... 'I'm putting it here for now, and if anyone knows someplace better for it in our order of operations, let me know. i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "%" REDIM _PRESERVE PL(i): PL(i) = 5 'Then Functions with PL 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ACOS" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ACOS" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ASIN" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ASIN" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCSEC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCSEC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCCSC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCCSC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCCOT" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCCOT" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_SECH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "SECH" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_CSCH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "CSCH" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_COTH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "COTH" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "COS" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -23951,17 +24006,17 @@ SUB Set_OrderOfOperations REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ATN" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_D2R" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "D2R" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_D2G" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "D2G" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_R2D" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "R2D" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_R2G" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "R2G" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_G2D" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "G2D" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_G2R" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "G2R" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ABS" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -23969,15 +24024,15 @@ SUB Set_OrderOfOperations REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "INT" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ROUND" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ROUND" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "FIX" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_SEC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "SEC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_CSC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "CSC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_COT" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "COT" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ASC" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -24046,36 +24101,36 @@ END SUB FUNCTION EvaluateNumbers$ (p, num() AS STRING) DIM n1 AS _FLOAT, n2 AS _FLOAT, n3 AS _FLOAT SELECT CASE OName(p) 'Depending on our operator.. - CASE "_PI": n1 = 3.14159265358979323846264338327950288## 'Future compatable in case something ever stores extra digits for PI + CASE qb64prefix$ + "PI": n1 = 3.14159265358979323846264338327950288## 'Future compatible in case something ever stores extra digits for PI CASE "%": n1 = (VAL(num(1))) / 100 'Note percent is a special case and works with the number BEFORE the % command and not after - CASE "_ACOS": n1 = _ACOS(VAL(num(2))) - CASE "_ASIN": n1 = _ASIN(VAL(num(2))) - CASE "_ARCSEC": n1 = _ARCSEC(VAL(num(2))) - CASE "_ARCCSC": n1 = _ARCCSC(VAL(num(2))) - CASE "_ARCCOT": n1 = _ARCCOT(VAL(num(2))) - CASE "_SECH": n1 = _SECH(VAL(num(2))) - CASE "_CSCH": n1 = _CSCH(VAL(num(2))) - CASE "_COTH": n1 = _COTH(VAL(num(2))) + CASE qb64prefix$ + "ACOS": n1 = _ACOS(VAL(num(2))) + CASE qb64prefix$ + "ASIN": n1 = _ASIN(VAL(num(2))) + CASE qb64prefix$ + "ARCSEC": n1 = _ARCSEC(VAL(num(2))) + CASE qb64prefix$ + "ARCCSC": n1 = _ARCCSC(VAL(num(2))) + CASE qb64prefix$ + "ARCCOT": n1 = _ARCCOT(VAL(num(2))) + CASE qb64prefix$ + "SECH": n1 = _SECH(VAL(num(2))) + CASE qb64prefix$ + "CSCH": n1 = _CSCH(VAL(num(2))) + CASE qb64prefix$ + "COTH": n1 = _COTH(VAL(num(2))) CASE "COS": n1 = COS(VAL(num(2))) CASE "SIN": n1 = SIN(VAL(num(2))) CASE "TAN": n1 = TAN(VAL(num(2))) CASE "LOG": n1 = LOG(VAL(num(2))) CASE "EXP": n1 = EXP(VAL(num(2))) CASE "ATN": n1 = ATN(VAL(num(2))) - CASE "_D2R": n1 = 0.0174532925 * (VAL(num(2))) - CASE "_D2G": n1 = 1.1111111111 * (VAL(num(2))) - CASE "_R2D": n1 = 57.2957795 * (VAL(num(2))) - CASE "_R2G": n1 = 0.015707963 * (VAL(num(2))) - CASE "_G2D": n1 = 0.9 * (VAL(num(2))) - CASE "_G2R": n1 = 63.661977237 * (VAL(num(2))) + CASE qb64prefix$ + "D2R": n1 = 0.0174532925 * (VAL(num(2))) + CASE qb64prefix$ + "D2G": n1 = 1.1111111111 * (VAL(num(2))) + CASE qb64prefix$ + "R2D": n1 = 57.2957795 * (VAL(num(2))) + CASE qb64prefix$ + "R2G": n1 = 0.015707963 * (VAL(num(2))) + CASE qb64prefix$ + "G2D": n1 = 0.9 * (VAL(num(2))) + CASE qb64prefix$ + "G2R": n1 = 63.661977237 * (VAL(num(2))) CASE "ABS": n1 = ABS(VAL(num(2))) CASE "SGN": n1 = SGN(VAL(num(2))) CASE "INT": n1 = INT(VAL(num(2))) - CASE "_ROUND": n1 = _ROUND(VAL(num(2))) + CASE qb64prefix$ + "ROUND": n1 = _ROUND(VAL(num(2))) CASE "FIX": n1 = FIX(VAL(num(2))) - CASE "_SEC": n1 = _SEC(VAL(num(2))) - CASE "_CSC": n1 = _CSC(VAL(num(2))) - CASE "_COT": n1 = _COT(VAL(num(2))) + CASE qb64prefix$ + "SEC": n1 = _SEC(VAL(num(2))) + CASE qb64prefix$ + "CSC": n1 = _CSC(VAL(num(2))) + CASE qb64prefix$ + "COT": n1 = _COT(VAL(num(2))) CASE "^": n1 = VAL(num(1)) ^ VAL(num(2)) CASE "SQR": n1 = SQR(VAL(num(2))) CASE "ROOT" diff --git a/source/subs_functions/extensions/opengl/opengl_methods.bas b/source/subs_functions/extensions/opengl/opengl_methods.bas index 16ef21f78..923833831 100644 --- a/source/subs_functions/extensions/opengl/opengl_methods.bas +++ b/source/subs_functions/extensions/opengl/opengl_methods.bas @@ -71,7 +71,7 @@ SUB gl_scan_header d = 0: a2$ = "" h = FREEFILE - OPEN "internal\c\parts\core\gl_header_for_parsing\gl.h" FOR INPUT AS #h + OPEN "internal\c\parts\core\gl_header_for_parsing\gl.h" FOR BINARY AS #h DO UNTIL EOF(h) LINE INPUT #h, a$ IF LEN(a$) THEN @@ -332,9 +332,9 @@ SUB gl_include_content 'add constants FOR d = 1 TO GL_DEFINES_LAST - IF ASC(GL_DEFINES(d)) <> 95 THEN - GL_DEFINES(d) = "_" + GL_DEFINES(d) - END IF + 'IF ASC(GL_DEFINES(d)) <> 95 THEN + ' GL_DEFINES(d) = "_" + GL_DEFINES(d) + 'END IF constlast = constlast + 1 IF constlast > constmax THEN constmax = constmax * 2 @@ -350,8 +350,8 @@ SUB gl_include_content REDIM _PRESERVE constdefined(constmax) AS LONG END IF i = constlast - constname(i) = GL_DEFINES(d) - constcname(i) = GL_DEFINES(d) + constname(i) = qb64prefix$ + GL_DEFINES(d) + constcname(i) = qb64prefix$ + GL_DEFINES(d) constnamesymbol(i) = "&&" consttype(i) = INTEGER64TYPE - ISPOINTER constinteger(i) = GL_DEFINES_VALUE(d) @@ -379,6 +379,7 @@ SUB gl_include_content clearid id.ccall = 1 '*** important for handling string returns correctly *** id.n = RTRIM$(g.cn) + IF qb64prefix_set = 1 THEN id.n = MID$(RTRIM$(g.cn), 2) s = g.subfunc id.subfunc = s id.callname = RTRIM$(g.callname) @@ -394,7 +395,7 @@ SUB gl_include_content 'SUB gluPerspective (BYVAL fovy#, BYVAL aspect#, BYVAL zNear#, BYVAL zFar#) reginternalsubfunc = 1 clearid - id.n = "_gluPerspective" + id.n = qb64prefix$ + "gluPerspective" id.subfunc = 2 'sub id.callname = "gluPerspective" id.args = 4 diff --git a/source/subs_functions/subs_functions.bas b/source/subs_functions/subs_functions.bas index 97caf984b..5221ce45c 100644 --- a/source/subs_functions/subs_functions.bas +++ b/source/subs_functions/subs_functions.bas @@ -28,6 +28,8 @@ clearid id.n = "ASC": id.subfunc = 2: id.callname = "sub_stub": regid clearid +id.n = "ASC": id.subfunc = 2: id.callname = "sub_stub": regid +clearid id.n = "END": id.subfunc = 2: id.callname = "sub_stub": regid clearid id.n = "LSET": id.subfunc = 2: id.callname = "sub_stub": regid @@ -73,54 +75,54 @@ id.n = "SETMEM": id.subfunc = 1: id.callname = "func_stub": id.args = 1: id.arg clearid id.n = "FILEATTR": id.subfunc = 1: id.callname = "func_stub": id.args = 2: id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER): id.ret = LONGTYPE - ISPOINTER: regid clearid -id.n = "_MEMGET": id.subfunc = 2: id.callname = "sub_stub": regid +id.n = qb64prefix$ + "MEMGET": id.subfunc = 2: id.callname = "sub_stub": regid clearid -id.n = "_MEMPUT": id.subfunc = 2: id.callname = "sub_stub": regid +id.n = qb64prefix$ + "MEMPUT": id.subfunc = 2: id.callname = "sub_stub": regid clearid -id.n = "_MEMFILL": id.subfunc = 2: id.callname = "sub_stub": regid +id.n = qb64prefix$ + "MEMFILL": id.subfunc = 2: id.callname = "sub_stub": regid clearid -id.n = "_CONTINUE": id.subfunc = 2: id.callname = "sub_stub": regid +id.n = qb64prefix$ + "CONTINUE": id.subfunc = 2: id.callname = "sub_stub": regid clearid -id.n = "_RESIZE" +id.n = qb64prefix$ + "RESIZE" id.subfunc = 2 id.callname = "sub__resize" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{ON|OFF}][,{_STRETCH|_SMOOTH}]" +id.specialformat = "[{ON|OFF}][,{" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SMOOTH}]" regid clearid -id.n = "_RESIZE" +id.n = qb64prefix$ + "RESIZE" id.subfunc = 1 id.callname = "func__resize" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_RESIZEWIDTH" +id.n = qb64prefix$ + "RESIZEWIDTH" id.subfunc = 1 id.callname = "func__resizewidth" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_RESIZEHEIGHT" +id.n = qb64prefix$ + "RESIZEHEIGHT" id.subfunc = 1 id.callname = "func__resizeheight" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCALEDWIDTH" +id.n = qb64prefix$ + "SCALEDWIDTH" id.subfunc = 1 id.callname = "func__scaledwidth" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCALEDHEIGHT" +id.n = qb64prefix$ + "SCALEDHEIGHT" id.subfunc = 1 id.callname = "func__scaledheight" id.ret = LONGTYPE - ISPOINTER @@ -128,25 +130,25 @@ regid clearid -id.n = "_GLRENDER" +id.n = qb64prefix$ + "GLRENDER" id.subfunc = 2 id.callname = "sub__glrender" id.args = 1 id.arg = MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{_BEHIND|_ONTOP|_ONLY}" +id.specialformat = "{" + qb64prefix$ + "BEHIND|" + qb64prefix$ + "ONTOP|" + qb64prefix$ + "ONLY}" regid clearid -id.n = "_DISPLAYORDER" +id.n = qb64prefix$ + "DISPLAYORDER" id.subfunc = 2 id.callname = "sub__displayorder" id.args = 4 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}]]]]" +id.specialformat = "[{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}]]]]" regid clearid -id.n = "_MEMGET" +id.n = qb64prefix$ + "MEMGET" id.subfunc = 1 id.callname = "func__memget" id.args = 3 @@ -155,7 +157,7 @@ id.ret = -1 regid clearid -id.n = "_MEM" +id.n = qb64prefix$ + "MEM" id.subfunc = 1 id.callname = "func__mem" 'id.args = 1 @@ -168,7 +170,7 @@ regid '---special case--- clearid -id.n = "_MEMELEMENT" +id.n = qb64prefix$ + "MEMELEMENT" id.subfunc = 1 id.callname = "func__mem" id.args = 1 @@ -180,7 +182,7 @@ regid clearid -id.n = "_MEMFREE" +id.n = qb64prefix$ + "MEMFREE" id.subfunc = 2 id.callname = "sub__memfree" id.args = 1 @@ -188,7 +190,7 @@ id.arg = MKL$(UDTTYPE + (1)) regid clearid -id.n = "_MEMEXISTS" +id.n = qb64prefix$ + "MEMEXISTS" id.subfunc = 1 id.callname = "func__memexists" id.args = 1 @@ -197,7 +199,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_MEMNEW" +id.n = qb64prefix$ + "MEMNEW" id.subfunc = 1 id.callname = "func__memnew" id.args = 1 @@ -206,7 +208,7 @@ id.ret = ISUDT + (1) 'the _MEM type is the first TYPE defined regid clearid -id.n = "_MEMIMAGE" +id.n = qb64prefix$ + "MEMIMAGE" id.subfunc = 1 id.callname = "func__memimage" id.args = 1 @@ -216,7 +218,7 @@ id.ret = ISUDT + (1) 'the _MEM type is the first TYPE defined regid clearid '_MEMCOPY a, aoffset, bytes TO b, boffset -id.n = "_MEMCOPY" +id.n = qb64prefix$ + "MEMCOPY" id.subfunc = 2 id.callname = "sub__memcopy" id.args = 5 @@ -225,7 +227,7 @@ id.specialformat = "?,?,?{TO}?,?" 'dest is default regid clearid -id.n = "_CONSOLETITLE" +id.n = qb64prefix$ + "CONSOLETITLE" id.subfunc = 2 id.callname = "sub__consoletitle" id.args = 1 @@ -233,19 +235,19 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_SCREENSHOW" +id.n = qb64prefix$ + "SCREENSHOW" id.subfunc = 2 id.callname = "sub__screenshow" regid clearid -id.n = "_SCREENHIDE" +id.n = qb64prefix$ + "SCREENHIDE" id.subfunc = 2 id.callname = "sub__screenhide" regid clearid -id.n = "_SCREENHIDE" +id.n = qb64prefix$ + "SCREENHIDE" id.subfunc = 1 id.callname = "func__screenhide" id.ret = LONGTYPE - ISPOINTER @@ -253,14 +255,14 @@ regid clearid -id.n = "_CONSOLE" +id.n = qb64prefix$ + "CONSOLE" id.subfunc = 1 id.callname = "func__console" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CONSOLE" +id.n = qb64prefix$ + "CONSOLE" id.subfunc = 2 id.callname = "sub__console" id.args = 1 @@ -269,7 +271,7 @@ id.specialformat = "{ON|OFF}" regid clearid -id.n = "_CONTROLCHR" +id.n = qb64prefix$ + "CONTROLCHR" id.subfunc = 2 id.callname = "sub__controlchr" id.args = 1 @@ -278,7 +280,7 @@ id.specialformat = "{ON|OFF}" regid clearid -id.n = "_BLINK" +id.n = qb64prefix$ + "BLINK" id.subfunc = 2 id.callname = "sub__blink" id.args = 1 @@ -287,14 +289,14 @@ id.specialformat = "{ON|OFF}" regid clearid -id.n = "_BLINK" +id.n = qb64prefix$ + "BLINK" id.subfunc = 1 id.callname = "func__blink" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FILEEXISTS" +id.n = qb64prefix$ + "FILEEXISTS" id.subfunc = 1 id.callname = "func__fileexists" id.args = 1 @@ -303,7 +305,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DIREXISTS" +id.n = qb64prefix$ + "DIREXISTS" id.subfunc = 1 id.callname = "func__direxists" id.args = 1 @@ -346,14 +348,14 @@ regid clearid -id.n = "_DEVICES": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "DEVICES": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__devices" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DEVICE": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "DEVICE": id.Dependency=DEPENDENCY_DEVICEINPUT id.musthave = "$" id.subfunc = 1 id.callname = "func__device" @@ -364,7 +366,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_DEVICEINPUT": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "DEVICEINPUT": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__deviceinput" id.args = 1 @@ -374,7 +376,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_LASTBUTTON": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "LASTBUTTON": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__lastbutton" id.args = 1 @@ -384,7 +386,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_LASTAXIS": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "LASTAXIS": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__lastaxis" id.args = 1 @@ -394,7 +396,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_LASTWHEEL": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "LASTWHEEL": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__lastwheel" id.args = 1 @@ -404,7 +406,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_BUTTON": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "BUTTON": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__button" id.args = 1 @@ -414,7 +416,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_BUTTONCHANGE": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "BUTTONCHANGE": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__buttonchange" id.args = 1 @@ -424,7 +426,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_AXIS": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "AXIS": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__axis" id.args = 1 @@ -435,7 +437,7 @@ regid clearid -id.n = "_WHEEL": id.Dependency=DEPENDENCY_DEVICEINPUT +id.n = qb64prefix$ + "WHEEL": id.Dependency=DEPENDENCY_DEVICEINPUT id.subfunc = 1 id.callname = "func__wheel" id.args = 1 @@ -463,30 +465,30 @@ id.specialformat = "(?){ON|OFF|STOP}" regid clearid -id.n = "_SCREENX" +id.n = qb64prefix$ + "SCREENX" id.subfunc = 1 id.callname = "func__screenx" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCREENY" +id.n = qb64prefix$ + "SCREENY" id.subfunc = 1 id.callname = "func__screeny" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCREENMOVE" +id.n = qb64prefix$ + "SCREENMOVE" id.subfunc = 2 id.callname = "sub__screenmove" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_MIDDLE}][?,?]" +id.specialformat = "[{" + qb64prefix$ + "MIDDLE}][?,?]" regid clearid -id.n = "_MOUSEMOVE" +id.n = qb64prefix$ + "MOUSEMOVE" id.subfunc = 2 id.callname = "sub__mousemove" id.args = 2 @@ -494,7 +496,7 @@ id.arg = MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) regid clearid -id.n = "_OS" +id.n = qb64prefix$ + "OS" id.musthave = "$" id.subfunc = 1 id.callname = "func__os" @@ -502,7 +504,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_TITLE" +id.n = qb64prefix$ + "TITLE" id.musthave = "$" id.subfunc = 1 id.callname = "func__title" @@ -510,7 +512,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_MAPUNICODE" +id.n = qb64prefix$ + "MAPUNICODE" id.subfunc = 2 id.callname = "sub__mapunicode" id.args = 2 @@ -519,7 +521,7 @@ id.specialformat = "?{TO}?" regid clearid -id.n = "_MAPUNICODE" +id.n = qb64prefix$ + "MAPUNICODE" id.subfunc = 1 id.callname = "func__mapunicode" id.args = 1 @@ -528,7 +530,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_KEYDOWN" +id.n = qb64prefix$ + "KEYDOWN" id.subfunc = 1 id.callname = "func__keydown" id.args = 1 @@ -537,14 +539,14 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_KEYHIT" +id.n = qb64prefix$ + "KEYHIT" id.subfunc = 1 id.callname = "func__keyhit" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_WINDOWHANDLE" +id.n = qb64prefix$ + "WINDOWHANDLE" id.subfunc = 1 id.callname = "func__handle" id.ret = INTEGER64TYPE - ISPOINTER @@ -560,7 +562,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_PRINTIMAGE": id.Dependency = DEPENDENCY_PRINTER +id.n = qb64prefix$ + "PRINTIMAGE": id.Dependency = DEPENDENCY_PRINTER id.subfunc = 2 id.callname = "sub__printimage" id.args = 1 @@ -572,7 +574,7 @@ regid 'remote desktop clearid -id.n = "_SCREENCLICK" +id.n = qb64prefix$ + "SCREENCLICK" id.subfunc = 2 id.callname = "sub__screenclick" id.args = 3 @@ -581,7 +583,7 @@ id.specialformat = "?,?[,?]" regid clearid -id.n = "_SCREENPRINT" +id.n = qb64prefix$ + "SCREENPRINT" id.subfunc = 2 id.callname = "sub__screenprint" id.args = 1 @@ -589,7 +591,7 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_SCREENIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE +id.n = qb64prefix$ + "SCREENIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE id.subfunc = 1 id.callname = "func__screenimage" id.args = 4 @@ -621,7 +623,7 @@ id.specialformat = "[#]?[,[?][{TO}?]]" regid clearid -id.n = "_FREETIMER" +id.n = qb64prefix$ + "FREETIMER" id.subfunc = 1 id.callname = "func__freetimer" id.ret = LONGTYPE - ISPOINTER @@ -637,46 +639,46 @@ id.specialformat = "[(?)]{ON|OFF|STOP|FREE}" regid clearid -id.n = "_FULLSCREEN" +id.n = qb64prefix$ + "FULLSCREEN" id.subfunc = 2 id.callname = "sub__fullscreen" id.args = 1 id.arg = MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_OFF|_STRETCH|_SQUAREPIXELS|OFF}][,{_SMOOTH}]" +id.specialformat = "[{" + qb64prefix$ + "OFF|" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SQUAREPIXELS|OFF}][,{" + qb64prefix$ + "SMOOTH}]" regid clearid -id.n = "_ALLOWFULLSCREEN" +id.n = qb64prefix$ + "ALLOWFULLSCREEN" id.subfunc = 2 id.callname = "sub__allowfullscreen" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_STRETCH|_SQUAREPIXELS|_OFF|_ALL|OFF}][,{_SMOOTH|_OFF|_ALL|OFF}]" +id.specialformat = "[{" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SQUAREPIXELS|" + qb64prefix$ + "OFF|" + qb64prefix$ + "ALL|OFF}][,{" + qb64prefix$ + "SMOOTH|" + qb64prefix$ + "OFF|" + qb64prefix$ + "ALL|OFF}]" regid clearid -id.n = "_FULLSCREEN" +id.n = qb64prefix$ + "FULLSCREEN" id.subfunc = 1 id.callname = "func__fullscreen" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SMOOTH" +id.n = qb64prefix$ + "SMOOTH" id.subfunc = 1 id.callname = "func__fullscreensmooth" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_WINDOWHASFOCUS" +id.n = qb64prefix$ + "WINDOWHASFOCUS" id.subfunc = 1 id.callname = "func__hasfocus" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CLIPBOARD" +id.n = qb64prefix$ + "CLIPBOARD" id.musthave = "$" id.subfunc = 2 id.callname = "sub__clipboard" @@ -686,7 +688,7 @@ id.specialformat = "=?" regid clearid -id.n = "_CLIPBOARD" +id.n = qb64prefix$ + "CLIPBOARD" id.musthave = "$" id.subfunc = 1 id.callname = "func__clipboard" @@ -694,14 +696,14 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_CLIPBOARDIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE +id.n = qb64prefix$ + "CLIPBOARDIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE id.subfunc = 1 id.callname = "func__clipboardimage" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CLIPBOARDIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE +id.n = qb64prefix$ + "CLIPBOARDIMAGE": id.Dependency = DEPENDENCY_SCREENIMAGE id.subfunc = 2 id.callname = "sub__clipboardimage" id.args = 1 @@ -710,14 +712,14 @@ id.specialformat = "=?" regid clearid -id.n = "_EXIT" +id.n = qb64prefix$ + "EXIT" id.subfunc = 1 id.callname = "func__exit" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_OPENHOST": id.Dependency = DEPENDENCY_SOCKETS +id.n = qb64prefix$ + "OPENHOST": id.Dependency = DEPENDENCY_SOCKETS id.subfunc = 1 id.callname = "func__openhost" id.args = 1 @@ -726,7 +728,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CONNECTED" +id.n = qb64prefix$ + "CONNECTED" id.subfunc = 1 id.callname = "func__connected" id.args = 1 @@ -735,7 +737,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CONNECTIONADDRESS" +id.n = qb64prefix$ + "CONNECTIONADDRESS" id.mayhave = "$" id.subfunc = 1 id.callname = "func__connectionaddress" @@ -745,7 +747,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_OPENCONNECTION" +id.n = qb64prefix$ + "OPENCONNECTION" id.subfunc = 1 id.callname = "func__openconnection" id.args = 1 @@ -754,7 +756,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_OPENCLIENT": id.Dependency = DEPENDENCY_SOCKETS +id.n = qb64prefix$ + "OPENCLIENT": id.Dependency = DEPENDENCY_SOCKETS id.subfunc = 1 id.callname = "func__openclient" id.args = 1 @@ -782,21 +784,21 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_ERRORLINE" +id.n = qb64prefix$ + "ERRORLINE" id.subfunc = 1 id.callname = "func__errorline" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_INCLERRORLINE" +id.n = qb64prefix$ + "INCLERRORLINE" id.subfunc = 1 id.callname = "func__inclerrorline" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_ASSERT" +id.n = qb64prefix$ + "ASSERT" id.subfunc = 2 id.callname = "sub__assert" id.args = 2 @@ -805,19 +807,19 @@ id.arg = MKL$(INTEGERTYPE - ISPOINTER) + MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_DISPLAY" +id.n = qb64prefix$ + "DISPLAY" id.subfunc = 2 id.callname = "sub__display" regid clearid -id.n = "_AUTODISPLAY" +id.n = qb64prefix$ + "AUTODISPLAY" id.subfunc = 2 id.callname = "sub__autodisplay" regid clearid -id.n = "_LIMIT" +id.n = qb64prefix$ + "LIMIT" id.subfunc = 2 id.callname = "sub__limit" id.args = 1 @@ -825,16 +827,16 @@ id.arg = MKL$(DOUBLETYPE - ISPOINTER) regid clearid -id.n = "_FPS" +id.n = qb64prefix$ + "FPS" id.subfunc = 2 id.callname = "sub__fps" id.args = 1 id.arg = MKL$(DOUBLETYPE - ISPOINTER) -id.specialformat = "[{_AUTO}][?]" +id.specialformat = "[{" + qb64prefix$ + "AUTO}][?]" regid clearid -id.n = "_DELAY" +id.n = qb64prefix$ + "DELAY" id.subfunc = 2 id.callname = "sub__delay" id.args = 1 @@ -842,7 +844,7 @@ id.arg = MKL$(DOUBLETYPE - ISPOINTER) regid clearid -id.n = "_ICON": id.Dependency = DEPENDENCY_ICON +id.n = qb64prefix$ + "ICON": id.Dependency = DEPENDENCY_ICON id.subfunc = 2 id.callname = "sub__icon" id.args = 2 @@ -851,7 +853,7 @@ id.specialformat = "[?[,?]]" regid clearid -id.n = "_TITLE" +id.n = qb64prefix$ + "TITLE" id.subfunc = 2 id.callname = "sub__title" id.args = 1 @@ -859,7 +861,7 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_ECHO" +id.n = qb64prefix$ + "ECHO" id.subfunc = 2 id.callname = "sub__echo" id.args = 1 @@ -867,7 +869,7 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) regid clearid -id.n = "_ACCEPTFILEDROP" +id.n = qb64prefix$ + "ACCEPTFILEDROP" id.subfunc = 2 id.callname = "sub__filedrop" id.args = 1 @@ -876,27 +878,27 @@ id.specialformat = "[{ON|OFF}]" regid clearid -id.n = "_ACCEPTFILEDROP" +id.n = qb64prefix$ + "ACCEPTFILEDROP" id.subfunc = 1 id.callname = "func__filedrop" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FINISHDROP" +id.n = qb64prefix$ + "FINISHDROP" id.subfunc = 2 id.callname = "sub__finishdrop" regid clearid -id.n = "_TOTALDROPPEDFILES" +id.n = qb64prefix$ + "TOTALDROPPEDFILES" id.subfunc = 1 id.callname = "func__totaldroppedfiles" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DROPPEDFILE" +id.n = qb64prefix$ + "DROPPEDFILE" id.mayhave = "$" id.subfunc = 1 id.callname = "func__droppedfile" @@ -918,7 +920,7 @@ regid 'IMAGE CREATION/FREEING clearid -id.n = "_NEWIMAGE" +id.n = qb64prefix$ + "NEWIMAGE" id.subfunc = 1 id.callname = "func__newimage" id.args = 3 @@ -928,7 +930,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_LOADIMAGE": id.Dependency = DEPENDENCY_IMAGE_CODEC +id.n = qb64prefix$ + "LOADIMAGE": id.Dependency = DEPENDENCY_IMAGE_CODEC id.subfunc = 1 id.callname = "func__loadimage" id.args = 2 @@ -938,7 +940,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FREEIMAGE" +id.n = qb64prefix$ + "FREEIMAGE" id.subfunc = 2 id.callname = "sub__freeimage" id.args = 1 @@ -947,7 +949,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_COPYIMAGE" +id.n = qb64prefix$ + "COPYIMAGE" id.subfunc = 1 id.callname = "func__copyimage" id.args = 2 @@ -959,7 +961,7 @@ regid 'IMAGE SELECTION clearid -id.n = "_SOURCE" +id.n = qb64prefix$ + "SOURCE" id.subfunc = 2 id.callname = "sub__source" id.args = 1 @@ -968,7 +970,7 @@ id.specialformat = "?" regid clearid -id.n = "_DEST" +id.n = qb64prefix$ + "DEST" id.subfunc = 2 id.callname = "sub__dest" id.args = 1 @@ -977,21 +979,21 @@ id.specialformat = "?" regid clearid -id.n = "_SOURCE" +id.n = qb64prefix$ + "SOURCE" id.subfunc = 1 id.callname = "func__source" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DEST" +id.n = qb64prefix$ + "DEST" id.subfunc = 1 id.callname = "func__dest" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DISPLAY" +id.n = qb64prefix$ + "DISPLAY" id.subfunc = 1 id.callname = "func__display" id.ret = LONGTYPE - ISPOINTER @@ -1000,7 +1002,7 @@ regid 'IMAGE SETTINGS clearid -id.n = "_BLEND" +id.n = qb64prefix$ + "BLEND" id.subfunc = 2 id.callname = "sub__blend" id.args = 1 @@ -1009,7 +1011,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_DONTBLEND" +id.n = qb64prefix$ + "DONTBLEND" id.subfunc = 2 id.callname = "sub__dontblend" id.args = 1 @@ -1018,45 +1020,45 @@ id.specialformat = "[?]" regid clearid -id.n = "_CLEARCOLOR" +id.n = qb64prefix$ + "CLEARCOLOR" id.subfunc = 2 id.callname = "sub__clearcolor" id.args = 2 id.arg = MKL$(ULONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_NONE}][?][,?]" +id.specialformat = "[{" + qb64prefix$ + "NONE}][?][,?]" regid 'USING/CHANGING A SURFACE clearid -id.n = "_PUTIMAGE" +id.n = qb64prefix$ + "PUTIMAGE" id.subfunc = 2 id.callname = "sub__putimage" id.args = 10 id.arg = MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) -id.specialformat = "[[{STEP}](?,?)[-[{STEP}](?,?)]][,[?][,[?][,[[{STEP}](?,?)[-[{STEP}](?,?)]][,{_SMOOTH}]]]]" +id.specialformat = "[[{STEP}](?,?)[-[{STEP}](?,?)]][,[?][,[?][,[[{STEP}](?,?)[-[{STEP}](?,?)]][,{" + qb64prefix$ + "SMOOTH}]]]]" regid clearid -id.n = "_MAPTRIANGLE" +id.n = qb64prefix$ + "MAPTRIANGLE" id.subfunc = 2 id.callname = "sub__maptriangle" id.args = 19 id.arg = MKL$(LONGTYPE - ISPOINTER)+MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_CLOCKWISE|_ANTICLOCKWISE}][{_SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{_SMOOTH|_SMOOTHSHRUNK|_SMOOTHSTRETCHED}]]" +id.specialformat = "[{" + qb64prefix$ + "CLOCKWISE|" + qb64prefix$ + "ANTICLOCKWISE}][{" + qb64prefix$ + "SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{" + qb64prefix$ + "SMOOTH|" + qb64prefix$ + "SMOOTHSHRUNK|" + qb64prefix$ + "SMOOTHSTRETCHED}]]" regid clearid -id.n = "_DEPTHBUFFER" +id.n = qb64prefix$ + "DEPTHBUFFER" id.subfunc = 2 id.callname = "sub__depthbuffer" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER)+MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{ON|OFF|LOCK|_CLEAR}[,?]" +id.specialformat = "{ON|OFF|LOCK|" + qb64prefix$ + "CLEAR}[,?]" regid clearid -id.n = "_SETALPHA" +id.n = qb64prefix$ + "SETALPHA" id.subfunc = 2 id.callname = "sub__setalpha" id.args = 4 @@ -1067,7 +1069,7 @@ regid 'IMAGE INFO clearid -id.n = "_WIDTH" +id.n = qb64prefix$ + "WIDTH" id.subfunc = 1 id.callname = "func__width" id.args = 1 @@ -1077,7 +1079,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_HEIGHT" +id.n = qb64prefix$ + "HEIGHT" id.subfunc = 1 id.callname = "func__height" id.args = 1 @@ -1087,7 +1089,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_PIXELSIZE" +id.n = qb64prefix$ + "PIXELSIZE" id.subfunc = 1 id.callname = "func__pixelsize" id.args = 1 @@ -1097,7 +1099,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CLEARCOLOR" +id.n = qb64prefix$ + "CLEARCOLOR" id.subfunc = 1 id.callname = "func__clearcolor" id.args = 1 @@ -1107,7 +1109,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_BLEND" +id.n = qb64prefix$ + "BLEND" id.subfunc = 1 id.callname = "func__blend" id.args = 1 @@ -1117,7 +1119,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DEFAULTCOLOR" +id.n = qb64prefix$ + "DEFAULTCOLOR" id.subfunc = 1 id.callname = "func__defaultcolor" id.args = 1 @@ -1127,7 +1129,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_BACKGROUNDCOLOR" +id.n = qb64prefix$ + "BACKGROUNDCOLOR" id.subfunc = 1 id.callname = "func__backgroundcolor" id.args = 1 @@ -1139,7 +1141,7 @@ regid '256 COLOR PALETTES clearid -id.n = "_PALETTECOLOR" +id.n = qb64prefix$ + "PALETTECOLOR" id.subfunc = 1 id.callname = "func__palettecolor" id.args = 2 @@ -1149,7 +1151,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_PALETTECOLOR" +id.n = qb64prefix$ + "PALETTECOLOR" id.subfunc = 2 id.callname = "sub__palettecolor" id.args = 3 @@ -1158,7 +1160,7 @@ id.specialformat = "?,?[,?]" regid clearid -id.n = "_COPYPALETTE" +id.n = qb64prefix$ + "COPYPALETTE" id.subfunc = 2 id.callname = "sub__copypalette" id.args = 2 @@ -1169,7 +1171,7 @@ regid 'FONT SUPPORT clearid -id.n = "_LOADFONT": id.Dependency = DEPENDENCY_LOADFONT +id.n = qb64prefix$ + "LOADFONT": id.Dependency = DEPENDENCY_LOADFONT id.subfunc = 1 id.callname = "func__loadfont" id.args = 3 @@ -1179,7 +1181,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FONT" +id.n = qb64prefix$ + "FONT" id.subfunc = 2 id.callname = "sub__font" id.args = 2 @@ -1188,7 +1190,7 @@ id.specialformat = "?[,?]" regid clearid -id.n = "_FONTWIDTH" +id.n = qb64prefix$ + "FONTWIDTH" id.subfunc = 1 id.callname = "func__fontwidth" id.args = 1 @@ -1198,7 +1200,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FONTHEIGHT" +id.n = qb64prefix$ + "FONTHEIGHT" id.subfunc = 1 id.callname = "func__fontheight" id.args = 1 @@ -1208,7 +1210,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FONT" +id.n = qb64prefix$ + "FONT" id.subfunc = 1 id.callname = "func__font" id.args = 1 @@ -1218,7 +1220,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_PRINTSTRING" +id.n = qb64prefix$ + "PRINTSTRING" id.subfunc = 2 id.callname = "sub__printstring" id.args = 4 @@ -1227,7 +1229,7 @@ id.specialformat = "[{STEP}](?,?),?[,?]" regid clearid -id.n = "_PRINTWIDTH" +id.n = qb64prefix$ + "PRINTWIDTH" id.subfunc = 1 id.callname = "func__printwidth" id.args = 2 @@ -1237,7 +1239,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_FREEFONT" +id.n = qb64prefix$ + "FREEFONT" id.subfunc = 2 id.callname = "sub__freefont" id.args = 1 @@ -1246,16 +1248,16 @@ id.specialformat = "?" regid clearid -id.n = "_PRINTMODE" +id.n = qb64prefix$ + "PRINTMODE" id.subfunc = 2 id.callname = "sub__printmode" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{_FILLBACKGROUND|_KEEPBACKGROUND|_ONLYBACKGROUND}[,?]" +id.specialformat = "{" + qb64prefix$ + "FILLBACKGROUND|" + qb64prefix$ + "KEEPBACKGROUND|" + qb64prefix$ + "ONLYBACKGROUND}[,?]" regid clearid -id.n = "_PRINTMODE" +id.n = qb64prefix$ + "PRINTMODE" id.subfunc = 1 id.callname = "func__printmode" id.args = 1 @@ -1267,7 +1269,7 @@ regid 'WORKING WITH COLORS clearid -id.n = "_RGBA" +id.n = qb64prefix$ + "RGBA" id.subfunc = 1 id.callname = "func__rgba" id.args = 5 @@ -1277,7 +1279,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_RGB" +id.n = qb64prefix$ + "RGB" id.subfunc = 1 id.callname = "func__rgb" id.args = 4 @@ -1287,7 +1289,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_RED" +id.n = qb64prefix$ + "RED" id.subfunc = 1 id.callname = "func__red" id.args = 2 @@ -1297,7 +1299,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_GREEN" +id.n = qb64prefix$ + "GREEN" id.subfunc = 1 id.callname = "func__green" id.args = 2 @@ -1307,7 +1309,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_BLUE" +id.n = qb64prefix$ + "BLUE" id.subfunc = 1 id.callname = "func__blue" id.args = 2 @@ -1317,7 +1319,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_ALPHA" +id.n = qb64prefix$ + "ALPHA" id.subfunc = 1 id.callname = "func__alpha" id.args = 2 @@ -1327,7 +1329,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_RGBA32" +id.n = qb64prefix$ + "RGBA32" id.subfunc = 1 id.callname = "func__rgba32" id.args = 4 @@ -1336,7 +1338,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_RGB32" +id.n = qb64prefix$ + "RGB32" id.subfunc = 1 id.callname = "func__rgb32" id.overloaded = -1 @@ -1347,7 +1349,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_RED32" +id.n = qb64prefix$ + "RED32" id.subfunc = 1 id.callname = "func__red32" id.args = 1 @@ -1356,7 +1358,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_GREEN32" +id.n = qb64prefix$ + "GREEN32" id.subfunc = 1 id.callname = "func__green32" id.args = 1 @@ -1365,7 +1367,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_BLUE32" +id.n = qb64prefix$ + "BLUE32" id.subfunc = 1 id.callname = "func__blue32" id.args = 1 @@ -1374,7 +1376,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_ALPHA32" +id.n = qb64prefix$ + "ALPHA32" id.subfunc = 1 id.callname = "func__alpha32" id.args = 1 @@ -1410,7 +1412,7 @@ regid 'QB64 MOUSE clearid -id.n = "_MOUSESHOW" +id.n = qb64prefix$ + "MOUSESHOW" id.subfunc = 2 id.callname = "sub__mouseshow" id.args = 1 @@ -1419,13 +1421,13 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEHIDE" +id.n = qb64prefix$ + "MOUSEHIDE" id.subfunc = 2 id.callname = "sub__mousehide" regid clearid -id.n = "_MOUSEINPUT" +id.n = qb64prefix$ + "MOUSEINPUT" id.subfunc = 1 id.callname = "func__mouseinput" id.ret = LONGTYPE - ISPOINTER @@ -1435,7 +1437,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEX" +id.n = qb64prefix$ + "MOUSEX" id.subfunc = 1 id.callname = "func__mousex" id.ret = SINGLETYPE - ISPOINTER @@ -1445,7 +1447,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEY" +id.n = qb64prefix$ + "MOUSEY" id.subfunc = 1 id.callname = "func__mousey" id.ret = SINGLETYPE - ISPOINTER @@ -1455,7 +1457,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEMOVEMENTX" +id.n = qb64prefix$ + "MOUSEMOVEMENTX" id.subfunc = 1 id.callname = "func__mousemovementx" id.ret = SINGLETYPE - ISPOINTER @@ -1465,7 +1467,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEMOVEMENTY" +id.n = qb64prefix$ + "MOUSEMOVEMENTY" id.subfunc = 1 id.callname = "func__mousemovementy" id.ret = SINGLETYPE - ISPOINTER @@ -1475,7 +1477,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_MOUSEBUTTON" +id.n = qb64prefix$ + "MOUSEBUTTON" id.subfunc = 1 id.callname = "func__mousebutton" id.args = 2 @@ -1485,7 +1487,7 @@ id.specialformat = "?[,?]" regid clearid -id.n = "_MOUSEWHEEL" +id.n = qb64prefix$ + "MOUSEWHEEL" id.subfunc = 1 id.callname = "func__mousewheel" id.ret = LONGTYPE - ISPOINTER @@ -1496,14 +1498,14 @@ regid clearid -id.n = "_MOUSEPIPEOPEN" +id.n = qb64prefix$ + "MOUSEPIPEOPEN" id.subfunc = 1 id.callname = "func__mousepipeopen" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_MOUSEINPUTPIPE" +id.n = qb64prefix$ + "MOUSEINPUTPIPE" id.subfunc = 2 id.callname = "sub__mouseinputpipe" id.args = 1 @@ -1511,7 +1513,7 @@ id.arg = MKL$(LONGTYPE - ISPOINTER) regid clearid -id.n = "_MOUSEPIPECLOSE" +id.n = qb64prefix$ + "MOUSEPIPECLOSE" id.subfunc = 2 id.callname = "sub__mousepipeclose" id.args = 1 @@ -1581,7 +1583,7 @@ id.callname = "sub_shell" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) id.specialformat = "[?]" -'id.secondargcantbe = "_HIDE" +'id.secondargcantbe = qb64prefix$ + "HIDE" regid clearid @@ -1590,8 +1592,8 @@ id.subfunc = 2 id.callname = "sub_shell2" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) -id.specialformat = "{_HIDE}[{_DONTWAIT}][?]" -id.secondargmustbe = "_HIDE" +id.specialformat = "{" + qb64prefix$ + "HIDE}[{" + qb64prefix$ + "DONTWAIT}][?]" +id.secondargmustbe = qb64prefix$ + "HIDE" regid clearid @@ -1600,8 +1602,8 @@ id.subfunc = 2 id.callname = "sub_shell3" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) -id.specialformat = "{_DONTWAIT}[{_HIDE}][?]" -id.secondargmustbe = "_DONTWAIT" +id.specialformat = "{" + qb64prefix$ + "DONTWAIT}[{" + qb64prefix$ + "HIDE}][?]" +id.secondargmustbe = qb64prefix$ + "DONTWAIT" regid clearid @@ -1614,7 +1616,7 @@ id.ret = INTEGER64TYPE - ISPOINTER regid clearid -id.n = "_SHELLHIDE" +id.n = qb64prefix$ + "SHELLHIDE" id.subfunc = 1 id.callname = "func__shellhide" id.args = 1 @@ -1634,7 +1636,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_COMMANDCOUNT" +id.n = qb64prefix$ + "COMMANDCOUNT" id.subfunc = 1 id.callname = "func__commandcount" id.ret = LONGTYPE - ISPOINTER @@ -1644,14 +1646,14 @@ regid 'QB64 AUDIO clearid -id.n = "_SNDRATE": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDRATE": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndrate" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SNDRAW": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDRAW": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndraw" id.args = 3 @@ -1660,7 +1662,7 @@ id.specialformat = "?[,[?][,?]]" regid clearid -id.n = "_SNDRAWDONE": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDRAWDONE": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndrawdone" id.args = 1 @@ -1669,14 +1671,14 @@ id.specialformat = "[?]" regid clearid -id.n = "_SNDOPENRAW": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDOPENRAW": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndopenraw" id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SNDRAWLEN": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDRAWLEN": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndrawlen" id.args = 1 @@ -1686,7 +1688,7 @@ id.ret = DOUBLETYPE - ISPOINTER regid clearid -id.n = "_SNDLEN": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDLEN": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndlen" id.args = 1 @@ -1695,7 +1697,7 @@ id.ret = SINGLETYPE - ISPOINTER regid clearid -id.n = "_SNDPAUSED": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDPAUSED": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndpaused" id.args = 1 @@ -1704,7 +1706,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SNDPLAYFILE": id.Dependency = DEPENDENCY_AUDIO_DECODE +id.n = qb64prefix$ + "SNDPLAYFILE": id.Dependency = DEPENDENCY_AUDIO_DECODE id.subfunc = 2 id.callname = "sub__sndplayfile" id.args = 3 @@ -1713,7 +1715,7 @@ id.specialformat = "?[,[?][,?]]" regid clearid -id.n = "_SNDPLAYCOPY": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDPLAYCOPY": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndplaycopy" id.args = 2 @@ -1722,7 +1724,7 @@ id.specialformat = "?[,?]" regid clearid -id.n = "_SNDSTOP": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDSTOP": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndstop" id.args = 1 @@ -1730,7 +1732,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) regid clearid -id.n = "_SNDLOOP": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDLOOP": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndloop" id.args = 1 @@ -1738,7 +1740,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) regid clearid -id.n = "_SNDLIMIT": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDLIMIT": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndlimit" id.args = 2 @@ -1746,7 +1748,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) regid clearid -id.n = "_SNDOPEN": id.Dependency = DEPENDENCY_AUDIO_DECODE +id.n = qb64prefix$ + "SNDOPEN": id.Dependency = DEPENDENCY_AUDIO_DECODE id.subfunc = 1 id.callname = "func__sndopen" id.args = 2 @@ -1756,7 +1758,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_SNDSETPOS": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDSETPOS": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndsetpos" id.args = 2 @@ -1764,7 +1766,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) regid clearid -id.n = "_SNDGETPOS": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDGETPOS": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndgetpos" id.args = 1 @@ -1773,7 +1775,7 @@ id.ret = SINGLETYPE - ISPOINTER regid clearid -id.n = "_SNDPLAYING": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDPLAYING": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndplaying" id.args = 1 @@ -1782,7 +1784,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SNDPAUSE": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDPAUSE": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndpause" id.args = 1 @@ -1790,7 +1792,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) regid clearid -id.n = "_SNDBAL": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDBAL": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndbal" id.args = 5 @@ -1800,7 +1802,7 @@ regid clearid -id.n = "_SNDVOL": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDVOL": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndvol" id.args = 2 @@ -1808,7 +1810,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) regid clearid -id.n = "_SNDPLAY": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDPLAY": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndplay" id.args = 1 @@ -1816,7 +1818,7 @@ id.arg = MKL$(ULONGTYPE - ISPOINTER) regid clearid -id.n = "_SNDCOPY": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDCOPY": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 1 id.callname = "func__sndcopy" id.args = 1 @@ -1825,7 +1827,7 @@ id.ret = ULONGTYPE - ISPOINTER regid clearid -id.n = "_SNDCLOSE": id.Dependency = DEPENDENCY_AUDIO_OUT +id.n = qb64prefix$ + "SNDCLOSE": id.Dependency = DEPENDENCY_AUDIO_OUT id.subfunc = 2 id.callname = "sub__sndclose" id.args = 1 @@ -2061,7 +2063,7 @@ id.ret = SINGLETYPE - ISPOINTER regid clearid -id.n = "_ROUND" +id.n = qb64prefix$ + "ROUND" id.subfunc = 1 id.args = 1 id.arg = MKL$(-1) @@ -2217,7 +2219,7 @@ id.subfunc = 2 id.callname = "sub_graphics_put" id.args = 5 id.arg = MKL$(FLOATTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) + MKL$(-3) + MKL$(LONGTYPE - ISPOINTER) + MKL$(ULONGTYPE - ISPOINTER) -id.specialformat = "[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" +id.specialformat = "[{STEP}](?,?),?[,[{" + qb64prefix$ + "CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" 'PUT [STEP] (x!,y!),arrayname# [(indexes%)] [,actionverb] 'PUT (10, 10), myimage, _CLIP, 0 id.secondargmustbe = "STEP" @@ -2228,7 +2230,7 @@ id.subfunc = 2 id.callname = "sub_graphics_put" id.args = 5 id.arg = MKL$(FLOATTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) + MKL$(-3) + MKL$(LONGTYPE - ISPOINTER) + MKL$(ULONGTYPE - ISPOINTER) -id.specialformat = "[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" +id.specialformat = "[{STEP}](?,?),?[,[{" + qb64prefix$ + "CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" 'PUT [STEP] (x!,y!),arrayname# [(indexes%)] [,actionverb] 'PUT (10, 10), myimage, _CLIP, 0 id.secondargmustbe = "(" @@ -2316,7 +2318,7 @@ id.arg = MKL$(DOUBLETYPE - ISPOINTER) id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_MK" +id.n = qb64prefix$ + "MK" id.musthave = "$" id.subfunc = 1 id.callname = "" @@ -2375,7 +2377,7 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) id.ret = DOUBLETYPE - ISPOINTER regid clearid -id.n = "_CV" +id.n = qb64prefix$ + "CV" id.subfunc = 1 id.callname = "" id.args = 2 @@ -2414,7 +2416,7 @@ id.specialformat = "[?],?,?" 'checked! regid clearid -id.n = "_INSTRREV" +id.n = qb64prefix$ + "INSTRREV" id.subfunc = 1 id.callname = "func__instrrev" id.args = 3 @@ -2491,7 +2493,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_OFFSET" +id.n = qb64prefix$ + "OFFSET" id.subfunc = 1 id.callname = "" id.args = 1 @@ -2758,7 +2760,7 @@ id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE 'id.specialformat = "[?][,[?][,[?][,?]]]" 'new! 'id.specialformat = "[?][,[?][,[?][,[?][,{_MANUALDISPLAY}]]]]" 'breaks compilation! 'id.specialformat = "[?][,[?][,[?][,[?][,[{_MANUALDISPLAY}]]]]]" <-pre-bulletproofing -id.specialformat = "[?][,[?][,[?][,[?][,[{_MANUALDISPLAY}?]]]]]" 'a temp format for transition reasons" +id.specialformat = "[?][,[?][,[?][,[?][,[{" + qb64prefix$ + "MANUALDISPLAY}?]]]]]" 'a temp format for transition reasons" regid clearid @@ -2876,7 +2878,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_TRIM" +id.n = qb64prefix$ + "TRIM" id.musthave = "$" id.subfunc = 1 id.callname = "qbs__trim" @@ -2912,7 +2914,7 @@ regid 'Get Current Working Directory clearid -id.n = "_CWD" +id.n = qb64prefix$ + "CWD" id.musthave = "$" id.subfunc = 1 id.callname = "func__cwd" @@ -2921,7 +2923,7 @@ regid 'Get the directory the program was started from (before the currenct directory is automatically changed to the executables directory) clearid -id.n = "_STARTDIR" +id.n = qb64prefix$ + "STARTDIR" id.musthave = "$" id.subfunc = 1 id.callname = "func__startdir" @@ -2930,7 +2932,7 @@ regid 'Return a path that best represents the context provided e.g. _DIR$("DESKTOP") clearid -id.n = "_DIR" +id.n = qb64prefix$ + "DIR" id.musthave = "$" id.subfunc = 1 id.callname = "func__dir" @@ -2941,7 +2943,7 @@ regid 'Return the name of the included file in which the last error occurred clearid -id.n = "_INCLERRORFILE" +id.n = qb64prefix$ + "INCLERRORFILE" id.musthave = "$" id.subfunc = 1 id.callname = "func__inclerrorfile" @@ -2949,7 +2951,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_KEYCLEAR" +id.n = qb64prefix$ + "KEYCLEAR" id.subfunc = 2 id.args = 1 id.arg = MKL$(LONGTYPE - ISPOINTER) @@ -2958,7 +2960,7 @@ id.callname = "sub__keyclear" regid clearid -id.n = "_D2R" +id.n = qb64prefix$ + "D2R" id.subfunc = 1 id.callname = "func_deg2rad" id.args = 1 @@ -2967,7 +2969,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_D2G" +id.n = qb64prefix$ + "D2G" id.subfunc = 1 id.callname = "func_deg2grad" id.args = 1 @@ -2976,7 +2978,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_R2D" +id.n = qb64prefix$ + "R2D" id.subfunc = 1 id.callname = "func_rad2deg" id.args = 1 @@ -2985,7 +2987,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_R2G" +id.n = qb64prefix$ + "R2G" id.subfunc = 1 id.callname = "func_rad2grad" id.args = 1 @@ -2994,7 +2996,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_G2D" +id.n = qb64prefix$ + "G2D" id.subfunc = 1 id.callname = "func_grad2deg" id.args = 1 @@ -3003,7 +3005,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_G2R" +id.n = qb64prefix$ + "G2R" id.subfunc = 1 id.callname = "func_grad2rad" id.args = 1 @@ -3012,7 +3014,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid 'Clear the old id info so we set the slate for a new one -id.n = "_ATAN2" 'The name of our new one +id.n = qb64prefix$ + "ATAN2" 'The name of our new one id.subfunc = 1 'And this is a function id.callname = "atan2" 'The C name of the function id.args = 2 'It takes 2 parameters to work @@ -3021,7 +3023,7 @@ id.ret = FLOATTYPE - ISPOINTER 'we want it to return to us a nice _FLOAT value regid 'and we're finished with ID registration clearid 'Clear the old id info so we set the slate for a new one -id.n = "_HYPOT" 'The name of our new one +id.n = qb64prefix$ + "HYPOT" 'The name of our new one id.subfunc = 1 'And this is a function id.callname = "hypot" 'The C name of the function id.args = 2 'It takes 2 parameters to work @@ -3030,7 +3032,7 @@ id.ret = FLOATTYPE - ISPOINTER 'we want it to return to us a nice _FLOAT value regid 'and we're finished with ID registration clearid -id.n = "_ASIN" +id.n = qb64prefix$ + "ASIN" id.subfunc = 1 id.callname = "asin" id.args = 1 @@ -3039,7 +3041,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ACOS" +id.n = qb64prefix$ + "ACOS" id.subfunc = 1 id.callname = "acos" id.args = 1 @@ -3048,7 +3050,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_SINH" +id.n = qb64prefix$ + "SINH" id.subfunc = 1 id.callname = "sinh" id.args = 1 @@ -3057,7 +3059,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_COSH" +id.n = qb64prefix$ + "COSH" id.subfunc = 1 id.callname = "cosh" id.args = 1 @@ -3066,7 +3068,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_TANH" +id.n = qb64prefix$ + "TANH" id.subfunc = 1 id.callname = "tanh" id.args = 1 @@ -3075,7 +3077,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ASINH" +id.n = qb64prefix$ + "ASINH" id.subfunc = 1 id.callname = "asinh" id.args = 1 @@ -3084,7 +3086,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ACOSH" +id.n = qb64prefix$ + "ACOSH" id.subfunc = 1 id.callname = "acosh" id.args = 1 @@ -3093,7 +3095,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ATANH" +id.n = qb64prefix$ + "ATANH" id.subfunc = 1 id.callname = "atanh" id.args = 1 @@ -3102,7 +3104,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_CEIL" +id.n = qb64prefix$ + "CEIL" id.subfunc = 1 id.callname = "ceil" id.args = 1 @@ -3111,7 +3113,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_PI" +id.n = qb64prefix$ + "PI" id.subfunc = 1 id.callname = "func_pi" id.args = 1 @@ -3121,7 +3123,7 @@ id.specialformat = "[?]" regid clearid -id.n = "_DESKTOPHEIGHT" +id.n = qb64prefix$ + "DESKTOPHEIGHT" id.subfunc = 1 id.callname = "func_screenheight" id.args = 0 @@ -3129,7 +3131,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_DESKTOPWIDTH" +id.n = qb64prefix$ + "DESKTOPWIDTH" id.subfunc = 1 id.callname = "func_screenwidth" id.args = 0 @@ -3137,19 +3139,19 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCREENICON" 'name change to from _ICONIFYWINDOW to _SCREENICON to match the screenshow and screenhide +id.n = qb64prefix$ + "SCREENICON" 'name change to from _ICONIFYWINDOW to _SCREENICON to match the screenshow and screenhide id.subfunc = 2 id.callname = "sub_screenicon" regid clearid -id.n = "_SCREENEXISTS" +id.n = qb64prefix$ + "SCREENEXISTS" id.subfunc = 1 id.callname = "func_windowexists" regid clearid -id.n = "_CONTROLCHR" +id.n = qb64prefix$ + "CONTROLCHR" id.subfunc = 1 id.callname = "func__controlchr" id.args = 0 @@ -3157,7 +3159,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_STRICMP" +id.n = qb64prefix$ + "STRICMP" id.subfunc = 1 id.callname = "func__str_nc_compare" id.args = 2 @@ -3166,7 +3168,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_STRCMP" +id.n = qb64prefix$ + "STRCMP" id.subfunc = 1 id.callname = "func__str_compare" id.args = 2 @@ -3175,7 +3177,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_ARCSEC" +id.n = qb64prefix$ + "ARCSEC" id.subfunc = 1 id.callname = "func_arcsec" id.args = 1 @@ -3184,7 +3186,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ARCCSC" +id.n = qb64prefix$ + "ARCCSC" id.subfunc = 1 id.callname = "func_arccsc" id.args = 1 @@ -3193,7 +3195,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_ARCCOT" +id.n = qb64prefix$ + "ARCCOT" id.subfunc = 1 id.callname = "func_arccot" id.args = 1 @@ -3202,7 +3204,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_SECH" +id.n = qb64prefix$ + "SECH" id.subfunc = 1 id.callname = "func_sech" id.args = 1 @@ -3211,7 +3213,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_CSCH" +id.n = qb64prefix$ + "CSCH" id.subfunc = 1 id.callname = "func_csch" id.args = 1 @@ -3220,7 +3222,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_COTH" +id.n = qb64prefix$ + "COTH" id.subfunc = 1 id.callname = "func_coth" id.args = 1 @@ -3229,7 +3231,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_SEC" +id.n = qb64prefix$ + "SEC" id.subfunc = 1 id.callname = "func_sec" id.args = 1 @@ -3238,7 +3240,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_CSC" +id.n = qb64prefix$ + "CSC" id.subfunc = 1 id.callname = "func_csc" id.args = 1 @@ -3247,7 +3249,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_COT" +id.n = qb64prefix$ + "COT" id.subfunc = 1 id.callname = "func_cot" id.args = 1 @@ -3256,7 +3258,7 @@ id.ret = FLOATTYPE - ISPOINTER regid clearid -id.n = "_SCREENICON" +id.n = qb64prefix$ + "SCREENICON" id.subfunc = 1 id.callname = "func_screenicon" id.args = 0 @@ -3264,7 +3266,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_AUTODISPLAY" +id.n = qb64prefix$ + "AUTODISPLAY" id.subfunc = 1 id.callname = "func__autodisplay" id.args = 0 @@ -3272,7 +3274,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SHR" +id.n = qb64prefix$ + "SHR" id.subfunc = 1 id.callname = "func__shr" id.args = 2 @@ -3281,7 +3283,7 @@ id.ret = UINTEGER64TYPE - ISPOINTER regid clearid -id.n = "_SHL" +id.n = qb64prefix$ + "SHL" id.subfunc = 1 id.callname = "func__shl" id.args = 2 @@ -3290,7 +3292,7 @@ id.ret = UINTEGER64TYPE - ISPOINTER regid clearid -id.n = "_DEFLATE" +id.n = qb64prefix$ + "DEFLATE" id.Dependency=DEPENDENCY_ZLIB id.musthave = "$" id.subfunc = 1 @@ -3301,7 +3303,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_INFLATE" +id.n = qb64prefix$ + "INFLATE" id.Dependency=DEPENDENCY_ZLIB id.musthave = "$" id.subfunc = 1 @@ -3313,7 +3315,7 @@ id.ret = STRINGTYPE - ISPOINTER regid clearid -id.n = "_CINP" +id.n = qb64prefix$ + "CINP" id.subfunc = 1 id.callname = "func__cinp" id.args = 1 @@ -3323,7 +3325,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CAPSLOCK" +id.n = qb64prefix$ + "CAPSLOCK" id.subfunc = 1 id.callname = "func__capslock" id.args = 0 @@ -3331,7 +3333,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_SCROLLLOCK" +id.n = qb64prefix$ + "SCROLLLOCK" id.subfunc = 1 id.callname = "func__scrolllock" id.args = 0 @@ -3339,7 +3341,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_NUMLOCK" +id.n = qb64prefix$ + "NUMLOCK" id.subfunc = 1 id.callname = "func__numlock" id.args = 0 @@ -3347,34 +3349,34 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_CAPSLOCK" +id.n = qb64prefix$ + "CAPSLOCK" id.subfunc = 2 id.callname = "sub__capslock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|_TOGGLE}" +id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" regid clearid -id.n = "_SCROLLLOCK" +id.n = qb64prefix$ + "SCROLLLOCK" id.subfunc = 2 id.callname = "sub__scrolllock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|_TOGGLE}" +id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" regid clearid -id.n = "_NUMLOCK" +id.n = qb64prefix$ + "NUMLOCK" id.subfunc = 2 id.callname = "sub__numlock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|_TOGGLE}" +id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" regid clearid -id.n = "_CONSOLEFONT" +id.n = qb64prefix$ + "CONSOLEFONT" id.subfunc = 2 id.callname = "sub__consolefont" id.args = 2 @@ -3382,16 +3384,16 @@ id.arg = MKL$(STRINGTYPE - ISPOINTER) + MKL$(INTEGERTYPE - ISPOINTER) regid clearid -id.n = "_CONSOLECURSOR" +id.n = qb64prefix$ + "CONSOLECURSOR" id.subfunc = 2 id.callname = "sub__console_cursor" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{_SHOW|_HIDE}][,?]" +id.specialformat = "[{" + qb64prefix$ + "SHOW|" + qb64prefix$ + "HIDE}][,?]" regid clearid -id.n = "_CONSOLEINPUT" +id.n = qb64prefix$ + "CONSOLEINPUT" id.subfunc = 1 id.callname = "func__getconsoleinput" id.args = 0 @@ -3399,7 +3401,7 @@ id.ret = LONGTYPE - ISPOINTER regid clearid -id.n = "_READBIT" +id.n = qb64prefix$ + "READBIT" id.subfunc = 1 id.callname = "func__readbit" id.args = 2 @@ -3408,7 +3410,7 @@ id.ret = INTEGER64TYPE - ISPOINTER regid clearid -id.n = "_SETBIT" +id.n = qb64prefix$ + "SETBIT" id.subfunc = 1 id.callname = "func__setbit" id.args = 2 @@ -3417,7 +3419,7 @@ id.ret = UINTEGER64TYPE - ISPOINTER regid clearid -id.n = "_RESETBIT" +id.n = qb64prefix$ + "RESETBIT" id.subfunc = 1 id.callname = "func__resetbit" id.args = 2 @@ -3426,7 +3428,7 @@ id.ret = UINTEGER64TYPE - ISPOINTER regid clearid -id.n = "_TOGGLEBIT" +id.n = qb64prefix$ + "TOGGLEBIT" id.subfunc = 1 id.callname = "func__togglebit" id.args = 2 From 060284f9c39b4350e3a22268ef853689a086615f Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sat, 4 Jan 2020 18:41:15 -0300 Subject: [PATCH 02/12] Removes $COLOR metacommand until a fix for command line compilation comes. --- source/qb64.bas | 333 +----------------------------------------------- 1 file changed, 2 insertions(+), 331 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index 238955918..701061421 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -1413,7 +1413,6 @@ warningListItems = 0 lastWarningHeader = "" REDIM SHARED warning$(1000) uniquenumbern = 0 -ColorHack = 0 qb64prefix_set = 0 qb64prefix$ = "_" listOfKeywords$ = backupListOfKeywords$ @@ -1579,12 +1578,12 @@ DO layout = "" layoutok = 0 - IF ColorHack = 0 THEN linenumber = linenumber + 1 'don't update line number when mass assigning CONST values from $COLOR statement + linenumber = linenumber + 1 DO UNTIL linenumber < UBOUND(InValidLine) 'color information flag for each line REDIM _PRESERVE InValidLine(UBOUND(InValidLine) + 1000) AS _BIT LOOP - IF ColorHack = 0 THEN InValidLine(linenumber) = 0 + InValidLine(linenumber) = 0 IF LEN(wholeline$) THEN @@ -1717,9 +1716,6 @@ DO GOTO finishedlinepp END IF - IF temp$ = "$COLOR:0" THEN GOTO finishedlinepp - IF temp$ = "$COLOR:32" THEN GOTO finishedlinepp - cwholeline$ = wholeline$ wholeline$ = eleucase$(wholeline$) '********REMOVE THIS LINE LATER******** @@ -2387,7 +2383,6 @@ DO END IF 'layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ - IF ColorHack THEN RETURN GOTO finishedlinepp END IF @@ -2822,7 +2817,6 @@ lastLineReturn = 0 lastLine = 0 firstLine = 1 UserDefineCount = 6 -ColorHackSet = 0 FOR i = 0 TO constlast: constdefined(i) = 0: NEXT 'undefine constants @@ -3093,329 +3087,6 @@ DO GOTO finishednonexec 'we don't check for anything inside lines that we've marked for skipping END IF - - IF a3u$ = "$COLOR:0" THEN - IF NOT ColorHackSet THEN - ColorHackSet = -1 - ColorHack = -1 - oldlinenumber = linenumber - wholeline$ = "CONST Black~%% = 0": GOSUB ideprepass - wholeline$ = "CONST Blue~%% = 1": GOSUB ideprepass - wholeline$ = "CONST Green~%% = 2": GOSUB ideprepass - wholeline$ = "CONST Cyan~%% = 3": GOSUB ideprepass - wholeline$ = "CONST Red~%% = 4": GOSUB ideprepass - wholeline$ = "CONST Magenta~%% = 5": GOSUB ideprepass - wholeline$ = "CONST Brown~%% = 6": GOSUB ideprepass - wholeline$ = "CONST White~%% = 7": GOSUB ideprepass - wholeline$ = "CONST Gray~%% = 8": GOSUB ideprepass - wholeline$ = "CONST LightBlue~%% = 9": GOSUB ideprepass - wholeline$ = "CONST LightGreen~%% = 10": GOSUB ideprepass - wholeline$ = "CONST LightCyan~%% = 11": GOSUB ideprepass - wholeline$ = "CONST LightRed~%% = 12": GOSUB ideprepass - wholeline$ = "CONST LightMagenta~%% = 13": GOSUB ideprepass - wholeline$ = "CONST Yellow~%% = 14": GOSUB ideprepass - wholeline$ = "CONST BrightWhite~%% = 15": GOSUB ideprepass - wholeline$ = "CONST Blink~%% = 16": GOSUB ideprepass - ColorHack = 0 - layout$ = "$COLOR:0" - layoutdone = 1 - linenumber = oldlinenumber - GOTO ideret4 - ELSE - a$ = "$COLOR can only be set once" - GOTO errmes - END IF - END IF - - IF a3u$ = "$COLOR:32" THEN - IF NOT ColorHackSet THEN - ColorHackSet = -1 - ColorHack = -1 - oldlinenumber = linenumber - wholeline$ = "CONST AliceBlue~& = 4293982463": GOSUB ideprepass - wholeline$ = "CONST Almond~& = 4293910221": GOSUB ideprepass - wholeline$ = "CONST AntiqueBrass~& = 4291663221": GOSUB ideprepass - wholeline$ = "CONST AntiqueWhite~& = 4294634455": GOSUB ideprepass - wholeline$ = "CONST Apricot~& = 4294826421": GOSUB ideprepass - wholeline$ = "CONST Aqua~& = 4278255615": GOSUB ideprepass - wholeline$ = "CONST Aquamarine~& = 4286578644": GOSUB ideprepass - wholeline$ = "CONST Asparagus~& = 4287080811": GOSUB ideprepass - wholeline$ = "CONST AtomicTangerine~& = 4294943860": GOSUB ideprepass - wholeline$ = "CONST Azure~& = 4293984255": GOSUB ideprepass - wholeline$ = "CONST BananaMania~& = 4294633397": GOSUB ideprepass - wholeline$ = "CONST Beaver~& = 4288643440": GOSUB ideprepass - wholeline$ = "CONST Beige~& = 4294309340": GOSUB ideprepass - wholeline$ = "CONST Bisque~& = 4294960324": GOSUB ideprepass - wholeline$ = "CONST Bittersweet~& = 4294802542": GOSUB ideprepass - wholeline$ = "CONST Black~& = 4278190080": GOSUB ideprepass - wholeline$ = "CONST BlanchedAlmond~& = 4294962125": GOSUB ideprepass - wholeline$ = "CONST BlizzardBlue~& = 4289521134": GOSUB ideprepass - wholeline$ = "CONST Blue~& = 4278190335": GOSUB ideprepass - wholeline$ = "CONST BlueBell~& = 4288848592": GOSUB ideprepass - wholeline$ = "CONST BlueGray~& = 4284914124": GOSUB ideprepass - wholeline$ = "CONST BlueGreen~& = 4279081146": GOSUB ideprepass - wholeline$ = "CONST BlueViolet~& = 4287245282": GOSUB ideprepass - wholeline$ = "CONST Blush~& = 4292763011": GOSUB ideprepass - wholeline$ = "CONST BrickRed~& = 4291510612": GOSUB ideprepass - wholeline$ = "CONST Brown~& = 4289014314": GOSUB ideprepass - wholeline$ = "CONST BurlyWood~& = 4292786311": GOSUB ideprepass - wholeline$ = "CONST BurntOrange~& = 4294934345": GOSUB ideprepass - wholeline$ = "CONST BurntSienna~& = 4293557853": GOSUB ideprepass - wholeline$ = "CONST CadetBlue~& = 4284456608": GOSUB ideprepass - wholeline$ = "CONST Canary~& = 4294967193": GOSUB ideprepass - wholeline$ = "CONST CaribbeanGreen~& = 4280079266": GOSUB ideprepass - wholeline$ = "CONST CarnationPink~& = 4294945484": GOSUB ideprepass - wholeline$ = "CONST Cerise~& = 4292691090": GOSUB ideprepass - wholeline$ = "CONST Cerulean~& = 4280134870": GOSUB ideprepass - wholeline$ = "CONST ChartReuse~& = 4286578432": GOSUB ideprepass - wholeline$ = "CONST Chestnut~& = 4290534744": GOSUB ideprepass - wholeline$ = "CONST Chocolate~& = 4291979550": GOSUB ideprepass - wholeline$ = "CONST Copper~& = 4292711541": GOSUB ideprepass - wholeline$ = "CONST Coral~& = 4294934352": GOSUB ideprepass - wholeline$ = "CONST Cornflower~& = 4288335595": GOSUB ideprepass - wholeline$ = "CONST CornflowerBlue~& = 4284782061": GOSUB ideprepass - wholeline$ = "CONST Cornsilk~& = 4294965468": GOSUB ideprepass - wholeline$ = "CONST CottonCandy~& = 4294950105": GOSUB ideprepass - wholeline$ = "CONST CrayolaAquamarine~& = 4286110690": GOSUB ideprepass - wholeline$ = "CONST CrayolaBlue~& = 4280251902": GOSUB ideprepass - wholeline$ = "CONST CrayolaBlueViolet~& = 4285753021": GOSUB ideprepass - wholeline$ = "CONST CrayolaBrown~& = 4290013005": GOSUB ideprepass - wholeline$ = "CONST CrayolaCadetBlue~& = 4289771462": GOSUB ideprepass - wholeline$ = "CONST CrayolaForestGreen~& = 4285378177": GOSUB ideprepass - wholeline$ = "CONST CrayolaGold~& = 4293379735": GOSUB ideprepass - wholeline$ = "CONST CrayolaGoldenrod~& = 4294760821": GOSUB ideprepass - wholeline$ = "CONST CrayolaGray~& = 4287992204": GOSUB ideprepass - wholeline$ = "CONST CrayolaGreen~& = 4280069240": GOSUB ideprepass - wholeline$ = "CONST CrayolaGreenYellow~& = 4293978257": GOSUB ideprepass - wholeline$ = "CONST CrayolaIndigo~& = 4284315339": GOSUB ideprepass - wholeline$ = "CONST CrayolaLavender~& = 4294751445": GOSUB ideprepass - wholeline$ = "CONST CrayolaMagenta~& = 4294337711": GOSUB ideprepass - wholeline$ = "CONST CrayolaMaroon~& = 4291311706": GOSUB ideprepass - wholeline$ = "CONST CrayolaMidnightBlue~& = 4279912566": GOSUB ideprepass - wholeline$ = "CONST CrayolaOrange~& = 4294931768": GOSUB ideprepass - wholeline$ = "CONST CrayolaOrangeRed~& = 4294912811": GOSUB ideprepass - wholeline$ = "CONST CrayolaOrchid~& = 4293306583": GOSUB ideprepass - wholeline$ = "CONST CrayolaPlum~& = 4287513989": GOSUB ideprepass - wholeline$ = "CONST CrayolaRed~& = 4293795917": GOSUB ideprepass - wholeline$ = "CONST CrayolaSalmon~& = 4294941610": GOSUB ideprepass - wholeline$ = "CONST CrayolaSeaGreen~& = 4288668351": GOSUB ideprepass - wholeline$ = "CONST CrayolaSilver~& = 4291675586": GOSUB ideprepass - wholeline$ = "CONST CrayolaSkyBlue~& = 4286634731": GOSUB ideprepass - wholeline$ = "CONST CrayolaSpringGreen~& = 4293716670": GOSUB ideprepass - wholeline$ = "CONST CrayolaTann~& = 4294616940": GOSUB ideprepass - wholeline$ = "CONST CrayolaThistle~& = 4293642207": GOSUB ideprepass - wholeline$ = "CONST CrayolaViolet~& = 4287786670": GOSUB ideprepass - wholeline$ = "CONST CrayolaYellow~& = 4294764675": GOSUB ideprepass - wholeline$ = "CONST CrayolaYellowGreen~& = 4291158916": GOSUB ideprepass - wholeline$ = "CONST Crimson~& = 4292613180": GOSUB ideprepass - wholeline$ = "CONST Cyan~& = 4278255615": GOSUB ideprepass - wholeline$ = "CONST Dandelion~& = 4294826861": GOSUB ideprepass - wholeline$ = "CONST DarkBlue~& = 4278190219": GOSUB ideprepass - wholeline$ = "CONST DarkCyan~& = 4278225803": GOSUB ideprepass - wholeline$ = "CONST DarkGoldenRod~& = 4290283019": GOSUB ideprepass - wholeline$ = "CONST DarkGray~& = 4289309097": GOSUB ideprepass - wholeline$ = "CONST DarkGreen~& = 4278215680": GOSUB ideprepass - wholeline$ = "CONST DarkKhaki~& = 4290623339": GOSUB ideprepass - wholeline$ = "CONST DarkMagenta~& = 4287299723": GOSUB ideprepass - wholeline$ = "CONST DarkOliveGreen~& = 4283788079": GOSUB ideprepass - wholeline$ = "CONST DarkOrange~& = 4294937600": GOSUB ideprepass - wholeline$ = "CONST DarkOrchid~& = 4288230092": GOSUB ideprepass - wholeline$ = "CONST DarkRed~& = 4287299584": GOSUB ideprepass - wholeline$ = "CONST DarkSalmon~& = 4293498490": GOSUB ideprepass - wholeline$ = "CONST DarkSeaGreen~& = 4287609999": GOSUB ideprepass - wholeline$ = "CONST DarkSlateBlue~& = 4282924427": GOSUB ideprepass - wholeline$ = "CONST DarkSlateGray~& = 4281290575": GOSUB ideprepass - wholeline$ = "CONST DarkTurquoise~& = 4278243025": GOSUB ideprepass - wholeline$ = "CONST DarkViolet~& = 4287889619": GOSUB ideprepass - wholeline$ = "CONST DeepPink~& = 4294907027": GOSUB ideprepass - wholeline$ = "CONST DeepSkyBlue~& = 4278239231": GOSUB ideprepass - wholeline$ = "CONST Denim~& = 4281035972": GOSUB ideprepass - wholeline$ = "CONST DesertSand~& = 4293905848": GOSUB ideprepass - wholeline$ = "CONST DimGray~& = 4285098345": GOSUB ideprepass - wholeline$ = "CONST DodgerBlue~& = 4280193279": GOSUB ideprepass - wholeline$ = "CONST Eggplant~& = 4285419872": GOSUB ideprepass - wholeline$ = "CONST ElectricLime~& = 4291755805": GOSUB ideprepass - wholeline$ = "CONST Fern~& = 4285643896": GOSUB ideprepass - wholeline$ = "CONST FireBrick~& = 4289864226": GOSUB ideprepass - wholeline$ = "CONST Floralwhite~& = 4294966000": GOSUB ideprepass - wholeline$ = "CONST ForestGreen~& = 4280453922": GOSUB ideprepass - wholeline$ = "CONST Fuchsia~& = 4290995397": GOSUB ideprepass - wholeline$ = "CONST FuzzyWuzzy~& = 4291585638": GOSUB ideprepass - wholeline$ = "CONST Gainsboro~& = 4292664540": GOSUB ideprepass - wholeline$ = "CONST GhostWhite~& = 4294506751": GOSUB ideprepass - wholeline$ = "CONST Gold~& = 4294956800": GOSUB ideprepass - wholeline$ = "CONST GoldenRod~& = 4292519200": GOSUB ideprepass - wholeline$ = "CONST GrannySmithApple~& = 4289258656": GOSUB ideprepass - wholeline$ = "CONST Gray~& = 4286611584": GOSUB ideprepass - wholeline$ = "CONST Green~& = 4278222848": GOSUB ideprepass - wholeline$ = "CONST GreenBlue~& = 4279329972": GOSUB ideprepass - wholeline$ = "CONST GreenYellow~& = 4289593135": GOSUB ideprepass - wholeline$ = "CONST HoneyDew~& = 4293984240": GOSUB ideprepass - wholeline$ = "CONST HotMagenta~& = 4294909390": GOSUB ideprepass - wholeline$ = "CONST HotPink~& = 4294928820": GOSUB ideprepass - wholeline$ = "CONST Inchworm~& = 4289915997": GOSUB ideprepass - wholeline$ = "CONST IndianRed~& = 4291648604": GOSUB ideprepass - wholeline$ = "CONST Indigo~& = 4283105410": GOSUB ideprepass - wholeline$ = "CONST Ivory~& = 4294967280": GOSUB ideprepass - wholeline$ = "CONST JazzberryJam~& = 4291442535": GOSUB ideprepass - wholeline$ = "CONST JungleGreen~& = 4282101903": GOSUB ideprepass - wholeline$ = "CONST Khaki~& = 4293977740": GOSUB ideprepass - wholeline$ = "CONST LaserLemon~& = 4294901282": GOSUB ideprepass - wholeline$ = "CONST Lavender~& = 4293322490": GOSUB ideprepass - wholeline$ = "CONST LavenderBlush~& = 4294963445": GOSUB ideprepass - wholeline$ = "CONST LawnGreen~& = 4286381056": GOSUB ideprepass - wholeline$ = "CONST LemonChiffon~& = 4294965965": GOSUB ideprepass - wholeline$ = "CONST LemonYellow~& = 4294964303": GOSUB ideprepass - wholeline$ = "CONST LightBlue~& = 4289583334": GOSUB ideprepass - wholeline$ = "CONST LightCoral~& = 4293951616": GOSUB ideprepass - wholeline$ = "CONST LightCyan~& = 4292935679": GOSUB ideprepass - wholeline$ = "CONST LightGoldenRodYellow~& = 4294638290": GOSUB ideprepass - wholeline$ = "CONST LightGray~& = 4292072403": GOSUB ideprepass - wholeline$ = "CONST LightGreen~& = 4287688336": GOSUB ideprepass - wholeline$ = "CONST LightPink~& = 4294948545": GOSUB ideprepass - wholeline$ = "CONST LightSalmon~& = 4294942842": GOSUB ideprepass - wholeline$ = "CONST LightSeaGreen~& = 4280332970": GOSUB ideprepass - wholeline$ = "CONST LightSkyBlue~& = 4287090426": GOSUB ideprepass - wholeline$ = "CONST LightSlateGray~& = 4286023833": GOSUB ideprepass - wholeline$ = "CONST LightSteelBlue~& = 4289774814": GOSUB ideprepass - wholeline$ = "CONST LightYellow~& = 4294967264": GOSUB ideprepass - wholeline$ = "CONST Lime~& = 4278255360": GOSUB ideprepass - wholeline$ = "CONST LimeGreen~& = 4281519410": GOSUB ideprepass - wholeline$ = "CONST Linen~& = 4294635750": GOSUB ideprepass - wholeline$ = "CONST MacaroniAndCheese~& = 4294950280": GOSUB ideprepass - wholeline$ = "CONST Magenta~& = 4294902015": GOSUB ideprepass - wholeline$ = "CONST MagicMint~& = 4289392849": GOSUB ideprepass - wholeline$ = "CONST Mahogany~& = 4291643980": GOSUB ideprepass - wholeline$ = "CONST Maize~& = 4293775772": GOSUB ideprepass - wholeline$ = "CONST Manatee~& = 4288125610": GOSUB ideprepass - wholeline$ = "CONST MangoTango~& = 4294935107": GOSUB ideprepass - wholeline$ = "CONST Maroon~& = 4286578688": GOSUB ideprepass - wholeline$ = "CONST Mauvelous~& = 4293892266": GOSUB ideprepass - wholeline$ = "CONST MediumAquamarine~& = 4284927402": GOSUB ideprepass - wholeline$ = "CONST MediumBlue~& = 4278190285": GOSUB ideprepass - wholeline$ = "CONST MediumOrchid~& = 4290401747": GOSUB ideprepass - wholeline$ = "CONST MediumPurple~& = 4287852763": GOSUB ideprepass - wholeline$ = "CONST MediumSeaGreen~& = 4282168177": GOSUB ideprepass - wholeline$ = "CONST MediumSlateBlue~& = 4286277870": GOSUB ideprepass - wholeline$ = "CONST MediumSpringGreen~& = 4278254234": GOSUB ideprepass - wholeline$ = "CONST MediumTurquoise~& = 4282962380": GOSUB ideprepass - wholeline$ = "CONST MediumVioletRed~& = 4291237253": GOSUB ideprepass - wholeline$ = "CONST Melon~& = 4294818996": GOSUB ideprepass - wholeline$ = "CONST MidnightBlue~& = 4279834992": GOSUB ideprepass - wholeline$ = "CONST MintCream~& = 4294311930": GOSUB ideprepass - wholeline$ = "CONST MistyRose~& = 4294960353": GOSUB ideprepass - wholeline$ = "CONST Moccasin~& = 4294960309": GOSUB ideprepass - wholeline$ = "CONST MountainMeadow~& = 4281383567": GOSUB ideprepass - wholeline$ = "CONST Mulberry~& = 4291120012": GOSUB ideprepass - wholeline$ = "CONST NavajoWhite~& = 4294958765": GOSUB ideprepass - wholeline$ = "CONST Navy~& = 4278190208": GOSUB ideprepass - wholeline$ = "CONST NavyBlue~& = 4279858386": GOSUB ideprepass - wholeline$ = "CONST NeonCarrot~& = 4294943555": GOSUB ideprepass - wholeline$ = "CONST OldLace~& = 4294833638": GOSUB ideprepass - wholeline$ = "CONST Olive~& = 4286611456": GOSUB ideprepass - wholeline$ = "CONST OliveDrab~& = 4285238819": GOSUB ideprepass - wholeline$ = "CONST OliveGreen~& = 4290426988": GOSUB ideprepass - wholeline$ = "CONST Orange~& = 4294944000": GOSUB ideprepass - wholeline$ = "CONST OrangeRed~& = 4294919424": GOSUB ideprepass - wholeline$ = "CONST OrangeYellow~& = 4294497640": GOSUB ideprepass - wholeline$ = "CONST Orchid~& = 4292505814": GOSUB ideprepass - wholeline$ = "CONST OuterSpace~& = 4282468940": GOSUB ideprepass - wholeline$ = "CONST OutrageousOrange~& = 4294929994": GOSUB ideprepass - wholeline$ = "CONST PacificBlue~& = 4280068553": GOSUB ideprepass - wholeline$ = "CONST PaleGoldenRod~& = 4293847210": GOSUB ideprepass - wholeline$ = "CONST PaleGreen~& = 4288215960": GOSUB ideprepass - wholeline$ = "CONST PaleTurquoise~& = 4289720046": GOSUB ideprepass - wholeline$ = "CONST PaleVioletRed~& = 4292571283": GOSUB ideprepass - wholeline$ = "CONST PapayaWhip~& = 4294963157": GOSUB ideprepass - wholeline$ = "CONST Peach~& = 4294954923": GOSUB ideprepass - wholeline$ = "CONST PeachPuff~& = 4294957753": GOSUB ideprepass - wholeline$ = "CONST Periwinkle~& = 4291154150": GOSUB ideprepass - wholeline$ = "CONST Peru~& = 4291659071": GOSUB ideprepass - wholeline$ = "CONST PiggyPink~& = 4294827494": GOSUB ideprepass - wholeline$ = "CONST PineGreen~& = 4279599224": GOSUB ideprepass - wholeline$ = "CONST Pink~& = 4294951115": GOSUB ideprepass - wholeline$ = "CONST PinkFlamingo~& = 4294735101": GOSUB ideprepass - wholeline$ = "CONST PinkSherbet~& = 4294414247": GOSUB ideprepass - wholeline$ = "CONST Plum~& = 4292714717": GOSUB ideprepass - wholeline$ = "CONST PowderBlue~& = 4289781990": GOSUB ideprepass - wholeline$ = "CONST Purple~& = 4286578816": GOSUB ideprepass - wholeline$ = "CONST PurpleHeart~& = 4285809352": GOSUB ideprepass - wholeline$ = "CONST PurpleMountainsMajesty~& = 4288512442": GOSUB ideprepass - wholeline$ = "CONST PurplePizzazz~& = 4294856410": GOSUB ideprepass - wholeline$ = "CONST RadicalRed~& = 4294920556": GOSUB ideprepass - wholeline$ = "CONST RawSienna~& = 4292250201": GOSUB ideprepass - wholeline$ = "CONST RawUmber~& = 4285614883": GOSUB ideprepass - wholeline$ = "CONST RazzleDazzleRose~& = 4294920400": GOSUB ideprepass - wholeline$ = "CONST Razzmatazz~& = 4293076331": GOSUB ideprepass - wholeline$ = "CONST Red~& = 4294901760": GOSUB ideprepass - wholeline$ = "CONST RedOrange~& = 4294923081": GOSUB ideprepass - wholeline$ = "CONST RedViolet~& = 4290790543": GOSUB ideprepass - wholeline$ = "CONST RobinsEggBlue~& = 4280274635": GOSUB ideprepass - wholeline$ = "CONST RosyBrown~& = 4290547599": GOSUB ideprepass - wholeline$ = "CONST RoyalBlue~& = 4282477025": GOSUB ideprepass - wholeline$ = "CONST RoyalPurple~& = 4286075305": GOSUB ideprepass - wholeline$ = "CONST SaddleBrown~& = 4287317267": GOSUB ideprepass - wholeline$ = "CONST Salmon~& = 4294606962": GOSUB ideprepass - wholeline$ = "CONST SandyBrown~& = 4294222944": GOSUB ideprepass - wholeline$ = "CONST Scarlet~& = 4294715463": GOSUB ideprepass - wholeline$ = "CONST ScreaminGreen~& = 4285988730": GOSUB ideprepass - wholeline$ = "CONST SeaGreen~& = 4281240407": GOSUB ideprepass - wholeline$ = "CONST SeaShell~& = 4294964718": GOSUB ideprepass - wholeline$ = "CONST Sepia~& = 4289030479": GOSUB ideprepass - wholeline$ = "CONST Shadow~& = 4287265117": GOSUB ideprepass - wholeline$ = "CONST Shamrock~& = 4282764962": GOSUB ideprepass - wholeline$ = "CONST ShockingPink~& = 4294672125": GOSUB ideprepass - wholeline$ = "CONST Sienna~& = 4288696877": GOSUB ideprepass - wholeline$ = "CONST Silver~& = 4290822336": GOSUB ideprepass - wholeline$ = "CONST SkyBlue~& = 4287090411": GOSUB ideprepass - wholeline$ = "CONST SlateBlue~& = 4285160141": GOSUB ideprepass - wholeline$ = "CONST SlateGray~& = 4285563024": GOSUB ideprepass - wholeline$ = "CONST Snow~& = 4294966010": GOSUB ideprepass - wholeline$ = "CONST SpringGreen~& = 4278255487": GOSUB ideprepass - wholeline$ = "CONST SteelBlue~& = 4282811060": GOSUB ideprepass - wholeline$ = "CONST Sunglow~& = 4294954824": GOSUB ideprepass - wholeline$ = "CONST SunsetOrange~& = 4294794835": GOSUB ideprepass - wholeline$ = "CONST Tann~& = 4291998860": GOSUB ideprepass - wholeline$ = "CONST Teal~& = 4278222976": GOSUB ideprepass - wholeline$ = "CONST TealBlue~& = 4279805877": GOSUB ideprepass - wholeline$ = "CONST Thistle~& = 4292394968": GOSUB ideprepass - wholeline$ = "CONST TickleMePink~& = 4294740396": GOSUB ideprepass - wholeline$ = "CONST Timberwolf~& = 4292597714": GOSUB ideprepass - wholeline$ = "CONST Tomato~& = 4294927175": GOSUB ideprepass - wholeline$ = "CONST TropicalRainForest~& = 4279730285": GOSUB ideprepass - wholeline$ = "CONST Tumbleweed~& = 4292782728": GOSUB ideprepass - wholeline$ = "CONST Turquoise~& = 4282441936": GOSUB ideprepass - wholeline$ = "CONST TurquoiseBlue~& = 4286045671": GOSUB ideprepass - wholeline$ = "CONST UnmellowYellow~& = 4294967142": GOSUB ideprepass - wholeline$ = "CONST Violet~& = 4293821166": GOSUB ideprepass - wholeline$ = "CONST VioletBlue~& = 4281486002": GOSUB ideprepass - wholeline$ = "CONST VioletRed~& = 4294398868": GOSUB ideprepass - wholeline$ = "CONST VividTangerine~& = 4294942857": GOSUB ideprepass - wholeline$ = "CONST VividViolet~& = 4287582365": GOSUB ideprepass - wholeline$ = "CONST Wheat~& = 4294303411": GOSUB ideprepass - wholeline$ = "CONST White~& = 4294967295": GOSUB ideprepass - wholeline$ = "CONST Whitesmoke~& = 4294309365": GOSUB ideprepass - wholeline$ = "CONST WildBlueYonder~& = 4288851408": GOSUB ideprepass - wholeline$ = "CONST WildStrawberry~& = 4294919076": GOSUB ideprepass - wholeline$ = "CONST WildWatermelon~& = 4294732933": GOSUB ideprepass - wholeline$ = "CONST Wisteria~& = 4291667166": GOSUB ideprepass - wholeline$ = "CONST Yellow~& = 4294967040": GOSUB ideprepass - wholeline$ = "CONST YellowGreen~& = 4288335154": GOSUB ideprepass - wholeline$ = "CONST YellowOrange~& = 4294946370": GOSUB ideprepass - ColorHack = 0 - layout$ = "$COLOR:32" - layoutdone = 1 - linenumber = oldlinenumber - GOTO ideret4 - ELSE - a$ = "$COLOR can only be set once" - GOTO errmes - END IF - END IF - - - - IF a3u$ = "$VIRTUALKEYBOARD:ON" THEN 'Deprecated; does nothing. layout$ = "$VIRTUALKEYBOARD:ON" From fed579852333fc7310adf06bd067959e68861886 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sun, 5 Jan 2020 19:31:46 -0300 Subject: [PATCH 03/12] Moves $NOPREFIX setting to prepass, so TYPEs are properly affected. + - Fixes FUNCTION dim2 and FUNCTION typname2typ& to properly deal with variable types with no suffix. - Restores Steve's Set_OrderOfOperations and EvaluateNumbers$ until a fixed version can be provided and tweaked. --- source/qb64.bas | 168 +++++++++++++++++++++++------------------------- 1 file changed, 82 insertions(+), 86 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index 701061421..6f0a3369a 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -24,6 +24,7 @@ DEFLNG A-Z REDIM SHARED OName(0) AS STRING 'Operation Name REDIM SHARED PL(0) AS INTEGER 'Priority Level DIM SHARED QuickReturn AS INTEGER +Set_OrderOfOperations REDIM EveryCaseSet(100), SelectCaseCounter AS _UNSIGNED LONG DIM ExecLevel(255), ExecCounter AS INTEGER @@ -1535,10 +1536,8 @@ IF idemode = 0 THEN qberrorhappened = 0 END IF -Set_OrderOfOperations reginternal - OPEN tmpdir$ + "global.txt" FOR OUTPUT AS #18 IF iderecompile THEN @@ -1554,7 +1553,7 @@ lineinput3load sourcefile$ DO - stevewashere: '### STEVE EDIT FOR CONST EXPANSION 10/11/2013 + '### STEVE EDIT FOR CONST EXPANSION 10/11/2013 wholeline$ = lineinput3$ IF wholeline$ = CHR$(13) THEN EXIT DO @@ -1587,9 +1586,32 @@ DO IF LEN(wholeline$) THEN + IF UCASE$(_TRIM$(wholeline$)) = "$NOPREFIX" THEN + qb64prefix$ = "" + qb64prefix_set = 1 + + 're-add internal keywords without the "_" prefix + reginternal + + f = HASHFLAG_TYPE + HASHFLAG_RESERVED + HashAdd qb64prefix$ + "UNSIGNED", f, 0 + HashAdd qb64prefix$ + "BIT", f, 0 + HashAdd qb64prefix$ + "BYTE", f, 0 + HashAdd qb64prefix$ + "INTEGER64", f, 0 + HashAdd qb64prefix$ + "OFFSET", f, 0 + HashAdd qb64prefix$ + "FLOAT", f, 0 + + f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX + HashAdd qb64prefix$ + "EXPLICIT", f, 0 + + listOfKeywords$ = listOfKeywords$ + listOfKeywordsWithoutPrefix$ + GOTO finishedlinepp + END IF + wholeline$ = lineformat(wholeline$) IF Error_Happened THEN GOTO errmes + temp$ = LTRIM$(RTRIM$(UCASE$(wholestv$))) @@ -1930,7 +1952,7 @@ DO - stevewashere2: ' ### STEVE EDIT ON 10/11/2013 (Const Expansion) + ' ### STEVE EDIT ON 10/11/2013 (Const Expansion) IF n >= 1 AND firstelement$ = "CONST" THEN @@ -3087,6 +3109,12 @@ DO GOTO finishednonexec 'we don't check for anything inside lines that we've marked for skipping END IF + IF a3u$ = "$NOPREFIX" THEN + 'already set in prepass + layout$ = "$NOPREFIX" + GOTO finishednonexec + END IF + IF a3u$ = "$VIRTUALKEYBOARD:ON" THEN 'Deprecated; does nothing. layout$ = "$VIRTUALKEYBOARD:ON" @@ -3137,38 +3165,6 @@ DO GOTO finishednonexec END IF - IF LEFT$(a3u$, 9) = "$NOPREFIX" THEN - IF qb64prefix_set = 0 THEN - IF linenumber > 1 THEN - a$ = "$NOPREFIX must be set in the first line": GOTO errmes - END IF - layout$ = "$NOPREFIX" - qb64prefix$ = "" - qb64prefix_set = 1 - 're-add internal keywords without the "_" prefix - - Set_OrderOfOperations - IF UseGL THEN gl_include_content - reginternal - - f = HASHFLAG_TYPE + HASHFLAG_RESERVED - HashAdd qb64prefix$ + "UNSIGNED", f, 0 - HashAdd qb64prefix$ + "BIT", f, 0 - HashAdd qb64prefix$ + "BYTE", f, 0 - HashAdd qb64prefix$ + "INTEGER64", f, 0 - HashAdd qb64prefix$ + "OFFSET", f, 0 - HashAdd qb64prefix$ + "FLOAT", f, 0 - - f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX - HashAdd qb64prefix$ + "EXPLICIT", f, 0 - - listOfKeywords$ = listOfKeywordsWithoutPrefix$ - GOTO finishednonexec - ELSE - a$ = "$NOPREFIX can only be set once": GOTO errmes - END IF - END IF - IF a3u$ = "$SCREENHIDE" THEN layout$ = "$SCREENHIDE" ScreenHide = 1 @@ -13715,10 +13711,10 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) 'check if _UNSIGNED was specified unsgn = 0 - IF LEFT$(typ$, 10 + (qb64prefix_set = 1)) = qb64prefix$ + "UNSIGNED " THEN + IF LEFT$(typ$, 10) = "_UNSIGNED " OR (LEFT$(typ$, 9) = "UNSIGNED " AND qb64prefix_set = 1) THEN unsgn = 1 - typ$ = RIGHT$(typ$, LEN(typ$) - (10 + (qb64prefix_set = 1))) - IF LEN(typ$) = 0 THEN Give_Error "Expected more type information after _UNSIGNED!": EXIT FUNCTION + typ$ = MID$(typ$, INSTR(typ$, CHR$(32)) + 1) + IF LEN(typ$) = 0 THEN Give_Error "Expected more type information after " + qb64prefix$ + "UNSIGNED!": EXIT FUNCTION END IF n$ = "" 'n$ is assumed to be "" after branching into the code for each type @@ -13963,10 +13959,10 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF LEFT$(typ$, 4 + (qb64prefix_set = 1)) = qb64prefix$ + "BIT" THEN - IF LEN(typ$) > (4 + (qb64prefix_set = 1)) THEN - IF LEFT$(typ$, 7 + (qb64prefix_set = 1)) <> qb64prefix$ + "BIT * " THEN Give_Error "Expected " + qb64prefix$ + "BIT * number": EXIT FUNCTION - c$ = RIGHT$(typ$, LEN(typ$) - (7 + (qb64prefix_set = 1))) + IF LEFT$(typ$, 4) = "_BIT" OR (LEFT$(typ$, 3) = "BIT" AND qb64prefix_set = 1) THEN + IF (LEFT$(typ$, 4) = "_BIT" AND LEN(typ$) > 4) OR (LEFT$(typ$, 3) = "BIT" AND LEN(typ$) > 3) THEN + IF LEFT$(typ$, 7) <> "_BIT * " AND LEFT$(typ$, 6) <> "BIT * " THEN Give_Error "Expected " + qb64prefix$ + "BIT * number": EXIT FUNCTION + c$ = MID$(typ$, INSTR(typ$, " * ") + 4) IF isuinteger(c$) = 0 THEN Give_Error "Number expected after *": EXIT FUNCTION IF LEN(c$) > 2 THEN Give_Error "Too many characters in number after *": EXIT FUNCTION bits = VAL(c$) @@ -14066,7 +14062,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = qb64prefix$ + "BYTE" THEN + IF typ$ = "_BYTE" OR (typ$ = "BYTE" AND qb64prefix_set = 1) THEN ct$ = "int8" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "BYTE_" + varname$ @@ -14240,7 +14236,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) - IF typ$ = qb64prefix$ + "OFFSET" THEN + IF typ$ = "_OFFSET" OR (typ$ = "OFFSET" AND qb64prefix_set = 1) THEN ct$ = "ptrszint" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "OFFSET_" + varname$ @@ -14404,7 +14400,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = qb64prefix$ + "INTEGER64" THEN + IF typ$ = "_INTEGER64" OR (typ$ = "INTEGER64" AND qb64prefix_set = 1) THEN ct$ = "int64" IF unsgn THEN n$ = "U": ct$ = "u" + ct$ n$ = n$ + "INTEGER64_" + varname$ @@ -14654,7 +14650,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) GOTO dim2exitfunc END IF - IF typ$ = qb64prefix$ + "FLOAT" THEN + IF typ$ = "_FLOAT" OR (typ$ = "FLOAT" AND qb64prefix_set = 1) THEN ct$ = "long double" n$ = n$ + "FLOAT_" + varname$ IF elements$ <> "" THEN @@ -21839,7 +21835,7 @@ FUNCTION typname2typ& (t2$) IF t$ = "_FLOAT" OR (t$ = "FLOAT" AND qb64prefix_set = 1) THEN typname2typ& = FLOATTYPE: EXIT FUNCTION IF LEFT$(t$, 10) = "_UNSIGNED " OR (LEFT$(t$, 9) = "UNSIGNED " AND qb64prefix_set = 1) THEN u = 1 - t$ = MID$(t$, INSTR(t$, CHR$(32))) + t$ = MID$(t$, INSTR(t$, CHR$(32)) + 1) END IF IF LEFT$(t$, 4) = "_BIT" OR (LEFT$(t$, 3) = "BIT" AND qb64prefix_set = 1) THEN IF t$ = "_BIT" OR (t$ = "BIT" AND qb64prefix_set = 1) THEN @@ -23642,28 +23638,28 @@ SUB Set_OrderOfOperations 'OName ended up becoming the name of our commands, as I modified things.... Go figure! LOL! 'Constants get evaluated first, with a Priority Level of 1 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "PI" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_PI" REDIM _PRESERVE PL(i): PL(i) = 1 'I'm not certain where exactly percentages should go. They kind of seem like a special case to me. COS10% should be COS.1 I'd think... 'I'm putting it here for now, and if anyone knows someplace better for it in our order of operations, let me know. i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "%" REDIM _PRESERVE PL(i): PL(i) = 5 'Then Functions with PL 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ACOS" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ACOS" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ASIN" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ASIN" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCSEC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCSEC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCCSC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCCSC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ARCCOT" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ARCCOT" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "SECH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_SECH" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "CSCH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_CSCH" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "COTH" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_COTH" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "COS" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -23677,17 +23673,17 @@ SUB Set_OrderOfOperations REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ATN" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "D2R" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_D2R" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "D2G" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_D2G" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "R2D" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_R2D" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "R2G" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_R2G" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "G2D" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_G2D" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "G2R" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_G2R" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ABS" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -23695,15 +23691,15 @@ SUB Set_OrderOfOperations REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "INT" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "ROUND" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_ROUND" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "FIX" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "SEC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_SEC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "CSC" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_CSC" REDIM _PRESERVE PL(i): PL(i) = 10 - i = i + 1: REDIM _PRESERVE OName(i): OName(i) = qb64prefix$ + "COT" + i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "_COT" REDIM _PRESERVE PL(i): PL(i) = 10 i = i + 1: REDIM _PRESERVE OName(i): OName(i) = "ASC" REDIM _PRESERVE PL(i): PL(i) = 10 @@ -23772,36 +23768,36 @@ END SUB FUNCTION EvaluateNumbers$ (p, num() AS STRING) DIM n1 AS _FLOAT, n2 AS _FLOAT, n3 AS _FLOAT SELECT CASE OName(p) 'Depending on our operator.. - CASE qb64prefix$ + "PI": n1 = 3.14159265358979323846264338327950288## 'Future compatible in case something ever stores extra digits for PI + CASE "_PI": n1 = 3.14159265358979323846264338327950288## 'Future compatable in case something ever stores extra digits for PI CASE "%": n1 = (VAL(num(1))) / 100 'Note percent is a special case and works with the number BEFORE the % command and not after - CASE qb64prefix$ + "ACOS": n1 = _ACOS(VAL(num(2))) - CASE qb64prefix$ + "ASIN": n1 = _ASIN(VAL(num(2))) - CASE qb64prefix$ + "ARCSEC": n1 = _ARCSEC(VAL(num(2))) - CASE qb64prefix$ + "ARCCSC": n1 = _ARCCSC(VAL(num(2))) - CASE qb64prefix$ + "ARCCOT": n1 = _ARCCOT(VAL(num(2))) - CASE qb64prefix$ + "SECH": n1 = _SECH(VAL(num(2))) - CASE qb64prefix$ + "CSCH": n1 = _CSCH(VAL(num(2))) - CASE qb64prefix$ + "COTH": n1 = _COTH(VAL(num(2))) + CASE "_ACOS": n1 = _ACOS(VAL(num(2))) + CASE "_ASIN": n1 = _ASIN(VAL(num(2))) + CASE "_ARCSEC": n1 = _ARCSEC(VAL(num(2))) + CASE "_ARCCSC": n1 = _ARCCSC(VAL(num(2))) + CASE "_ARCCOT": n1 = _ARCCOT(VAL(num(2))) + CASE "_SECH": n1 = _SECH(VAL(num(2))) + CASE "_CSCH": n1 = _CSCH(VAL(num(2))) + CASE "_COTH": n1 = _COTH(VAL(num(2))) CASE "COS": n1 = COS(VAL(num(2))) CASE "SIN": n1 = SIN(VAL(num(2))) CASE "TAN": n1 = TAN(VAL(num(2))) CASE "LOG": n1 = LOG(VAL(num(2))) CASE "EXP": n1 = EXP(VAL(num(2))) CASE "ATN": n1 = ATN(VAL(num(2))) - CASE qb64prefix$ + "D2R": n1 = 0.0174532925 * (VAL(num(2))) - CASE qb64prefix$ + "D2G": n1 = 1.1111111111 * (VAL(num(2))) - CASE qb64prefix$ + "R2D": n1 = 57.2957795 * (VAL(num(2))) - CASE qb64prefix$ + "R2G": n1 = 0.015707963 * (VAL(num(2))) - CASE qb64prefix$ + "G2D": n1 = 0.9 * (VAL(num(2))) - CASE qb64prefix$ + "G2R": n1 = 63.661977237 * (VAL(num(2))) + CASE "_D2R": n1 = 0.0174532925 * (VAL(num(2))) + CASE "_D2G": n1 = 1.1111111111 * (VAL(num(2))) + CASE "_R2D": n1 = 57.2957795 * (VAL(num(2))) + CASE "_R2G": n1 = 0.015707963 * (VAL(num(2))) + CASE "_G2D": n1 = 0.9 * (VAL(num(2))) + CASE "_G2R": n1 = 63.661977237 * (VAL(num(2))) CASE "ABS": n1 = ABS(VAL(num(2))) CASE "SGN": n1 = SGN(VAL(num(2))) CASE "INT": n1 = INT(VAL(num(2))) - CASE qb64prefix$ + "ROUND": n1 = _ROUND(VAL(num(2))) + CASE "_ROUND": n1 = _ROUND(VAL(num(2))) CASE "FIX": n1 = FIX(VAL(num(2))) - CASE qb64prefix$ + "SEC": n1 = _SEC(VAL(num(2))) - CASE qb64prefix$ + "CSC": n1 = _CSC(VAL(num(2))) - CASE qb64prefix$ + "COT": n1 = _COT(VAL(num(2))) + CASE "_SEC": n1 = _SEC(VAL(num(2))) + CASE "_CSC": n1 = _CSC(VAL(num(2))) + CASE "_COT": n1 = _COT(VAL(num(2))) CASE "^": n1 = VAL(num(1)) ^ VAL(num(2)) CASE "SQR": n1 = SQR(VAL(num(2))) CASE "ROOT" From a2e1ea009127de8edcde3d1c4860909f273dd460 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sun, 5 Jan 2020 19:38:22 -0300 Subject: [PATCH 04/12] Properly detects OPTION (_)EXPLICIT to set opex_comments. --- source/qb64.bas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/qb64.bas b/source/qb64.bas index 6f0a3369a..70ad535c9 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -2991,7 +2991,8 @@ DO IF LEFT$(a3u$, 4) = "REM " OR _ (LEFT$(a3u$, 3) = "REM" AND LEN(a3u$) = 3) OR _ LEFT$(a3u$, 1) = "'" OR _ - (LEFT$(a3u$, 7) = "OPTION " AND LEFT$(LTRIM$(MID$(a3u$, 8)), 9) = qb64prefix$ + "EXPLICIT") OR _ + (LEFT$(a3u$, 7) = "OPTION " AND LEFT$(LTRIM$(MID$(a3u$, 8)), 9) = "_EXPLICIT") OR _ + (LEFT$(a3u$, 7) = "OPTION " AND LEFT$(LTRIM$(MID$(a3u$, 8)), 8) = "EXPLICIT" AND qb64prefix_set = 1) OR _ LEFT$(a3u$, 1) = "$" THEN 'It's a comment, $metacommand, or OPTION _EXPLICIT itself, alright. 'But even being a comment, there could be an $INCLUDE in there, let's check: From 1ea1b66c9590e614160f47a776747a6e33e84f04 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sun, 5 Jan 2020 20:01:52 -0300 Subject: [PATCH 05/12] Restores Steve's SUB ParseExpression --- source/qb64.bas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/qb64.bas b/source/qb64.bas index 70ad535c9..b2ae6dc2a 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -23581,7 +23581,7 @@ SUB ParseExpression (exp$) SELECT CASE MID$(exp$, op + c + 1, 1) CASE "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "N": numset = -1 'Valid digit CASE "-" 'We need to check if it's a minus or a negative - IF OName(OpOn) = "_PI" OR (OName(OpOn) = "PI" AND qb64prefix_set = 1) OR numset THEN EXIT DO + IF OName(OpOn) = "_PI" OR numset THEN EXIT DO CASE ELSE 'Not a valid digit, we found our separator EXIT DO END SELECT From f63358698beaf21bcd2276b52d93922962bbd676 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Sun, 5 Jan 2020 23:30:10 -0300 Subject: [PATCH 06/12] Properly hijacks Steve's math CONST operations for $NOPREFIX to work. These changes will allow for Steve's upcoming changes to be inserted with no issues. --- source/qb64.bas | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index b2ae6dc2a..05f7ab99b 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -1972,7 +1972,6 @@ DO firstelement$ = getelement(a$, 1): secondelement$ = getelement(a$, 2): thirdelement$ = getelement(a$, 3) END IF - 'Steve Tweak to add _RGB32 and _MATH support to CONST 'Our alteration to allow for multiple uses of RGB and RGBA inside a CONST //SMcNeill altered = 0 @@ -7272,7 +7271,7 @@ DO '_ECHO checking - IF firstelement$ = qb64prefix$ + "ECHO" THEN + IF firstelement$ = "_ECHO" OR (firstelement$ = "ECHO" AND qb64prefix_set = 1) THEN IF Console = 0 THEN a$ = qb64prefix$ + "ECHO requires $CONSOLE or $CONSOLE:ONLY to be set first": GOTO errmes END IF @@ -23551,6 +23550,7 @@ SUB ParseExpression (exp$) DIM num(10) AS STRING 'We should now have an expression with no () to deal with IF MID$(exp$, 2, 1) = "-" THEN exp$ = "0+" + MID$(exp$, 2) + FOR J = 1 TO 250 lowest = 0 DO UNTIL lowest = LEN(exp$) @@ -23558,12 +23558,23 @@ SUB ParseExpression (exp$) FOR P = 1 TO UBOUND(OName) 'Look for first valid operator IF J = PL(P) THEN 'Priority levels match - IF LEFT$(exp$, 1) = "-" THEN op = INSTR(2, exp$, OName(P)) ELSE op = INSTR(exp$, OName(P)) + IF LEFT$(exp$, 1) = "-" THEN startAt = 2 ELSE startAt = 1 + op = INSTR(startAt, exp$, OName(P)) + IF op = 0 AND LEFT$(OName(P), 1) = "_" AND qb64prefix_set = 1 THEN + 'try again without prefix + op = INSTR(startAt, exp$, MID$(OName(P), 2)) + IF op > 0 THEN + exp$ = LEFT$(exp$, op - 1) + "_" + MID$(exp$, op) + lowest = lowest + 1 + END IF + END IF IF op > 0 AND op < lowest THEN lowest = op: OpOn = P END IF NEXT IF OpOn = 0 THEN EXIT DO 'We haven't gotten to the proper PL for this OP to be processed yet. - IF LEFT$(exp$, 1) = "-" THEN op = INSTR(2, exp$, OName(OpOn)) ELSE op = INSTR(exp$, OName(OpOn)) + IF LEFT$(exp$, 1) = "-" THEN startAt = 2 ELSE startAt = 1 + op = INSTR(startAt, exp$, OName(OpOn)) + numset = 0 '*** SPECIAL OPERATION RULESETS @@ -24013,11 +24024,21 @@ SUB VerifyString (t$) CASE "0" TO "9", ".", "(", ")": j = j + 1 CASE ELSE good = 0 + extrachar = 0 FOR i = 1 TO UBOUND(OName) - IF MID$(t$, j, LEN(OName(i))) = OName(i) THEN good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + IF MID$(t$, j, LEN(OName(i))) = OName(i) THEN + good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + ELSE + IF LEFT$(OName(i), 1) = "_" AND qb64prefix_set = 1 THEN + 'try without prefix + IF MID$(t$, j, LEN(OName(i)) - 1) = MID$(OName(i), 2) THEN + good = -1: extrachar = 1: EXIT FOR + END IF + END IF + END IF NEXT IF NOT good THEN t$ = "ERROR - Bad Operational value. (" + comp$ + ")": EXIT SUB - j = j + LEN(OName(i)) + j = j + (LEN(OName(i)) - extrachar) END SELECT LOOP UNTIL j > LEN(t$) END SUB From 18974d56e47bacf7b13c8be7b6643a04b06bf93b Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 6 Jan 2020 00:36:31 -0300 Subject: [PATCH 07/12] Final adjustments to CONST parsing + $NOPREFIX --- source/qb64.bas | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index 05f7ab99b..05ea5cbbe 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -23931,7 +23931,16 @@ SUB PreParse (e$) IF l AND l > 2 THEN 'Don't check the starting bracket; there's nothing before it. good = 0 FOR i = 1 TO UBOUND(OName) - IF MID$(t$, l - LEN(OName(i)), LEN(OName(i))) = OName(i) AND PL(i) > 1 AND PL(i) <= 250 THEN good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + IF MID$(t$, l - LEN(OName(i)), LEN(OName(i))) = OName(i) AND PL(i) > 1 AND PL(i) <= 250 THEN + good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + ELSE + IF LEFT$(OName(i), 1) = "_" AND qb64prefix_set = 1 THEN + 'try without prefix + IF MID$(t$, l - (LEN(OName(i)) - 1), LEN(OName(i)) - 1) = MID$(OName(i), 2) AND PL(i) > 1 AND PL(i) <= 250 THEN + good = -1: EXIT FOR + END IF + END IF + END IF NEXT IF NOT good THEN e$ = "ERROR - Improper operations before (.": EXIT SUB l = l + 1 @@ -23945,7 +23954,16 @@ SUB PreParse (e$) IF l AND l < LEN(t$) THEN good = 0 FOR i = 1 TO UBOUND(OName) - IF MID$(t$, l + 1, LEN(OName(i))) = OName(i) AND PL(i) > 1 AND PL(i) <= 250 THEN good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + IF MID$(t$, l + 1, LEN(OName(i))) = OName(i) AND PL(i) > 1 AND PL(i) <= 250 THEN + good = -1: EXIT FOR 'We found an operator after our ), and it's not a CONST (like PI) + ELSE + IF LEFT$(OName(i), 1) = "_" AND qb64prefix_set = 1 THEN + 'try without prefix + IF MID$(t$, l + 1, LEN(OName(i)) - 1) = MID$(OName(i), 2) AND PL(i) > 1 AND PL(i) <= 250 THEN + good = -1: EXIT FOR + END IF + END IF + END IF NEXT IF MID$(t$, l + 1, 1) = ")" THEN good = -1 IF NOT good THEN e$ = "ERROR - Improper operations after ).": EXIT SUB From 3e474f2f0bd06c7bd82eaa1969793f0b547f9298 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 6 Jan 2020 04:46:29 -0300 Subject: [PATCH 08/12] Fixes SUB calls like SHELL _HIDE command$ for $NOPREFIX use. Also: - Fixes incorrect resolution of _BIT in variable declarations. --- source/qb64.bas | 21 ++++++++--- source/subs_functions/subs_functions.bas | 48 ++++++++++++------------ 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index 05ea5cbbe..7c4ac5c82 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -13962,7 +13962,7 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) IF LEFT$(typ$, 4) = "_BIT" OR (LEFT$(typ$, 3) = "BIT" AND qb64prefix_set = 1) THEN IF (LEFT$(typ$, 4) = "_BIT" AND LEN(typ$) > 4) OR (LEFT$(typ$, 3) = "BIT" AND LEN(typ$) > 3) THEN IF LEFT$(typ$, 7) <> "_BIT * " AND LEFT$(typ$, 6) <> "BIT * " THEN Give_Error "Expected " + qb64prefix$ + "BIT * number": EXIT FUNCTION - c$ = MID$(typ$, INSTR(typ$, " * ") + 4) + c$ = MID$(typ$, INSTR(typ$, " * ") + 3) IF isuinteger(c$) = 0 THEN Give_Error "Number expected after *": EXIT FUNCTION IF LEN(c$) > 2 THEN Give_Error "Too many characters in number after *": EXIT FUNCTION bits = VAL(c$) @@ -17704,10 +17704,18 @@ FUNCTION findid& (n2$) 'some subs require a second argument (eg. PUT #, DEF SEG, etc.) IF ids(i).subfunc = 2 THEN IF ASC(ids(i).secondargmustbe) <> 32 THEN 'exists? - IF secondarg$ <> ids(i).secondargmustbe THEN GOTO findidnomatch + IF RTRIM$(secondarg$) = RTRIM$(ids(i).secondargmustbe) THEN + ELSEIF qb64prefix_set = 1 AND LEFT$(ids(i).secondargmustbe, 1) = "_" AND LEFT$(secondarg$, 1) <> "_" AND RTRIM$(secondarg$) = MID$(RTRIM$(ids(i).secondargmustbe), 2) THEN + ELSE + GOTO findidnomatch + END IF END IF IF ASC(ids(i).secondargcantbe) <> 32 THEN 'exists? - IF secondarg$ = ids(i).secondargcantbe THEN GOTO findidnomatch + IF RTRIM$(secondarg$) <> RTRIM$(ids(i).secondargcantbe) THEN + ELSEIF qb64prefix_set = 1 AND LEFT$(ids(i).secondargcantbe, 1) = "_" AND LEFT$(secondarg$, 1) <> "_" AND RTRIM$(secondarg$) <> MID$(RTRIM$(ids(i).secondargcantbe), 2) THEN + ELSE + GOTO findidnomatch + END IF END IF END IF 'second sub argument possible @@ -21077,6 +21085,7 @@ FUNCTION seperateargs (a$, ca$, pass&) OutOfRange = 2147483647 position = OutOfRange which = 0 + removePrefix = 0 IF i <= n THEN 'Past end of contect check FOR o = 1 TO t words = OptWords(x, o) @@ -21090,11 +21099,13 @@ FUNCTION seperateargs (a$, ca$, pass&) c$ = c$ + " " + getelement$(a$, i3 + w - 1) NEXT w 'Compare - IF c$ = RTRIM$(Opt(x, o)) THEN + noPrefixMatch = LEFT$(Opt(x, o), 1) = "_" AND qb64prefix_set = 1 AND c$ = MID$(RTRIM$(Opt(x, o)), 2) + IF c$ = RTRIM$(Opt(x, o)) OR noPrefixMatch THEN 'Record Match IF i3 < position THEN position = i3 which = o + IF noPrefixMatch THEN removePrefix = 1 bvalue = b EXIT FOR 'Exit the i3 loop END IF 'position check @@ -21137,7 +21148,7 @@ FUNCTION seperateargs (a$, ca$, pass&) END IF END IF 'Expression i = i + OptWords(x, which) - separgslayout(x) = CHR$(LEN(RTRIM$(Opt(x, which)))) + RTRIM$(Opt(x, which)) + separgslayout(x) = CHR$(LEN(RTRIM$(Opt(x, which))) - removePrefix) + MID$(RTRIM$(Opt(x, which)), removePrefix + 1) separgs(x) = CHR$(0) + str2(which) ELSE 'Not Found... diff --git a/source/subs_functions/subs_functions.bas b/source/subs_functions/subs_functions.bas index 5221ce45c..62f48ed8c 100644 --- a/source/subs_functions/subs_functions.bas +++ b/source/subs_functions/subs_functions.bas @@ -90,7 +90,7 @@ id.subfunc = 2 id.callname = "sub__resize" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{ON|OFF}][,{" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SMOOTH}]" +id.specialformat = "[{ON|OFF}][,{_STRETCH|_SMOOTH}]" regid clearid @@ -135,7 +135,7 @@ id.subfunc = 2 id.callname = "sub__glrender" id.args = 1 id.arg = MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{" + qb64prefix$ + "BEHIND|" + qb64prefix$ + "ONTOP|" + qb64prefix$ + "ONLY}" +id.specialformat = "{_BEHIND|_ONTOP|_ONLY}" regid clearid @@ -144,7 +144,7 @@ id.subfunc = 2 id.callname = "sub__displayorder" id.args = 4 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}[,{" + qb64prefix$ + "SOFTWARE|" + qb64prefix$ + "HARDWARE|" + qb64prefix$ + "HARDWARE1|" + qb64prefix$ + "GLRENDER}]]]]" +id.specialformat = "[{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}[,{_SOFTWARE|_HARDWARE|_HARDWARE1|_GLRENDER}]]]]" regid clearid @@ -484,7 +484,7 @@ id.subfunc = 2 id.callname = "sub__screenmove" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "MIDDLE}][?,?]" +id.specialformat = "[{_MIDDLE}][?,?]" regid clearid @@ -644,7 +644,7 @@ id.subfunc = 2 id.callname = "sub__fullscreen" id.args = 1 id.arg = MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "OFF|" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SQUAREPIXELS|OFF}][,{" + qb64prefix$ + "SMOOTH}]" +id.specialformat = "[{_OFF|_STRETCH|_SQUAREPIXELS|OFF}][,{_SMOOTH}]" regid clearid @@ -653,7 +653,7 @@ id.subfunc = 2 id.callname = "sub__allowfullscreen" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "STRETCH|" + qb64prefix$ + "SQUAREPIXELS|" + qb64prefix$ + "OFF|" + qb64prefix$ + "ALL|OFF}][,{" + qb64prefix$ + "SMOOTH|" + qb64prefix$ + "OFF|" + qb64prefix$ + "ALL|OFF}]" +id.specialformat = "[{_STRETCH|_SQUAREPIXELS|_OFF|_ALL|OFF}][,{_SMOOTH|_OFF|_ALL|OFF}]" regid clearid @@ -832,7 +832,7 @@ id.subfunc = 2 id.callname = "sub__fps" id.args = 1 id.arg = MKL$(DOUBLETYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "AUTO}][?]" +id.specialformat = "[{_AUTO}][?]" regid clearid @@ -1025,7 +1025,7 @@ id.subfunc = 2 id.callname = "sub__clearcolor" id.args = 2 id.arg = MKL$(ULONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "NONE}][?][,?]" +id.specialformat = "[{_NONE}][?][,?]" regid 'USING/CHANGING A SURFACE @@ -1036,7 +1036,7 @@ id.subfunc = 2 id.callname = "sub__putimage" id.args = 10 id.arg = MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) -id.specialformat = "[[{STEP}](?,?)[-[{STEP}](?,?)]][,[?][,[?][,[[{STEP}](?,?)[-[{STEP}](?,?)]][,{" + qb64prefix$ + "SMOOTH}]]]]" +id.specialformat = "[[{STEP}](?,?)[-[{STEP}](?,?)]][,[?][,[?][,[[{STEP}](?,?)[-[{STEP}](?,?)]][,{_SMOOTH}]]]]" regid clearid @@ -1045,7 +1045,7 @@ id.subfunc = 2 id.callname = "sub__maptriangle" id.args = 19 id.arg = MKL$(LONGTYPE - ISPOINTER)+MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(SINGLETYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "CLOCKWISE|" + qb64prefix$ + "ANTICLOCKWISE}][{" + qb64prefix$ + "SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{" + qb64prefix$ + "SMOOTH|" + qb64prefix$ + "SMOOTHSHRUNK|" + qb64prefix$ + "SMOOTHSTRETCHED}]]" +id.specialformat = "[{_CLOCKWISE|_ANTICLOCKWISE}][{_SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{_SMOOTH|_SMOOTHSHRUNK|_SMOOTHSTRETCHED}]]" regid clearid @@ -1054,7 +1054,7 @@ id.subfunc = 2 id.callname = "sub__depthbuffer" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER)+MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{ON|OFF|LOCK|" + qb64prefix$ + "CLEAR}[,?]" +id.specialformat = "{ON|OFF|LOCK|_CLEAR}[,?]" regid clearid @@ -1253,7 +1253,7 @@ id.subfunc = 2 id.callname = "sub__printmode" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "{" + qb64prefix$ + "FILLBACKGROUND|" + qb64prefix$ + "KEEPBACKGROUND|" + qb64prefix$ + "ONLYBACKGROUND}[,?]" +id.specialformat = "{_FILLBACKGROUND|_KEEPBACKGROUND|_ONLYBACKGROUND}[,?]" regid clearid @@ -1583,7 +1583,7 @@ id.callname = "sub_shell" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) id.specialformat = "[?]" -'id.secondargcantbe = qb64prefix$ + "HIDE" +'id.secondargcantbe = "_HIDE" regid clearid @@ -1592,8 +1592,8 @@ id.subfunc = 2 id.callname = "sub_shell2" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) -id.specialformat = "{" + qb64prefix$ + "HIDE}[{" + qb64prefix$ + "DONTWAIT}][?]" -id.secondargmustbe = qb64prefix$ + "HIDE" +id.specialformat = "{_HIDE}[{_DONTWAIT}][?]" +id.secondargmustbe = "_HIDE" regid clearid @@ -1602,8 +1602,8 @@ id.subfunc = 2 id.callname = "sub_shell3" id.args = 1 id.arg = MKL$(STRINGTYPE - ISPOINTER) -id.specialformat = "{" + qb64prefix$ + "DONTWAIT}[{" + qb64prefix$ + "HIDE}][?]" -id.secondargmustbe = qb64prefix$ + "DONTWAIT" +id.specialformat = "{_DONTWAIT}[{_HIDE}][?]" +id.secondargmustbe = "_DONTWAIT" regid clearid @@ -2219,7 +2219,7 @@ id.subfunc = 2 id.callname = "sub_graphics_put" id.args = 5 id.arg = MKL$(FLOATTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) + MKL$(-3) + MKL$(LONGTYPE - ISPOINTER) + MKL$(ULONGTYPE - ISPOINTER) -id.specialformat = "[{STEP}](?,?),?[,[{" + qb64prefix$ + "CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" +id.specialformat = "[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" 'PUT [STEP] (x!,y!),arrayname# [(indexes%)] [,actionverb] 'PUT (10, 10), myimage, _CLIP, 0 id.secondargmustbe = "STEP" @@ -2230,7 +2230,7 @@ id.subfunc = 2 id.callname = "sub_graphics_put" id.args = 5 id.arg = MKL$(FLOATTYPE - ISPOINTER) + MKL$(FLOATTYPE - ISPOINTER) + MKL$(-3) + MKL$(LONGTYPE - ISPOINTER) + MKL$(ULONGTYPE - ISPOINTER) -id.specialformat = "[{STEP}](?,?),?[,[{" + qb64prefix$ + "CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" +id.specialformat = "[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]]" 'PUT [STEP] (x!,y!),arrayname# [(indexes%)] [,actionverb] 'PUT (10, 10), myimage, _CLIP, 0 id.secondargmustbe = "(" @@ -2760,7 +2760,7 @@ id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE 'id.specialformat = "[?][,[?][,[?][,?]]]" 'new! 'id.specialformat = "[?][,[?][,[?][,[?][,{_MANUALDISPLAY}]]]]" 'breaks compilation! 'id.specialformat = "[?][,[?][,[?][,[?][,[{_MANUALDISPLAY}]]]]]" <-pre-bulletproofing -id.specialformat = "[?][,[?][,[?][,[?][,[{" + qb64prefix$ + "MANUALDISPLAY}?]]]]]" 'a temp format for transition reasons" +id.specialformat = "[?][,[?][,[?][,[?][,[{_MANUALDISPLAY}?]]]]]" 'a temp format for transition reasons" regid clearid @@ -3354,7 +3354,7 @@ id.subfunc = 2 id.callname = "sub__capslock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" +id.specialformat = "{ON|OFF|_TOGGLE}" regid clearid @@ -3363,7 +3363,7 @@ id.subfunc = 2 id.callname = "sub__scrolllock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" +id.specialformat = "{ON|OFF|_TOGGLE}" regid clearid @@ -3372,7 +3372,7 @@ id.subfunc = 2 id.callname = "sub__numlock" id.arg = MKL$(LONGTYPE - ISPOINTER) id.args = 1 -id.specialformat = "{ON|OFF|" + qb64prefix$ + "TOGGLE}" +id.specialformat = "{ON|OFF|_TOGGLE}" regid clearid @@ -3389,7 +3389,7 @@ id.subfunc = 2 id.callname = "sub__console_cursor" id.args = 2 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) -id.specialformat = "[{" + qb64prefix$ + "SHOW|" + qb64prefix$ + "HIDE}][,?]" +id.specialformat = "[{_SHOW|_HIDE}][,?]" regid clearid From 0bb90ad263670d080b485d7f60b5492ff95a0adb Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 6 Jan 2020 05:08:44 -0300 Subject: [PATCH 09/12] More fixes to hardcoded _KEYWORDS so $NOPREFIX will work. --- source/qb64.bas | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index 7c4ac5c82..d8a0956bf 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -1594,15 +1594,15 @@ DO reginternal f = HASHFLAG_TYPE + HASHFLAG_RESERVED - HashAdd qb64prefix$ + "UNSIGNED", f, 0 - HashAdd qb64prefix$ + "BIT", f, 0 - HashAdd qb64prefix$ + "BYTE", f, 0 - HashAdd qb64prefix$ + "INTEGER64", f, 0 - HashAdd qb64prefix$ + "OFFSET", f, 0 - HashAdd qb64prefix$ + "FLOAT", f, 0 + HashAdd "UNSIGNED", f, 0 + HashAdd "BIT", f, 0 + HashAdd "BYTE", f, 0 + HashAdd "INTEGER64", f, 0 + HashAdd "OFFSET", f, 0 + HashAdd "FLOAT", f, 0 f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX - HashAdd qb64prefix$ + "EXPLICIT", f, 0 + HashAdd "EXPLICIT", f, 0 listOfKeywords$ = listOfKeywords$ + listOfKeywordsWithoutPrefix$ GOTO finishedlinepp @@ -2416,7 +2416,7 @@ DO IF firstelement$ = "DEFSNG" THEN d = 1 IF firstelement$ = "DEFDBL" THEN d = 1 IF firstelement$ = "DEFSTR" THEN d = 1 - IF firstelement$ = qb64prefix$ + "DEFINE" THEN d = 1 + IF firstelement$ = "_DEFINE" OR (firstelement$ = "DEFINE" AND qb64prefix_set = 1) THEN d = 1 IF d THEN predefining = 1: GOTO predefine predefined: predefining = 0 @@ -5292,7 +5292,7 @@ DO IF firstelement$ = "DEFSNG" THEN a$ = a$ + sp + "AS" + sp + "SINGLE": n = n + 2: GOTO definetype IF firstelement$ = "DEFDBL" THEN a$ = a$ + sp + "AS" + sp + "DOUBLE": n = n + 2: GOTO definetype IF firstelement$ = "DEFSTR" THEN a$ = a$ + sp + "AS" + sp + "STRING": n = n + 2: GOTO definetype - IF firstelement$ = qb64prefix$ + "DEFINE" THEN + IF firstelement$ = "_DEFINE" OR (firstelement$ = "DEFINE" AND qb64prefix_set = 1) THEN asreq = 1 definetype: l$ = firstelement$ @@ -7575,9 +7575,9 @@ DO IF firstelement$ = "DIM" THEN dimoption = 1 IF firstelement$ = "REDIM" THEN dimoption = 2: redimoption = 1 - IF secondelement$ = qb64prefix$ + "PRESERVE" THEN + IF secondelement$ = "_PRESERVE" OR (secondelement$ = "PRESERVE" AND qb64prefix_set = 1) THEN redimoption = 2 - IF n = 2 THEN a$ = "Expected REDIM _PRESERVE ...": GOTO errmes + IF n = 2 THEN a$ = "Expected REDIM " + qb64prefix$ + "PRESERVE ...": GOTO errmes END IF END IF IF firstelement$ = "STATIC" THEN dimoption = 3 @@ -7590,7 +7590,7 @@ DO IF commonoption = 1 AND subfuncn <> 0 THEN a$ = "COMMON cannot be used within a SUB/FUNCTION": GOTO errmes i = 2 - IF redimoption = 2 THEN i = 3: l$ = l$ + sp + qb64prefix$ + "PRESERVE" + IF redimoption = 2 THEN i = 3: l$ = l$ + sp + secondelement$ IF dimoption <> 3 THEN 'shared cannot be static a2$ = getelement(a$, i) @@ -9828,7 +9828,7 @@ DO IF LEN(layout$) THEN a$ = "OPTION " + qb64prefix$ + "EXPLICIT must come before any other statement": GOTO errmes IF linenumber > 1 AND opex_comments = 0 THEN a$ = "OPTION " + qb64prefix$ + "EXPLICIT must come before any other statement": GOTO errmes optionexplicit = -1 - l$ = "OPTION" + sp + qb64prefix$ + "EXPLICIT" + l$ = "OPTION" + sp + e$ layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ GOTO finishedline CASE ELSE From dffc94b83d11b9e908b748ea986351c886c31062 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 6 Jan 2020 20:29:44 -0300 Subject: [PATCH 10/12] Properly gets _MEM type to play nice with $NOPREFIX --- source/qb64.bas | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/source/qb64.bas b/source/qb64.bas index d8a0956bf..5a8f3c342 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -3753,7 +3753,11 @@ DO IF Error_Happened THEN GOTO errmes IF typ = 0 THEN a$ = "Undefined type": GOTO errmes IF typ AND ISUDT THEN - t$ = RTRIM$(udtxcname(typ AND 511)) + IF UCASE$(RTRIM$(t$)) = "MEM" AND RTRIM$(udtxcname(typ AND 511)) = "_MEM" AND qb64prefix_set = 1 THEN + t$ = MID$(RTRIM$(udtxcname(typ AND 511)), 2) + ELSE + t$ = RTRIM$(udtxcname(typ AND 511)) + END IF END IF l$ = l$ + sp + t$ layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ @@ -4906,6 +4910,9 @@ DO IF Error_Happened THEN GOTO errmes IF typ = 0 THEN a$ = "Undefined type": GOTO errmes IF typ AND ISUDT THEN + IF RTRIM$(udtxcname(typ AND 511)) = "_MEM" AND UCASE$(t3$) = "MEM" AND qb64prefix_set = 1 THEN + t3$ = MID$(RTRIM$(udtxcname(typ AND 511)), 2) + END IF t3$ = RTRIM$(udtxcname(typ AND 511)) ELSE FOR t3i = 1 TO LEN(t3i) @@ -4961,6 +4968,9 @@ DO IF t2$ = RTRIM$(udtxname(xx)) THEN PRINT #17, "void*" GOTO decudt + ELSEIF RTRIM$(udtxname(xx)) = "_MEM" AND t2$ = "MEM" AND qb64prefix_set = 1 THEN + PRINT #17, "void*" + GOTO decudt END IF NEXT t$ = typ2ctyp$(0, t2$) @@ -7154,7 +7164,14 @@ DO IF t AND ISREFERENCE THEN t = t - ISREFERENCE tsize = typname2typsize method = 0 - IF (t AND ISUDT) = 0 THEN ts$ = type2symbol$(t$) ELSE t3$ = RTRIM$(udtxcname(t AND 511)) + IF (t AND ISUDT) = 0 THEN + ts$ = type2symbol$(t$) + ELSE + t3$ = RTRIM$(udtxcname(t AND 511)) + IF RTRIM$(udtxcname(t AND 511)) = "_MEM" AND UCASE$(t$) = "MEM" AND qb64prefix_set = 1 THEN + t3$ = MID$(RTRIM$(udtxcname(t AND 511)), 2) + END IF + END IF IF Error_Happened THEN GOTO errmes l2$ = l2$ + sp + t3$ @@ -7937,6 +7954,9 @@ DO IF dimmethod = 0 THEN IF t AND ISUDT THEN dim2typepassback$ = RTRIM$(udtxcname(t AND 511)) + IF UCASE$(typ$) = "MEM" AND qb64prefix_set = 1 AND RTRIM$(udtxcname(t AND 511)) = "_MEM" THEN + dim2typepassback$ = MID$(RTRIM$(udtxcname(t AND 511)), 2) + END IF ELSE dim2typepassback$ = typ$ DO WHILE INSTR(dim2typepassback$, " ") @@ -10365,7 +10385,11 @@ DO IF explicitreference = 0 THEN IF targettyp AND ISUDT THEN nth = i - x$ = "'" + RTRIM$(udtxcname(targettyp AND 511)) + "'" + IF qb64prefix_set AND udtxcname(targettyp AND 511) = "_MEM" THEN + x$ = "'" + MID$(RTRIM$(udtxcname(targettyp AND 511)), 2) + "'" + ELSE + x$ = "'" + RTRIM$(udtxcname(targettyp AND 511)) + "'" + END IF IF ids(targetid).args = 1 THEN a$ = "TYPE " + x$ + " required for sub": GOTO errmes a$ = str_nth$(nth) + " sub argument requires TYPE " + x$: GOTO errmes END IF @@ -13605,8 +13629,11 @@ FUNCTION dim2 (varname$, typ2$, method, elements$) 'UDT 'is it a udt? FOR i = 1 TO lasttype - IF typ$ = RTRIM$(udtxname(i)) THEN + IF typ$ = RTRIM$(udtxname(i)) OR (typ$ = "MEM" AND RTRIM$(udtxname(i)) = "_MEM" AND qb64prefix_set = 1) THEN dim2typepassback$ = RTRIM$(udtxcname(i)) + IF typ$ = "MEM" AND RTRIM$(udtxname(i)) = "_MEM" THEN + dim2typepassback$ = MID$(RTRIM$(udtxcname(i)), 2) + END IF n$ = "UDT_" + varname$ @@ -16881,7 +16908,11 @@ FUNCTION evaluatefunc$ (a2$, args AS LONG, typ AS LONG) IF targettyp AND ISUDT THEN nth = curarg IF omitarg_last <> 0 AND nth > omitarg_last THEN nth = nth - 1 - x$ = "'" + RTRIM$(udtxcname(targettyp AND 511)) + "'" + IF qb64prefix_set AND udtxcname(targettyp AND 511) = "_MEM" THEN + x$ = "'" + MID$(RTRIM$(udtxcname(targettyp AND 511)), 2) + "'" + ELSE + x$ = "'" + RTRIM$(udtxcname(targettyp AND 511)) + "'" + END IF IF ids(targetid).args = 1 THEN Give_Error "TYPE " + x$ + " required for function": EXIT FUNCTION Give_Error str_nth$(nth) + " function argument requires TYPE " + x$: EXIT FUNCTION END IF @@ -21882,6 +21913,9 @@ FUNCTION typname2typ& (t2$) IF t$ = RTRIM$(udtxname(i)) THEN typname2typ& = ISUDT + ISPOINTER + i EXIT FUNCTION + ELSEIF RTRIM$(udtxname(i)) = "_MEM" AND t$ = "MEM" AND qb64prefix_set = 1 THEN + typname2typ& = ISUDT + ISPOINTER + i + EXIT FUNCTION END IF NEXT From 95098621a651818336634923fd20a7156b0d3043 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Mon, 6 Jan 2020 22:32:02 -0300 Subject: [PATCH 11/12] Adjusts help system to find non-prefixed keywords. --- source/ide/ide_methods.bas | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 67e4afb6f..3236aa951 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -2399,12 +2399,12 @@ FUNCTION ide2 (ignore) a2$ = UCASE$(a2$) 'check if F1 is in help links fh = FREEFILE - OPEN "internal\help\links.bin" FOR INPUT AS #fh + OPEN "internal\help\links.bin" FOR BINARY AS #fh lnks = 0: lnks$ = CHR$(0) DO UNTIL EOF(fh) LINE INPUT #fh, l$ c = INSTR(l$, ","): l1$ = LEFT$(l$, c - 1): l2$ = RIGHT$(l$, LEN(l$) - c) - IF a2$ = UCASE$(l1$) THEN + IF a2$ = UCASE$(l1$) OR (qb64prefix_set = 1 AND LEFT$(l1$, 1) = "_" AND a2$ = MID$(l1$, 2)) THEN IF INSTR(lnks$, CHR$(0) + l2$ + CHR$(0)) = 0 THEN lnks = lnks + 1 IF l2$ = l1$ THEN @@ -4948,7 +4948,7 @@ FUNCTION ide2 (ignore) 'Add all linked pages to download list (if not already in list) fh = FREEFILE - OPEN "internal\help\links.bin" FOR INPUT AS #fh + OPEN "internal\help\links.bin" FOR BINARY AS #fh DO UNTIL EOF(fh) LINE INPUT #fh, l$ IF LEN(l$) THEN @@ -13906,12 +13906,12 @@ SUB IdeMakeContextualMenu IF LEN(a2$) > 0 THEN 'check if F1 is in help links fh = FREEFILE - OPEN "internal\help\links.bin" FOR INPUT AS #fh + OPEN "internal\help\links.bin" FOR BINARY AS #fh lnks = 0: lnks$ = CHR$(0) DO UNTIL EOF(fh) LINE INPUT #fh, l$ c = INSTR(l$, ","): l1$ = LEFT$(l$, c - 1): l2$ = RIGHT$(l$, LEN(l$) - c) - IF a2$ = UCASE$(l1$) THEN + IF a2$ = UCASE$(l1$) OR (qb64prefix_set = 1 AND LEFT$(l1$, 1) = "_" AND a2$ = MID$(l1$, 2)) THEN IF INSTR(lnks$, CHR$(0) + l2$ + CHR$(0)) = 0 THEN lnks = lnks + 1 EXIT DO From 8ac94a3142e2210f213afd4682041cceddc5b13a Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Tue, 7 Jan 2020 07:53:12 -0300 Subject: [PATCH 12/12] Reduces memory usage for $NOPREFIX keyword list + simplifies highlighting. --- source/ide/ide_global.bas | 25 +++++++------------------ source/ide/ide_methods.bas | 3 ++- source/qb64.bas | 2 -- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/source/ide/ide_global.bas b/source/ide/ide_global.bas index 26c37c8f8..1c7e5c9fb 100644 --- a/source/ide/ide_global.bas +++ b/source/ide/ide_global.bas @@ -116,24 +116,13 @@ DIM SHARED idecurrentlinelayout AS STRING DIM SHARED idecurrentlinelayouti AS LONG DIM SHARED idelayoutallow AS LONG -DIM SHARED backupListOfKeywords$, listOfKeywords$, listOfCustomKeywords$, customKeywordsLength AS LONG -DIM SHARED listOfKeywordsWithoutPrefix$ -backupListOfKeywords$ = "@?@$CHECKING@$CONSOLE@ONLY@$DYNAMIC@$ELSE@$ELSEIF@$END@$ENDIF@$EXEICON@$IF@$INCLUDE@$LET@$RESIZE@$SCREENHIDE@$SCREENSHOW@$STATIC@$VERSIONINFO@$VIRTUALKEYBOARD@ABS@ABSOLUTE@ACCESS@ALIAS@AND@APPEND@AS@ASC@ATN@BASE@BEEP@BINARY@BLOAD@BSAVE@BYVAL@CALL@CALLS@CASE@IS@CDBL@CDECL@CHAIN@CHDIR@CHR$@CINT@CIRCLE@CLEAR@CLNG@CLOSE@CLS@COLOR@COM@COMMAND$@COMMON@CONST@COS@CSNG@CSRLIN@CUSTOMTYPE@CVD@CVDMBF@CVI@CVL@CVS@CVSMBF@DATA@DATE$@DECLARE@DEF@DEFDBL@DEFINT@DEFLNG@DEFSNG@DEFSTR@DIM@DO@DOUBLE@DRAW@DYNAMIC@ELSE@ELSEIF@END@ENDIF@ENVIRON@ENVIRON$@EOF@EQV@ERASE@ERDEV@ERDEV$@ERL@ERR@ERROR@EVERYCASE@EXIT@EXP@FIELD@FILEATTR@FILES@FIX@FN@FOR@FRE@FREE@FREEFILE@FUNCTION@GET@GOSUB@GOTO@HEX$@IF@IMP@INKEY$@INP@INPUT@INPUT$@INSTR@INT@INTEGER@INTERRUPT@INTERRUPTX@IOCTL@IOCTL$@KEY@KILL@LBOUND@LCASE$@LEFT$@LEN@LET@LIBRARY@LINE@LIST@LOC@LOCATE@LOCK@LOF@LOG@LONG@LOOP@LPOS@LPRINT@LSET@LTRIM$@MID$@MKD$@MKDIR@MKDMBF$@MKI$@MKL$@MKS$@MKSMBF$@MOD@NAME@NEXT@NOT@OCT$@OFF@ON@OPEN@OPTION@OR@OUT@OUTPUT@PAINT@PALETTE@PCOPY@PEEK@PEN@PLAY@PMAP@POINT@POKE@POS@PRESET@PRINT@PSET@PUT@RANDOM@RANDOMIZE@READ@REDIM@REM@RESET@RESTORE@RESUME@RETURN@RIGHT$@RMDIR@RND@RSET@RTRIM$@RUN@SADD@SCREEN@SEEK@SEG@SELECT@SETMEM@SGN@SHARED@SHELL@SIGNAL@SIN@SINGLE@SLEEP@SOUND@SPACE$@SPC@SQR@STATIC@STEP@STICK@STOP@STR$@STRIG@STRING@STRING$@SUB@SWAP@SYSTEM@TAB@TAN@THEN@TIME$@TIMER@TO@TROFF@TRON@TYPE@UBOUND@UCASE$@UEVENT@UNLOCK@UNTIL@USING@VAL@VARPTR@VARPTR$@VARSEG@VIEW@WAIT@WEND@WHILE@WIDTH@WINDOW@WRITE@XOR@_ACOS@_ACOSH@_ALPHA@_ALPHA32@_ARCCOT@_ARCCSC@_ARCSEC@_ASIN@_ASINH@_ATAN2@_ATANH@_AUTODISPLAY@_AXIS@_BACKGROUNDCOLOR@_BIT@_BLEND@_BLINK@_BLUE@_BLUE32@_BUTTON@_BUTTONCHANGE@_BYTE@_CEIL@_CLEARCOLOR@_CLIP@_CLIPBOARD$@_CLIPBOARDIMAGE@_COMMANDCOUNT@_CONNECTED@_CONNECTIONADDRESS$@_CONNECTIONADDRESS@_CONSOLE@_CONSOLETITLE@_CONTINUE@_CONTROLCHR@_COPYIMAGE@_COPYPALETTE@_COSH@_COT@_COTH@_CSC@_CSCH@_CV@_CWD$@_D2G@_D2R@_DEFAULTCOLOR@_DEFINE@_DELAY@_DEPTHBUFFER@_DESKTOPHEIGHT@_DESKTOPWIDTH@_DEST@_DEVICE$@_DEVICEINPUT@_DEVICES@_DIR$@_DIREXISTS@_DISPLAY@_DISPLAYORDER@_DONTBLEND@_DONTWAIT@" -backupListOfKeywords$ = backupListOfKeywords$ + "_ERRORLINE@_EXIT@_EXPLICIT@_FILEEXISTS@_FLOAT@_FONT@_FONTHEIGHT@_FONTWIDTH@_FREEFONT@_FREEIMAGE@_FREETIMER@_FULLSCREEN@_G2D@_G2R@_GLRENDER@_GREEN@_GREEN32@_HEIGHT@_HIDE@_HYPOT@_ICON@_INCLERRORFILE$@_INCLERRORLINE@_INTEGER64@_KEYCLEAR@_KEYDOWN@_KEYHIT@_LASTAXIS@_LASTBUTTON@_LASTWHEEL@_LIMIT@_LOADFONT@_LOADIMAGE@_MAPTRIANGLE@_MAPUNICODE@_MEM@_MEMCOPY@_MEMELEMENT@_MEMEXISTS@_MEMFILL@_MEMFREE@_MEMGET@_MEMIMAGE@_MEMNEW@_MEMPUT@_MIDDLE@_MK$@_MOUSEBUTTON@_MOUSEHIDE@_MOUSEINPUT@_MOUSEMOVE@_MOUSEMOVEMENTX@_MOUSEMOVEMENTY@_MOUSEPIPEOPEN@_MOUSESHOW@_MOUSEWHEEL@_MOUSEX@_MOUSEY@_NEWIMAGE@_OFFSET@_OPENCLIENT@_OPENCONNECTION@_OPENHOST@_OS$@_PALETTECOLOR@_PI@_PIXELSIZE@_PRESERVE@_PRINTIMAGE@_PRINTMODE@_PRINTSTRING@_PRINTWIDTH@_PUTIMAGE@_R2D@_R2G@_RED@_RED32@_RESIZE@_RESIZEHEIGHT@_RESIZEWIDTH@_RGB@_RGB32@_RGBA@_RGBA32@_ROUND@_SCREENCLICK@_SCREENEXISTS@_SCREENHIDE@_SCREENICON@_SCREENIMAGE@_SCREENMOVE@_SCREENPRINT@_SCREENSHOW@_SCREENX@_SCREENY@_SEC@_SECH@_SETALPHA@_SHELLHIDE@_SINH@_SNDBAL@_SNDCLOSE@_SNDCOPY@_SNDGETPOS@_SNDLEN@_SNDLIMIT@_SNDLOOP@_SNDOPEN@_SNDOPENRAW@_SNDPAUSE@_SNDPAUSED@_SNDPLAY@_SNDPLAYCOPY@_SNDPLAYFILE@_SNDPLAYING@_SNDRATE@_SNDRAW@_SNDRAWDONE@_SNDRAWLEN@_SNDSETPOS@_SNDSTOP@_SNDVOL@_SOURCE@_STARTDIR$@_STRCMP@_STRICMP@_TANH@_TITLE@_TITLE$@_UNSIGNED@_WHEEL@_WIDTH@_WINDOWHANDLE@_WINDOWHASFOCUS@_GLACCUM@_GLALPHAFUNC@_GLARETEXTURESRESIDENT@_GLARRAYELEMENT@_GLBEGIN@_GLBINDTEXTURE@_GLBITMAP@_GLBLENDFUNC@_GLCALLLIST@_GLCALLLISTS@_GLCLEAR@_GLCLEARACCUM@_GLCLEARCOLOR@_GLCLEARDEPTH@_GLCLEARINDEX@_GLCLEARSTENCIL@_GLCLIPPLANE@_GLCOLOR3B@_GLCOLOR3BV@_GLCOLOR3D@_GLCOLOR3DV@_GLCOLOR3F@_GLCOLOR3FV@_GLCOLOR3I@_GLCOLOR3IV@_GLCOLOR3S@_GLCOLOR3SV@_GLCOLOR3UB@_GLCOLOR3UBV@_GLCOLOR3UI@_GLCOLOR3UIV@_GLCOLOR3US@_GLCOLOR3USV@_GLCOLOR4B@_GLCOLOR4BV@_GLCOLOR4D@_GLCOLOR4DV@_GLCOLOR4F@_GLCOLOR4FV@_GLCOLOR4I@_GLCOLOR4IV@_GLCOLOR4S@_GLCOLOR4SV@_GLCOLOR4UB@_GLCOLOR4UBV@_GLCOLOR4UI@_GLCOLOR4UIV@_GLCOLOR4US@_GLCOLOR4USV@_GLCOLORMASK@_GLCOLORMATERIAL@_GLCOLORPOINTER@_GLCOPYPIXELS@_GLCOPYTEXIMAGE1D@_GLCOPYTEXIMAGE2D@_GLCOPYTEXSUBIMAGE1D@" -backupListOfKeywords$ = backupListOfKeywords$ + "_GLCOPYTEXSUBIMAGE2D@_GLCULLFACE@_GLDELETELISTS@_GLDELETETEXTURES@_GLDEPTHFUNC@_GLDEPTHMASK@_GLDEPTHRANGE@_GLDISABLE@_GLDISABLECLIENTSTATE@_GLDRAWARRAYS@_GLDRAWBUFFER@_GLDRAWELEMENTS@_GLDRAWPIXELS@_GLEDGEFLAG@_GLEDGEFLAGPOINTER@_GLEDGEFLAGV@_GLENABLE@_GLENABLECLIENTSTATE@_GLEND@_GLENDLIST@_GLEVALCOORD1D@_GLEVALCOORD1DV@_GLEVALCOORD1F@_GLEVALCOORD1FV@_GLEVALCOORD2D@_GLEVALCOORD2DV@_GLEVALCOORD2F@_GLEVALCOORD2FV@_GLEVALMESH1@_GLEVALMESH2@_GLEVALPOINT1@_GLEVALPOINT2@_GLFEEDBACKBUFFER@_GLFINISH@_GLFLUSH@_GLFOGF@_GLFOGFV@_GLFOGI@_GLFOGIV@_GLFRONTFACE@_GLFRUSTUM@_GLGENLISTS@_GLGENTEXTURES@_GLGETBOOLEANV@_GLGETCLIPPLANE@_GLGETDOUBLEV@_GLGETERROR@_GLGETFLOATV@_GLGETINTEGERV@_GLGETLIGHTFV@_GLGETLIGHTIV@_GLGETMAPDV@_GLGETMAPFV@_GLGETMAPIV@_GLGETMATERIALFV@_GLGETMATERIALIV@_GLGETPIXELMAPFV@_GLGETPIXELMAPUIV@_GLGETPIXELMAPUSV@_GLGETPOINTERV@_GLGETPOLYGONSTIPPLE@_GLGETSTRING@_GLGETTEXENVFV@_GLGETTEXENVIV@_GLGETTEXGENDV@_GLGETTEXGENFV@_GLGETTEXGENIV@_GLGETTEXIMAGE@_GLGETTEXLEVELPARAMETERFV@_GLGETTEXLEVELPARAMETERIV@_GLGETTEXPARAMETERFV@_GLGETTEXPARAMETERIV@_GLHINT@_GLINDEXMASK@_GLINDEXPOINTER@_GLINDEXD@_GLINDEXDV@_GLINDEXF@_GLINDEXFV@_GLINDEXI@_GLINDEXIV@_GLINDEXS@_GLINDEXSV@_GLINDEXUB@_GLINDEXUBV@_GLINITNAMES@_GLINTERLEAVEDARRAYS@_GLISENABLED@_GLISLIST@_GLISTEXTURE@_GLLIGHTMODELF@_GLLIGHTMODELFV@_GLLIGHTMODELI@_GLLIGHTMODELIV@_GLLIGHTF@_GLLIGHTFV@_GLLIGHTI@_GLLIGHTIV@_GLLINESTIPPLE@_GLLINEWIDTH@_GLLISTBASE@_GLLOADIDENTITY@_GLLOADMATRIXD@_GLLOADMATRIXF@_GLLOADNAME@_GLLOGICOP@_GLMAP1D@_GLMAP1F@_GLMAP2D@_GLMAP2F@_GLMAPGRID1D@_GLMAPGRID1F@_GLMAPGRID2D@_GLMAPGRID2F@_GLMATERIALF@_GLMATERIALFV@_GLMATERIALI@_GLMATERIALIV@_GLMATRIXMODE@_GLMULTMATRIXD@_GLMULTMATRIXF@_GLNEWLIST@_GLNORMAL3B@_GLNORMAL3BV@_GLNORMAL3D@_GLNORMAL3DV@_GLNORMAL3F@_GLNORMAL3FV@_GLNORMAL3I@_GLNORMAL3IV@_GLNORMAL3S@_GLNORMAL3SV@_GLNORMALPOINTER@_GLORTHO@_GLPASSTHROUGH@_GLPIXELMAPFV@_GLPIXELMAPUIV@_GLPIXELMAPUSV@_GLPIXELSTOREF@_GLPIXELSTOREI@_GLPIXELTRANSFERF@_GLPIXELTRANSFERI@_GLPIXELZOOM@_GLPOINTSIZE@_GLPOLYGONMODE@_GLPOLYGONOFFSET@_GLPOLYGONSTIPPLE@" -backupListOfKeywords$ = backupListOfKeywords$ + "_GLPOPATTRIB@_GLPOPCLIENTATTRIB@_GLPOPMATRIX@_GLPOPNAME@_GLPRIORITIZETEXTURES@_GLPUSHATTRIB@_GLPUSHCLIENTATTRIB@_GLPUSHMATRIX@_GLPUSHNAME@_GLRASTERPOS2D@_GLRASTERPOS2DV@_GLRASTERPOS2F@_GLRASTERPOS2FV@_GLRASTERPOS2I@_GLRASTERPOS2IV@_GLRASTERPOS2S@_GLRASTERPOS2SV@_GLRASTERPOS3D@_GLRASTERPOS3DV@_GLRASTERPOS3F@_GLRASTERPOS3FV@_GLRASTERPOS3I@_GLRASTERPOS3IV@_GLRASTERPOS3S@_GLRASTERPOS3SV@_GLRASTERPOS4D@_GLRASTERPOS4DV@_GLRASTERPOS4F@_GLRASTERPOS4FV@_GLRASTERPOS4I@_GLRASTERPOS4IV@_GLRASTERPOS4S@_GLRASTERPOS4SV@_GLREADBUFFER@_GLREADPIXELS@_GLRECTD@_GLRECTDV@_GLRECTF@_GLRECTFV@_GLRECTI@_GLRECTIV@_GLRECTS@_GLRECTSV@_GLRENDERMODE@_GLROTATED@_GLROTATEF@_GLSCALED@_GLSCALEF@_GLSCISSOR@_GLSELECTBUFFER@_GLSHADEMODEL@_GLSTENCILFUNC@_GLSTENCILMASK@_GLSTENCILOP@_GLTEXCOORD1D@_GLTEXCOORD1DV@_GLTEXCOORD1F@_GLTEXCOORD1FV@_GLTEXCOORD1I@_GLTEXCOORD1IV@_GLTEXCOORD1S@_GLTEXCOORD1SV@_GLTEXCOORD2D@_GLTEXCOORD2DV@_GLTEXCOORD2F@_GLTEXCOORD2FV@_GLTEXCOORD2I@_GLTEXCOORD2IV@_GLTEXCOORD2S@_GLTEXCOORD2SV@_GLTEXCOORD3D@_GLTEXCOORD3DV@_GLTEXCOORD3F@_GLTEXCOORD3FV@_GLTEXCOORD3I@_GLTEXCOORD3IV@_GLTEXCOORD3S@_GLTEXCOORD3SV@_GLTEXCOORD4D@_GLTEXCOORD4DV@_GLTEXCOORD4F@_GLTEXCOORD4FV@_GLTEXCOORD4I@_GLTEXCOORD4IV@_GLTEXCOORD4S@_GLTEXCOORD4SV@_GLTEXCOORDPOINTER@_GLTEXENVF@_GLTEXENVFV@_GLTEXENVI@_GLTEXENVIV@_GLTEXGEND@_GLTEXGENDV@_GLTEXGENF@_GLTEXGENFV@_GLTEXGENI@_GLTEXGENIV@_GLTEXIMAGE1D@_GLTEXIMAGE2D@_GLTEXPARAMETERF@_GLTEXPARAMETERFV@_GLTEXPARAMETERI@_GLTEXPARAMETERIV@_GLTEXSUBIMAGE1D@_GLTEXSUBIMAGE2D@_GLTRANSLATED@_GLTRANSLATEF@_GLVERTEX2D@_GLVERTEX2DV@_GLVERTEX2F@_GLVERTEX2FV@_GLVERTEX2I@_GLVERTEX2IV@_GLVERTEX2S@_GLVERTEX2SV@_GLVERTEX3D@_GLVERTEX3DV@_GLVERTEX3F@_GLVERTEX3FV@_GLVERTEX3I@_GLVERTEX3IV@_GLVERTEX3S@_GLVERTEX3SV@_GLVERTEX4D@_GLVERTEX4DV@_GLVERTEX4F@_GLVERTEX4FV@_GLVERTEX4I@_GLVERTEX4IV@_GLVERTEX4S@_GLVERTEX4SV@_GLVERTEXPOINTER@_GLVIEWPORT@SMOOTH@STRETCH@_ANTICLOCKWISE@_BEHIND@_CLEAR@_FILLBACKGROUND@_GLUPERSPECTIVE@_HARDWARE@_HARDWARE1@_KEEPBACKGROUND@_NONE@_OFF@_ONLY@_ONLYBACKGROUND@_ONTOP@_SEAMLESS@_SMOOTH@_SMOOTHSHRUNK@_SMOOTHSTRETCHED@" -backupListOfKeywords$ = backupListOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@" -backupListOfKeywords$ = backupListOfKeywords$ + "_DEFLATE$@_INFLATE$@_READBIT@_RESETBIT@_SETBIT@_TOGGLEBIT@$ASSERTS@_ASSERT@_CAPSLOCK@_NUMLOCK@_SCROLLLOCK@_TOGGLE@_CONSOLEFONT@_CONSOLECURSOR@_CONSOLEINPUT@_CINP@$NOPREFIX@" - -listOfKeywords$ = backupListOfKeywords$ -listOfKeywordsWithoutPrefix$ = backupListOfKeywords$ - -i = 0 -DO - i = INSTR(i + 1, listOfKeywordsWithoutPrefix$, "_") - IF i = 0 THEN EXIT DO - listOfKeywordsWithoutPrefix$ = LEFT$(listOfKeywordsWithoutPrefix$, i - 1) + MID$(listOfKeywordsWithoutPrefix$, i + 1) -LOOP +DIM SHARED listOfKeywords$, listOfCustomKeywords$, customKeywordsLength AS LONG +listOfKeywords$ = "@?@$CHECKING@$CONSOLE@ONLY@$DYNAMIC@$ELSE@$ELSEIF@$END@$ENDIF@$EXEICON@$IF@$INCLUDE@$LET@$RESIZE@$SCREENHIDE@$SCREENSHOW@$STATIC@$VERSIONINFO@$VIRTUALKEYBOARD@ABS@ABSOLUTE@ACCESS@ALIAS@AND@APPEND@AS@ASC@ATN@BASE@BEEP@BINARY@BLOAD@BSAVE@BYVAL@CALL@CALLS@CASE@IS@CDBL@CDECL@CHAIN@CHDIR@CHR$@CINT@CIRCLE@CLEAR@CLNG@CLOSE@CLS@COLOR@COM@COMMAND$@COMMON@CONST@COS@CSNG@CSRLIN@CUSTOMTYPE@CVD@CVDMBF@CVI@CVL@CVS@CVSMBF@DATA@DATE$@DECLARE@DEF@DEFDBL@DEFINT@DEFLNG@DEFSNG@DEFSTR@DIM@DO@DOUBLE@DRAW@DYNAMIC@ELSE@ELSEIF@END@ENDIF@ENVIRON@ENVIRON$@EOF@EQV@ERASE@ERDEV@ERDEV$@ERL@ERR@ERROR@EVERYCASE@EXIT@EXP@FIELD@FILEATTR@FILES@FIX@FN@FOR@FRE@FREE@FREEFILE@FUNCTION@GET@GOSUB@GOTO@HEX$@IF@IMP@INKEY$@INP@INPUT@INPUT$@INSTR@INT@INTEGER@INTERRUPT@INTERRUPTX@IOCTL@IOCTL$@KEY@KILL@LBOUND@LCASE$@LEFT$@LEN@LET@LIBRARY@LINE@LIST@LOC@LOCATE@LOCK@LOF@LOG@LONG@LOOP@LPOS@LPRINT@LSET@LTRIM$@MID$@MKD$@MKDIR@MKDMBF$@MKI$@MKL$@MKS$@MKSMBF$@MOD@NAME@NEXT@NOT@OCT$@OFF@ON@OPEN@OPTION@OR@OUT@OUTPUT@PAINT@PALETTE@PCOPY@PEEK@PEN@PLAY@PMAP@POINT@POKE@POS@PRESET@PRINT@PSET@PUT@RANDOM@RANDOMIZE@READ@REDIM@REM@RESET@RESTORE@RESUME@RETURN@RIGHT$@RMDIR@RND@RSET@RTRIM$@RUN@SADD@SCREEN@SEEK@SEG@SELECT@SETMEM@SGN@SHARED@SHELL@SIGNAL@SIN@SINGLE@SLEEP@SOUND@SPACE$@SPC@SQR@STATIC@STEP@STICK@STOP@STR$@STRIG@STRING@STRING$@SUB@SWAP@SYSTEM@TAB@TAN@THEN@TIME$@TIMER@TO@TROFF@TRON@TYPE@UBOUND@UCASE$@UEVENT@UNLOCK@UNTIL@USING@VAL@VARPTR@VARPTR$@VARSEG@VIEW@WAIT@WEND@WHILE@WIDTH@WINDOW@WRITE@XOR@_ACOS@_ACOSH@_ALPHA@_ALPHA32@_ARCCOT@_ARCCSC@_ARCSEC@_ASIN@_ASINH@_ATAN2@_ATANH@_AUTODISPLAY@_AXIS@_BACKGROUNDCOLOR@_BIT@_BLEND@_BLINK@_BLUE@_BLUE32@_BUTTON@_BUTTONCHANGE@_BYTE@_CEIL@_CLEARCOLOR@_CLIP@_CLIPBOARD$@_CLIPBOARDIMAGE@_COMMANDCOUNT@_CONNECTED@_CONNECTIONADDRESS$@_CONNECTIONADDRESS@_CONSOLE@_CONSOLETITLE@_CONTINUE@_CONTROLCHR@_COPYIMAGE@_COPYPALETTE@_COSH@_COT@_COTH@_CSC@_CSCH@_CV@_CWD$@_D2G@_D2R@_DEFAULTCOLOR@_DEFINE@_DELAY@_DEPTHBUFFER@_DESKTOPHEIGHT@_DESKTOPWIDTH@_DEST@_DEVICE$@_DEVICEINPUT@_DEVICES@_DIR$@_DIREXISTS@_DISPLAY@_DISPLAYORDER@_DONTBLEND@_DONTWAIT@" +listOfKeywords$ = listOfKeywords$ + "_ERRORLINE@_EXIT@_EXPLICIT@_FILEEXISTS@_FLOAT@_FONT@_FONTHEIGHT@_FONTWIDTH@_FREEFONT@_FREEIMAGE@_FREETIMER@_FULLSCREEN@_G2D@_G2R@_GLRENDER@_GREEN@_GREEN32@_HEIGHT@_HIDE@_HYPOT@_ICON@_INCLERRORFILE$@_INCLERRORLINE@_INTEGER64@_KEYCLEAR@_KEYDOWN@_KEYHIT@_LASTAXIS@_LASTBUTTON@_LASTWHEEL@_LIMIT@_LOADFONT@_LOADIMAGE@_MAPTRIANGLE@_MAPUNICODE@_MEM@_MEMCOPY@_MEMELEMENT@_MEMEXISTS@_MEMFILL@_MEMFREE@_MEMGET@_MEMIMAGE@_MEMNEW@_MEMPUT@_MIDDLE@_MK$@_MOUSEBUTTON@_MOUSEHIDE@_MOUSEINPUT@_MOUSEMOVE@_MOUSEMOVEMENTX@_MOUSEMOVEMENTY@_MOUSEPIPEOPEN@_MOUSESHOW@_MOUSEWHEEL@_MOUSEX@_MOUSEY@_NEWIMAGE@_OFFSET@_OPENCLIENT@_OPENCONNECTION@_OPENHOST@_OS$@_PALETTECOLOR@_PI@_PIXELSIZE@_PRESERVE@_PRINTIMAGE@_PRINTMODE@_PRINTSTRING@_PRINTWIDTH@_PUTIMAGE@_R2D@_R2G@_RED@_RED32@_RESIZE@_RESIZEHEIGHT@_RESIZEWIDTH@_RGB@_RGB32@_RGBA@_RGBA32@_ROUND@_SCREENCLICK@_SCREENEXISTS@_SCREENHIDE@_SCREENICON@_SCREENIMAGE@_SCREENMOVE@_SCREENPRINT@_SCREENSHOW@_SCREENX@_SCREENY@_SEC@_SECH@_SETALPHA@_SHELLHIDE@_SINH@_SNDBAL@_SNDCLOSE@_SNDCOPY@_SNDGETPOS@_SNDLEN@_SNDLIMIT@_SNDLOOP@_SNDOPEN@_SNDOPENRAW@_SNDPAUSE@_SNDPAUSED@_SNDPLAY@_SNDPLAYCOPY@_SNDPLAYFILE@_SNDPLAYING@_SNDRATE@_SNDRAW@_SNDRAWDONE@_SNDRAWLEN@_SNDSETPOS@_SNDSTOP@_SNDVOL@_SOURCE@_STARTDIR$@_STRCMP@_STRICMP@_TANH@_TITLE@_TITLE$@_UNSIGNED@_WHEEL@_WIDTH@_WINDOWHANDLE@_WINDOWHASFOCUS@_GLACCUM@_GLALPHAFUNC@_GLARETEXTURESRESIDENT@_GLARRAYELEMENT@_GLBEGIN@_GLBINDTEXTURE@_GLBITMAP@_GLBLENDFUNC@_GLCALLLIST@_GLCALLLISTS@_GLCLEAR@_GLCLEARACCUM@_GLCLEARCOLOR@_GLCLEARDEPTH@_GLCLEARINDEX@_GLCLEARSTENCIL@_GLCLIPPLANE@_GLCOLOR3B@_GLCOLOR3BV@_GLCOLOR3D@_GLCOLOR3DV@_GLCOLOR3F@_GLCOLOR3FV@_GLCOLOR3I@_GLCOLOR3IV@_GLCOLOR3S@_GLCOLOR3SV@_GLCOLOR3UB@_GLCOLOR3UBV@_GLCOLOR3UI@_GLCOLOR3UIV@_GLCOLOR3US@_GLCOLOR3USV@_GLCOLOR4B@_GLCOLOR4BV@_GLCOLOR4D@_GLCOLOR4DV@_GLCOLOR4F@_GLCOLOR4FV@_GLCOLOR4I@_GLCOLOR4IV@_GLCOLOR4S@_GLCOLOR4SV@_GLCOLOR4UB@_GLCOLOR4UBV@_GLCOLOR4UI@_GLCOLOR4UIV@_GLCOLOR4US@_GLCOLOR4USV@_GLCOLORMASK@_GLCOLORMATERIAL@_GLCOLORPOINTER@_GLCOPYPIXELS@_GLCOPYTEXIMAGE1D@_GLCOPYTEXIMAGE2D@_GLCOPYTEXSUBIMAGE1D@" +listOfKeywords$ = listOfKeywords$ + "_GLCOPYTEXSUBIMAGE2D@_GLCULLFACE@_GLDELETELISTS@_GLDELETETEXTURES@_GLDEPTHFUNC@_GLDEPTHMASK@_GLDEPTHRANGE@_GLDISABLE@_GLDISABLECLIENTSTATE@_GLDRAWARRAYS@_GLDRAWBUFFER@_GLDRAWELEMENTS@_GLDRAWPIXELS@_GLEDGEFLAG@_GLEDGEFLAGPOINTER@_GLEDGEFLAGV@_GLENABLE@_GLENABLECLIENTSTATE@_GLEND@_GLENDLIST@_GLEVALCOORD1D@_GLEVALCOORD1DV@_GLEVALCOORD1F@_GLEVALCOORD1FV@_GLEVALCOORD2D@_GLEVALCOORD2DV@_GLEVALCOORD2F@_GLEVALCOORD2FV@_GLEVALMESH1@_GLEVALMESH2@_GLEVALPOINT1@_GLEVALPOINT2@_GLFEEDBACKBUFFER@_GLFINISH@_GLFLUSH@_GLFOGF@_GLFOGFV@_GLFOGI@_GLFOGIV@_GLFRONTFACE@_GLFRUSTUM@_GLGENLISTS@_GLGENTEXTURES@_GLGETBOOLEANV@_GLGETCLIPPLANE@_GLGETDOUBLEV@_GLGETERROR@_GLGETFLOATV@_GLGETINTEGERV@_GLGETLIGHTFV@_GLGETLIGHTIV@_GLGETMAPDV@_GLGETMAPFV@_GLGETMAPIV@_GLGETMATERIALFV@_GLGETMATERIALIV@_GLGETPIXELMAPFV@_GLGETPIXELMAPUIV@_GLGETPIXELMAPUSV@_GLGETPOINTERV@_GLGETPOLYGONSTIPPLE@_GLGETSTRING@_GLGETTEXENVFV@_GLGETTEXENVIV@_GLGETTEXGENDV@_GLGETTEXGENFV@_GLGETTEXGENIV@_GLGETTEXIMAGE@_GLGETTEXLEVELPARAMETERFV@_GLGETTEXLEVELPARAMETERIV@_GLGETTEXPARAMETERFV@_GLGETTEXPARAMETERIV@_GLHINT@_GLINDEXMASK@_GLINDEXPOINTER@_GLINDEXD@_GLINDEXDV@_GLINDEXF@_GLINDEXFV@_GLINDEXI@_GLINDEXIV@_GLINDEXS@_GLINDEXSV@_GLINDEXUB@_GLINDEXUBV@_GLINITNAMES@_GLINTERLEAVEDARRAYS@_GLISENABLED@_GLISLIST@_GLISTEXTURE@_GLLIGHTMODELF@_GLLIGHTMODELFV@_GLLIGHTMODELI@_GLLIGHTMODELIV@_GLLIGHTF@_GLLIGHTFV@_GLLIGHTI@_GLLIGHTIV@_GLLINESTIPPLE@_GLLINEWIDTH@_GLLISTBASE@_GLLOADIDENTITY@_GLLOADMATRIXD@_GLLOADMATRIXF@_GLLOADNAME@_GLLOGICOP@_GLMAP1D@_GLMAP1F@_GLMAP2D@_GLMAP2F@_GLMAPGRID1D@_GLMAPGRID1F@_GLMAPGRID2D@_GLMAPGRID2F@_GLMATERIALF@_GLMATERIALFV@_GLMATERIALI@_GLMATERIALIV@_GLMATRIXMODE@_GLMULTMATRIXD@_GLMULTMATRIXF@_GLNEWLIST@_GLNORMAL3B@_GLNORMAL3BV@_GLNORMAL3D@_GLNORMAL3DV@_GLNORMAL3F@_GLNORMAL3FV@_GLNORMAL3I@_GLNORMAL3IV@_GLNORMAL3S@_GLNORMAL3SV@_GLNORMALPOINTER@_GLORTHO@_GLPASSTHROUGH@_GLPIXELMAPFV@_GLPIXELMAPUIV@_GLPIXELMAPUSV@_GLPIXELSTOREF@_GLPIXELSTOREI@_GLPIXELTRANSFERF@_GLPIXELTRANSFERI@_GLPIXELZOOM@_GLPOINTSIZE@_GLPOLYGONMODE@_GLPOLYGONOFFSET@_GLPOLYGONSTIPPLE@" +listOfKeywords$ = listOfKeywords$ + "_GLPOPATTRIB@_GLPOPCLIENTATTRIB@_GLPOPMATRIX@_GLPOPNAME@_GLPRIORITIZETEXTURES@_GLPUSHATTRIB@_GLPUSHCLIENTATTRIB@_GLPUSHMATRIX@_GLPUSHNAME@_GLRASTERPOS2D@_GLRASTERPOS2DV@_GLRASTERPOS2F@_GLRASTERPOS2FV@_GLRASTERPOS2I@_GLRASTERPOS2IV@_GLRASTERPOS2S@_GLRASTERPOS2SV@_GLRASTERPOS3D@_GLRASTERPOS3DV@_GLRASTERPOS3F@_GLRASTERPOS3FV@_GLRASTERPOS3I@_GLRASTERPOS3IV@_GLRASTERPOS3S@_GLRASTERPOS3SV@_GLRASTERPOS4D@_GLRASTERPOS4DV@_GLRASTERPOS4F@_GLRASTERPOS4FV@_GLRASTERPOS4I@_GLRASTERPOS4IV@_GLRASTERPOS4S@_GLRASTERPOS4SV@_GLREADBUFFER@_GLREADPIXELS@_GLRECTD@_GLRECTDV@_GLRECTF@_GLRECTFV@_GLRECTI@_GLRECTIV@_GLRECTS@_GLRECTSV@_GLRENDERMODE@_GLROTATED@_GLROTATEF@_GLSCALED@_GLSCALEF@_GLSCISSOR@_GLSELECTBUFFER@_GLSHADEMODEL@_GLSTENCILFUNC@_GLSTENCILMASK@_GLSTENCILOP@_GLTEXCOORD1D@_GLTEXCOORD1DV@_GLTEXCOORD1F@_GLTEXCOORD1FV@_GLTEXCOORD1I@_GLTEXCOORD1IV@_GLTEXCOORD1S@_GLTEXCOORD1SV@_GLTEXCOORD2D@_GLTEXCOORD2DV@_GLTEXCOORD2F@_GLTEXCOORD2FV@_GLTEXCOORD2I@_GLTEXCOORD2IV@_GLTEXCOORD2S@_GLTEXCOORD2SV@_GLTEXCOORD3D@_GLTEXCOORD3DV@_GLTEXCOORD3F@_GLTEXCOORD3FV@_GLTEXCOORD3I@_GLTEXCOORD3IV@_GLTEXCOORD3S@_GLTEXCOORD3SV@_GLTEXCOORD4D@_GLTEXCOORD4DV@_GLTEXCOORD4F@_GLTEXCOORD4FV@_GLTEXCOORD4I@_GLTEXCOORD4IV@_GLTEXCOORD4S@_GLTEXCOORD4SV@_GLTEXCOORDPOINTER@_GLTEXENVF@_GLTEXENVFV@_GLTEXENVI@_GLTEXENVIV@_GLTEXGEND@_GLTEXGENDV@_GLTEXGENF@_GLTEXGENFV@_GLTEXGENI@_GLTEXGENIV@_GLTEXIMAGE1D@_GLTEXIMAGE2D@_GLTEXPARAMETERF@_GLTEXPARAMETERFV@_GLTEXPARAMETERI@_GLTEXPARAMETERIV@_GLTEXSUBIMAGE1D@_GLTEXSUBIMAGE2D@_GLTRANSLATED@_GLTRANSLATEF@_GLVERTEX2D@_GLVERTEX2DV@_GLVERTEX2F@_GLVERTEX2FV@_GLVERTEX2I@_GLVERTEX2IV@_GLVERTEX2S@_GLVERTEX2SV@_GLVERTEX3D@_GLVERTEX3DV@_GLVERTEX3F@_GLVERTEX3FV@_GLVERTEX3I@_GLVERTEX3IV@_GLVERTEX3S@_GLVERTEX3SV@_GLVERTEX4D@_GLVERTEX4DV@_GLVERTEX4F@_GLVERTEX4FV@_GLVERTEX4I@_GLVERTEX4IV@_GLVERTEX4S@_GLVERTEX4SV@_GLVERTEXPOINTER@_GLVIEWPORT@SMOOTH@STRETCH@_ANTICLOCKWISE@_BEHIND@_CLEAR@_FILLBACKGROUND@_GLUPERSPECTIVE@_HARDWARE@_HARDWARE1@_KEEPBACKGROUND@_NONE@_OFF@_ONLY@_ONLYBACKGROUND@_ONTOP@_SEAMLESS@_SMOOTH@_SMOOTHSHRUNK@_SMOOTHSTRETCHED@" +listOfKeywords$ = listOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@" +listOfKeywords$ = listOfKeywords$ + "_DEFLATE$@_INFLATE$@_READBIT@_RESETBIT@_SETBIT@_TOGGLEBIT@$ASSERTS@_ASSERT@_CAPSLOCK@_NUMLOCK@_SCROLLLOCK@_TOGGLE@_CONSOLEFONT@_CONSOLECURSOR@_CONSOLEINPUT@_CINP@$NOPREFIX@" 'IDE MODULE: shared data & definitions '--------------------------------------------------- diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 3236aa951..9280488ab 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -8759,7 +8759,8 @@ SUB ideshowtext NEXT IF comment = 0 AND LEFT$(checkKeyword$, 1) = "?" THEN isKeyword = 1: GOTO setOldChar checkKeyword$ = UCASE$(checkKeyword$) - IF INSTR(listOfKeywords$, "@" + checkKeyword$ + "@") > 0 THEN + IF INSTR(listOfKeywords$, "@" + checkKeyword$ + "@") > 0 OR _ + (qb64prefix_set = 1 AND INSTR(listOfKeywords$, "@_" + checkKeyword$ + "@") > 0) THEN 'special cases IF checkKeyword$ = "$END" THEN IF UCASE$(MID$(a2$, m, 7)) = "$END IF" THEN checkKeyword$ = "$END IF" diff --git a/source/qb64.bas b/source/qb64.bas index 5a8f3c342..b29352d18 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -1416,7 +1416,6 @@ REDIM SHARED warning$(1000) uniquenumbern = 0 qb64prefix_set = 0 qb64prefix$ = "_" -listOfKeywords$ = backupListOfKeywords$ ''create a type for storing memory blocks ''UDT @@ -1604,7 +1603,6 @@ DO f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX HashAdd "EXPLICIT", f, 0 - listOfKeywords$ = listOfKeywords$ + listOfKeywordsWithoutPrefix$ GOTO finishedlinepp END IF