|
Tags: Replaced Manual revert |
Line 96: |
Line 96: |
|
| |
|
| {{PageNavigation}} | | {{PageNavigation}} |
|
| |
| {{CodeStart}}
| |
| {{Text|<nowiki>'All variables will be of type LONG unless explicitly defined</nowiki>|#31C4C4}}
| |
| {{Text|DEFLNG|#F0F0F0}} A-Z
| |
|
| |
| {{Text|<nowiki>'All arrays will be dynamically allocated so they can be REDIM-ed</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$DYNAMIC|#55FF55}}
| |
|
| |
| {{Text|<nowiki>'We need console access to support command-line compilation via the -x command line compile option</nowiki>|#31C4C4}}
| |
| {{Text|$CONSOLE|#55FF55}}
| |
|
| |
| {{Text|<nowiki>'Initially the "SCREEN" will be hidden, if the -x option is used it will never be created</nowiki>|#31C4C4}}
| |
| {{Text|$SCREENHIDE|#55FF55}}
| |
|
| |
| {{Text|$EXEICON:|#55FF55}}{{Text|<nowiki>'./qb64pe.ico'</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|$VERSIONINFO:|#55FF55}}CompanyName=QB64 Phoenix Edition
| |
| {{Text|$VERSIONINFO:|#55FF55}}FileDescription=QB64 IDE and Compiler
| |
| {{Text|$VERSIONINFO:|#55FF55}}InternalName=qb64pe.bas
| |
| {{Text|$VERSIONINFO:|#55FF55}}LegalCopyright=MIT
| |
| {{Text|$VERSIONINFO:|#55FF55}}LegalTrademarks=
| |
| {{Text|$VERSIONINFO:|#55FF55}}OriginalFilename=qb64pe.exe
| |
| {{Text|$VERSIONINFO:|#55FF55}}ProductName=QB64-PE
| |
| {{Text|$VERSIONINFO:|#55FF55}}Comments=QB64 is a modern extended BASIC programming language that retains QB4.5/QBasic compatibility and compiles native binaries for Windows, Linux and macOS.
| |
|
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'global\version.bas'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'global\settings.bas'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'global\constants.bas'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'subs_functions\extensions\opengl\opengl_global.bas'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'utilities\ini-manager\ini.bi'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'utilities\s-buffer\simplebuffer.bi'</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DEFLNG|#F0F0F0}} A-Z
| |
|
| |
| {{Text|<nowiki>'-------- Optional IDE Component (1/2) --------</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'ide\ide_global.bas'</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} OName({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'Operation Name</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} PL({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'Priority Level</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} PP_TypeMod({{Text|0|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}, PP_ConvertedMod({{Text|0|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'Prepass Name Conversion variables.</nowiki>|#31C4C4}}
| |
| Set_OrderOfOperations
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} NoExeSaved {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} vWatchOn, vWatchRecompileAttempts, vWatchDesiredState, vWatchErrorCall$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} vWatchNewVariable$, vWatchVariableExclusions$
| |
| vWatchErrorCall$ = {{Text|<nowiki>"if (stop_program) {*__LONG_VWATCH_LINENUMBER=0; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);};if(new_error){bkp_new_error=new_error;new_error=0;*__LONG_VWATCH_LINENUMBER=-1; SUB_VWATCH((ptrszint*)vwatch_global_vars,(ptrszint*)vwatch_local_vars);new_error=bkp_new_error;};"</nowiki>|#FFB100}}
| |
| vWatchVariableExclusions$ = {{Text|<nowiki>"@__LONG_VWATCH_LINENUMBER@__LONG_VWATCH_SUBLEVEL@__LONG_VWATCH_GOTO@"</nowiki>|#FFB100}} + _
| |
| {{Text|<nowiki>"@__STRING_VWATCH_SUBNAME@__STRING_VWATCH_CALLSTACK@__ARRAY_BYTE_VWATCH_BREAKPOINTS"</nowiki>|#FFB100}} + _
| |
| {{Text|<nowiki>"@__ARRAY_BYTE_VWATCH_SKIPLINES@__STRING_VWATCH_INTERNALSUBNAME@__ARRAY_STRING_VWATCH_STACK@"</nowiki>|#FFB100}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} nativeDataTypes$
| |
| nativeDataTypes$ = {{Text|<nowiki>"@_OFFSET@OFFSET@_UNSIGNED _OFFSET@UNSIGNED OFFSET@_BIT@BIT@_UNSIGNED _BIT@UNSIGNED BIT@_BYTE@_UNSIGNED _BYTE@BYTE@UNSIGNED BYTE@INTEGER@_UNSIGNED INTEGER@UNSIGNED INTEGER@LONG@_UNSIGNED LONG@UNSIGNED LONG@_INTEGER64@INTEGER64@_UNSIGNED _INTEGER64@UNSIGNED INTEGER64@SINGLE@DOUBLE@_FLOAT@FLOAT@STRING@"</nowiki>|#FFB100}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} qb64prefix_set_recompileAttempts, qb64prefix_set_desiredState
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} opex_recompileAttempts, opex_desiredState
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} opexarray_recompileAttempts, opexarray_desiredState
| |
|
| |
| {{Text|REDIM|#F0F0F0}} EveryCaseSet({{Text|100|#F580B1}}), SelectCaseCounter {{Text|AS|#F0F0F0}} {{Text|_UNSIGNED|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} SelectCaseHasCaseBlock({{Text|100|#F580B1}})
| |
| {{Text|DIM|#F0F0F0}} ExecLevel({{Text|255|#F580B1}}), ExecCounter {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'0 element is the name, 1 element is the string value</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} InValidLine({{Text|10000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} DefineElse({{Text|255|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UserDefineCount {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}, UserDefineList$
| |
| UserDefineList$ = {{Text|<nowiki>"@DEFINED@UNDEFINED@WINDOWS@WIN@LINUX@MAC@MACOSX@32BIT@64BIT@VERSION@"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|0|#F580B1}}, {{Text|0|#F580B1}}) = {{Text|<nowiki>"WINDOWS"</nowiki>|#FFB100}}: UserDefine({{Text|0|#F580B1}}, {{Text|1|#F580B1}}) = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|0|#F580B1}}, {{Text|2|#F580B1}}) = {{Text|<nowiki>"LINUX"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|0|#F580B1}}, {{Text|3|#F580B1}}) = {{Text|<nowiki>"MAC"</nowiki>|#FFB100}}: UserDefine({{Text|0|#F580B1}}, {{Text|4|#F580B1}}) = {{Text|<nowiki>"MACOSX"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|0|#F580B1}}, {{Text|5|#F580B1}}) = {{Text|<nowiki>"32BIT"</nowiki>|#FFB100}}: UserDefine({{Text|0|#F580B1}}, {{Text|6|#F580B1}}) = {{Text|<nowiki>"64BIT"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|0|#F580B1}}, {{Text|7|#F580B1}}) = {{Text|<nowiki>"VERSION"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"WIN"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|0|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|1|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}} {{Text|ELSE|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|0|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|1|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"LINUX"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|2|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}} {{Text|ELSE|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|2|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"MAC"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|3|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|4|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}} {{Text|ELSE|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|3|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|4|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"32BIT"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|5|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|6|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}} {{Text|ELSE|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|5|#F580B1}}) = {{Text|<nowiki>"0"</nowiki>|#FFB100}}: UserDefine({{Text|1|#F580B1}}, {{Text|6|#F580B1}}) = {{Text|<nowiki>"-1"</nowiki>|#FFB100}}
| |
| UserDefine({{Text|1|#F580B1}}, {{Text|7|#F580B1}}) = Version$
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} QB64_uptime!
| |
|
| |
| QB64_uptime! = {{Text|TIMER|#F0F0F0}}
| |
|
| |
| NoInternalFolder:
| |
| {{Text|IF|#F0F0F0}} {{Text|_DIREXISTS|#F0F0F0}}({{Text|<nowiki>"internal"</nowiki>|#FFB100}}) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|_SCREENSHOW|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"QB64-PE cannot locate the 'internal' folder"</nowiki>|#FFB100}}
| |
| {{Text|PRINT|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Check that QB64-PE has been extracted properly."</nowiki>|#FFB100}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"For MacOSX, launch 'qb64pe_start.command' or enter './qb64pe' in Terminal."</nowiki>|#FFB100}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"For Linux, in the console enter './qb64pe'."</nowiki>|#FFB100}}
| |
| {{Text|DO|#F0F0F0}}
| |
| {{Text|_LIMIT|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|LOOP|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} {{Text|INKEY$|#F0F0F0}} <> {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|SYSTEM|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Include_GDB_Debugging_Info {{Text|<nowiki>'set using "options.bin"</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DEPENDENCY_LAST
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_LOADFONT = {{Text|1|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_AUDIO_CONVERSION = {{Text|2|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_AUDIO_DECODE = {{Text|3|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_AUDIO_OUT = {{Text|4|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_GL = {{Text|5|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_IMAGE_CODEC = {{Text|6|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_CONSOLE_ONLY = {{Text|7|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}} {{Text|<nowiki>'=2 if via -g switch, =1 if via metacommand $CONSOLE:ONLY</nowiki>|#31C4C4}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_SOCKETS = {{Text|8|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_PRINTER = {{Text|9|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_ICON = {{Text|10|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_SCREENIMAGE = {{Text|11|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_DEVICEINPUT = {{Text|12|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}} {{Text|<nowiki>'removes support for gamepad input if not present</nowiki>|#31C4C4}}
| |
| {{Text|CONST|#F0F0F0}} DEPENDENCY_ZLIB = {{Text|13|#F580B1}}: DEPENDENCY_LAST = DEPENDENCY_LAST + {{Text|1|#F580B1}} {{Text|<nowiki>'ZLIB library linkage, if desired, for compression/decompression.</nowiki>|#31C4C4}}
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DEPENDENCY({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} DEPENDENCY_LAST)
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UseGL {{Text|<nowiki>'declared SUB _GL (no params)</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} OS_BITS {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, WindowTitle {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| OS_BITS = {{Text|64|#F580B1}}: {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"[32BIT]"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} OS_BITS = {{Text|32|#F580B1}}
| |
|
| |
| {{Text|IF|#F0F0F0}} OS_BITS = {{Text|32|#F580B1}} {{Text|THEN|#F0F0F0}} WindowTitle = {{Text|<nowiki>"QB64 Phoenix Edition (x32)"</nowiki>|#FFB100}} {{Text|ELSE|#F0F0F0}} WindowTitle = {{Text|<nowiki>"QB64 Phoenix Edition (x64)"</nowiki>|#FFB100}}
| |
| {{Text|_TITLE|#F0F0F0}} WindowTitle
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ConsoleMode, No_C_Compile_Mode, NoIDEMode
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ShowWarnings {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}, QuietMode {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}, CMDLineFile {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} MonochromeLoggingMode {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
|
| |
| {{Text|TYPE|#F0F0F0}} usedVarList
| |
| {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} id, linenumber, includeLevel, includedLine, scope, localIndex
| |
| {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} arrayElementSize
| |
| {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}} used, watch, isarray, displayFormat {{Text|<nowiki>'displayFormat: 0=DEC;1=HEX;2=BIN;3=OCT</nowiki>|#31C4C4}}
| |
| {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} name, cname, varType, includedFile, subfunc
| |
| {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} watchRange, indexes, elements, elementTypes {{Text|<nowiki>'for Arrays and UDTs</nowiki>|#31C4C4}}
| |
| {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} elementOffset, storage
| |
| {{Text|END|#F0F0F0}} {{Text|TYPE|#F0F0F0}}
| |
|
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} backupUsedVariableList({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} usedVarList
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} typeDefinitions$, backupTypeDefinitions$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} totalVariablesCreated {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, totalMainVariablesCreated {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} bypassNextVariable {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} totalWarnings {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, warningListItems {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, lastWarningHeader {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} duplicateConstWarning {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}, warningsissued {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} emptySCWarning {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}, maxLineNumber {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ExeIconSet {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, qb64prefix$, qb64prefix_set
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} VersionInfoSet {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'Variables to handle $VERSIONINFO metacommand:</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} viFileVersionNum$, viProductVersionNum$, viCompanyName$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} viFileDescription$, viFileVersion$, viInternalName$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} viLegalCopyright$, viLegalTrademarks$, viOriginalFilename$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} viProductName$, viProductVersion$, viComments$, viWeb$
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} NoChecks
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Console
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ScreenHide
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Asserts
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} OptMax {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| OptMax = {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Opt({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax, {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|10|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|<nowiki>' (1,1)="READ"</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' (1,2)="WRITE"</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' (1,3)="READ WRITE"</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} OptWords({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax, {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|10|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'The number of words of each opt () element</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' (1,1)=1 '"READ"</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' (1,2)=1 '"WRITE"</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' (1,3)=2 '"READ WRITE"</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} T({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'The type of the entry</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' t is 0 for ? opts</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' ---------- 0 means ? , 1+ means a symbol or {}block ----------</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' t is 1 for symbol opts</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' t is the number of rhs opt () index enteries for {READ¦WRITE¦READ WRITE} like opts</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Lev({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'The indwelling level of each opt () element (the lowest is 0)</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} EntryLev({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'The level required from which this opt () can be validly be entered/checked-for</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DitchLev({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'The lowest level recorded between the previous Opt and this Opt</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DontPass({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'Set to 1 or 0, with 1 meaning don't pass</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'Determines whether the opt () entry needs to actually be passed to the C++ sub/function</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} TempList({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} PassRule({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} OptMax) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|<nowiki>'0 means no pass rule</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'negative values refer to an opt () element</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'positive values refer to a flag value</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} LevelEntered(OptMax) {{Text|<nowiki>'up to 64 levels supported</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} separgs(OptMax + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} separgslayout(OptMax + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} separgs2(OptMax + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} separgslayout2(OptMax + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} E
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ResolveStaticFunctions
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ResolveStaticFunction_File({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ResolveStaticFunction_Name({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ResolveStaticFunction_Method({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Error_Happened {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Error_Message {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} os {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"[LINUX]"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} MacOSX {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"[MACOSX]"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}} MacOSX = {{Text|1|#F580B1}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} inline_DATA
| |
| {{Text|IF|#F0F0F0}} MacOSX {{Text|THEN|#F0F0F0}} inline_DATA = {{Text|1|#F580B1}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} BATCHFILE_EXTENSION {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| BATCHFILE_EXTENSION = {{Text|<nowiki>".bat"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} BATCHFILE_EXTENSION = {{Text|<nowiki>".sh"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} MacOSX {{Text|THEN|#F0F0F0}} BATCHFILE_EXTENSION = {{Text|<nowiki>".command"</nowiki>|#FFB100}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} inlinedatastr({{Text|255|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|0|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|255|#F580B1}}
| |
| inlinedatastr(i) = str2$(i) + {{Text|<nowiki>","</nowiki>|#FFB100}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} extension {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} path.exe$, path.source$, lastBinaryGenerated$
| |
| extension$ = {{Text|<nowiki>".exe"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} extension$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|<nowiki>'no extension under Linux</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} pathsep {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|1|#F580B1}}
| |
| pathsep$ = {{Text|<nowiki>"\"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} pathsep$ = {{Text|<nowiki>"/"</nowiki>|#FFB100}}
| |
| {{Text|<nowiki>'note: QB64 handles OS specific path separators automatically except under SHELL calls</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror_test
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} tmpdir {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}, tmpdir2 {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} tmpdir$ = {{Text|<nowiki>".\internal\temp\"</nowiki>|#FFB100}}: tmpdir2$ = {{Text|<nowiki>"..\\temp\\"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} tmpdir$ = {{Text|<nowiki>"./internal/temp/"</nowiki>|#FFB100}}: tmpdir2$ = {{Text|<nowiki>"../temp/"</nowiki>|#FFB100}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|NOT|#F0F0F0}} {{Text|_DIREXISTS|#F0F0F0}}(tmpdir$) {{Text|THEN|#F0F0F0}} {{Text|MKDIR|#F0F0F0}} tmpdir$
| |
|
| |
| {{Text|DECLARE|#F0F0F0}} {{Text|LIBRARY|#F0F0F0}}
| |
| {{Text|FUNCTION|#F0F0F0}} getpid& ()
| |
| {{Text|END|#F0F0F0}} {{Text|DECLARE|#F0F0F0}}
| |
|
| |
| thisinstancepid = getpid&
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} tempfolderindex
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}({{Text|_OS$|#F0F0F0}}, {{Text|<nowiki>"LINUX"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}}
| |
| fh = {{Text|FREEFILE|#F0F0F0}}
| |
| {{Text|OPEN|#F0F0F0}} {{Text|<nowiki>".\internal\temp\tempfoldersearch.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|RANDOM|#F0F0F0}} {{Text|AS|#F0F0F0}} #fh {{Text|LEN|#F0F0F0}} = {{Text|LEN|#F0F0F0}}(tempfolderindex)
| |
| tempfolderrecords = {{Text|LOF|#F0F0F0}}(fh) / {{Text|LEN|#F0F0F0}}(tempfolderindex)
| |
| i = {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} tempfolderrecords = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'first run ever?</nowiki>|#31C4C4}}
| |
| {{Text|PUT|#F0F0F0}} #fh, {{Text|1|#F580B1}}, thisinstancepid
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} tempfolderrecords
| |
| {{Text|<nowiki>'check if any of the temp folders is being used = pid still active</nowiki>|#31C4C4}}
| |
| {{Text|GET|#F0F0F0}} #fh, i, tempfoldersearch
| |
|
| |
| {{Text|SHELL|#F0F0F0}} {{Text|_HIDE|#F0F0F0}} {{Text|<nowiki>"ps -p "</nowiki>|#FFB100}} + {{Text|STR$|#F0F0F0}}(tempfoldersearch) + {{Text|<nowiki>" > /dev/null 2>&1; echo $? > internal/temp/checkpid.bin"</nowiki>|#FFB100}}
| |
| fh2 = {{Text|FREEFILE|#F0F0F0}}
| |
| {{Text|OPEN|#F0F0F0}} {{Text|<nowiki>"internal/temp/checkpid.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|BINARY|#F0F0F0}} {{Text|AS|#F0F0F0}} #fh2
| |
| {{Text|LINE|#F0F0F0}} {{Text|INPUT|#F0F0F0}} #fh2, checkpid$
| |
| {{Text|CLOSE|#F0F0F0}} #fh2
| |
| {{Text|IF|#F0F0F0}} {{Text|VAL|#F0F0F0}}(checkpid$) = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'This temp folder was locked by an instance that's no longer active, so</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'this will be our temp folder</nowiki>|#31C4C4}}
| |
| {{Text|PUT|#F0F0F0}} #fh, i, thisinstancepid
| |
| {{Text|EXIT|#F0F0F0}} {{Text|FOR|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} i > tempfolderrecords {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'All indexes were busy. Let's initiate a new one:</nowiki>|#31C4C4}}
| |
| {{Text|PUT|#F0F0F0}} #fh, i, thisinstancepid
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|CLOSE|#F0F0F0}} #fh
| |
| {{Text|IF|#F0F0F0}} i > {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| tmpdir$ = {{Text|<nowiki>"./internal/temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"/"</nowiki>|#FFB100}}: tmpdir2$ = {{Text|<nowiki>"../temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"/"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|_DIREXISTS|#F0F0F0}}(tmpdir$) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|MKDIR|#F0F0F0}} tmpdir$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"temp.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|LOCK|#F0F0F0}} {{Text|WRITE|#F0F0F0}} {{Text|AS|#F0F0F0}} #26
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror_test
| |
| E = {{Text|0|#F580B1}}
| |
| i = {{Text|1|#F580B1}}
| |
| {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"temp.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|LOCK|#F0F0F0}} {{Text|WRITE|#F0F0F0}} {{Text|AS|#F0F0F0}} #26
| |
| {{Text|DO|#F0F0F0}} {{Text|WHILE|#F0F0F0}} E
| |
| i = i + {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} i = {{Text|1000|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Unable to locate the 'internal' folder"</nowiki>|#FFB100}}: {{Text|END|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|MKDIR|#F0F0F0}} {{Text|<nowiki>".\internal\temp"</nowiki>|#FFB100}} + str2$(i)
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} tmpdir$ = {{Text|<nowiki>".\internal\temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"\"</nowiki>|#FFB100}}: tmpdir2$ = {{Text|<nowiki>"..\\temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"\\"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} tmpdir$ = {{Text|<nowiki>"./internal/temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"/"</nowiki>|#FFB100}}: tmpdir2$ = {{Text|<nowiki>"../temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"/"</nowiki>|#FFB100}}
| |
| E = {{Text|0|#F580B1}}
| |
| {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"temp.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|LOCK|#F0F0F0}} {{Text|WRITE|#F0F0F0}} {{Text|AS|#F0F0F0}} #26
| |
| {{Text|LOOP|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
|
| |
| {{Text|<nowiki>'temp folder established</nowiki>|#31C4C4}}
| |
| tempfolderindex = i
| |
| {{Text|IF|#F0F0F0}} i > {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'create modified version of qbx.cpp</nowiki>|#31C4C4}}
| |
| {{Text|OPEN|#F0F0F0}} {{Text|<nowiki>".\internal\c\qbx"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>".cpp"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|AS|#F0F0F0}} #2
| |
| {{Text|OPEN|#F0F0F0}} {{Text|<nowiki>".\internal\c\qbx.cpp"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|BINARY|#F0F0F0}} {{Text|AS|#F0F0F0}} #1
| |
| {{Text|DO|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} {{Text|EOF|#F0F0F0}}({{Text|1|#F580B1}})
| |
| {{Text|LINE|#F0F0F0}} {{Text|INPUT|#F0F0F0}} #1, a$
| |
| x = {{Text|INSTR|#F0F0F0}}(a$, {{Text|<nowiki>"..\\temp\\"</nowiki>|#FFB100}}): {{Text|IF|#F0F0F0}} x {{Text|THEN|#F0F0F0}} a$ = {{Text|LEFT$|#F0F0F0}}(a$, x - {{Text|1|#F580B1}}) + {{Text|<nowiki>"..\\temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"\\"</nowiki>|#FFB100}} + {{Text|RIGHT$|#F0F0F0}}(a$, {{Text|LEN|#F0F0F0}}(a$) - (x + {{Text|9|#F580B1}}))
| |
| x = {{Text|INSTR|#F0F0F0}}(a$, {{Text|<nowiki>"../temp/"</nowiki>|#FFB100}}): {{Text|IF|#F0F0F0}} x {{Text|THEN|#F0F0F0}} a$ = {{Text|LEFT$|#F0F0F0}}(a$, x - {{Text|1|#F580B1}}) + {{Text|<nowiki>"../temp"</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>"/"</nowiki>|#FFB100}} + {{Text|RIGHT$|#F0F0F0}}(a$, {{Text|LEN|#F0F0F0}}(a$) - (x + {{Text|7|#F580B1}}))
| |
| {{Text|PRINT|#F0F0F0}} #2, a$
| |
| {{Text|LOOP|#F0F0F0}}
| |
| {{Text|CLOSE|#F0F0F0}} #1, #2
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} Debug {{Text|THEN|#F0F0F0}} {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"debug.txt"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|AS|#F0F0F0}} #9
| |
|
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} tempfolderindexstr {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'appended to "Untitled"</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} tempfolderindexstr2 {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} tempfolderindex <> {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}} tempfolderindexstr$ = {{Text|<nowiki>"("</nowiki>|#FFB100}} + str2$(tempfolderindex) + {{Text|<nowiki>")"</nowiki>|#FFB100}}: tempfolderindexstr2$ = str2$(tempfolderindex)
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idedebuginfo
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} seperateargs_error
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} seperateargs_error_message {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} compfailed
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} reginternalsubfunc
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} reginternalvariable
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} symboltype_size
| |
| symboltype_size = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} use_global_byte_elements
| |
| use_global_byte_elements = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|<nowiki>'compiler-side IDE data & definitions</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'SHARED variables "passed" to/from the compiler & IDE</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idecommand {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'a 1 byte message-type code, followed by optional string data</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idereturn {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'used to pass formatted-lines and return information back to the IDE</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ideerror {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idecompiled {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idemode {{Text|<nowiki>'1 if using the IDE to compile</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ideerrorline {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'set by qb64-error(...) to the line number it would have reported, this number</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'is later passed to the ide in message #8</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idemessage {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'set by qb64-error(...) to the error message to be reported, this</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'is later passed to the ide in message #8</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} optionexplicit {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} optionexplicitarray {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} optionexplicit_cmd {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ideStartAtLine {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, errorLineInInclude {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} warningInInclude {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, warningInIncludeLine {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} outputfile_cmd$
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} compilelog$
| |
|
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}{{Text|$INCLUDE:|#55FF55}}{{Text|<nowiki>'global\IDEsettings.bas'</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} OutputIsRelativeToStartDir {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| CMDLineFile = ParseCMDLineArgs$
| |
| {{Text|IF|#F0F0F0}} CMDLineFile <> {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|AND|#F0F0F0}} {{Text|_FILEEXISTS|#F0F0F0}}({{Text|_STARTDIR$|#F0F0F0}} + {{Text|<nowiki>"/"</nowiki>|#FFB100}} + CMDLineFile) {{Text|THEN|#F0F0F0}}
| |
| CMDLineFile = {{Text|_STARTDIR$|#F0F0F0}} + {{Text|<nowiki>"/"</nowiki>|#FFB100}} + CMDLineFile
| |
| OutputIsRelativeToStartDir = {{Text|-1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} ConsoleMode {{Text|THEN|#F0F0F0}}
| |
| {{Text|_DEST|#F0F0F0}} {{Text|_CONSOLE|#F0F0F0}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|_CONSOLE|#F0F0F0}} {{Text|OFF|#F0F0F0}}
| |
| {{Text|_SCREENSHOW|#F0F0F0}}
| |
| {{Text|_ICON|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'the function ?=ide(?) should always be passed 0, it returns a message code number, any further information</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'is passed back in idereturn</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'message code numbers:</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'0 no ide present (auto defined array ide() return 0)</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'1 launch ide & with passed filename (compiler->ide)</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'2 begin new compilation with returned line of code (compiler<-ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [2][line of code]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'3 request next line (compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [3]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'4 next line of code returned (compiler<-ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [4][line of code]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'5 no more lines of code exist (compiler<-ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [5]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'6 code is OK/ready (compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [6]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'7 repass the code from the beginning (compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [7]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'8 an error has occurred with 'this' message on 'this' line(compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [8][error message][line as LONG]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'9 C++ compile (if necessary) and run with 'this' name (compiler<-ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [9][name(no path, no .bas)]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'10 The line requires more time to process</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' Pass-back 'line of code' using method [4] when ready</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [10][line of code]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'11 ".EXE file created" message</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'12 The name of the exe I'll create is '...' (compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [12][exe name without .exe]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'255 A qb error happened in the IDE (compiler->ide)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' note: detected by the fact that ideerror was not set to 0</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' [255]</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'hash table data</nowiki>|#31C4C4}}
| |
| {{Text|TYPE|#F0F0F0}} HashListItem
| |
| Flags {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| Reference {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| NextItem {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| PrevItem {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| LastItem {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'note: this value is only valid on the first item in the list</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'note: name is stored in a seperate array of strings</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|TYPE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashFind_NextListItem {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashFind_Reverse {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashFind_SearchFlags {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashFind_Name {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashRemove_LastFound {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListSize {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListNext {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListFreeSize {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListFreeLast {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|<nowiki>'hash lookup tables</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} hash1char({{Text|255|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} hash2char({{Text|65535|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} x = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|26|#F580B1}}
| |
| hash1char({{Text|64|#F580B1}} + x) = x
| |
| hash1char({{Text|96|#F580B1}} + x) = x
| |
| {{Text|NEXT|#F0F0F0}}
| |
| hash1char({{Text|95|#F580B1}}) = {{Text|27|#F580B1}} {{Text|<nowiki>'_</nowiki>|#31C4C4}}
| |
| hash1char({{Text|48|#F580B1}}) = {{Text|28|#F580B1}} {{Text|<nowiki>'0</nowiki>|#31C4C4}}
| |
| hash1char({{Text|49|#F580B1}}) = {{Text|29|#F580B1}} {{Text|<nowiki>'1</nowiki>|#31C4C4}}
| |
| hash1char({{Text|50|#F580B1}}) = {{Text|30|#F580B1}} {{Text|<nowiki>'2</nowiki>|#31C4C4}}
| |
| hash1char({{Text|51|#F580B1}}) = {{Text|31|#F580B1}} {{Text|<nowiki>'3</nowiki>|#31C4C4}}
| |
| hash1char({{Text|52|#F580B1}}) = {{Text|23|#F580B1}} {{Text|<nowiki>'4 'note: x, y, z and beginning alphabet letters avoided because of common usage (eg. a2, y3)</nowiki>|#31C4C4}}
| |
| hash1char({{Text|53|#F580B1}}) = {{Text|22|#F580B1}} {{Text|<nowiki>'5</nowiki>|#31C4C4}}
| |
| hash1char({{Text|54|#F580B1}}) = {{Text|20|#F580B1}} {{Text|<nowiki>'6</nowiki>|#31C4C4}}
| |
| hash1char({{Text|55|#F580B1}}) = {{Text|19|#F580B1}} {{Text|<nowiki>'7</nowiki>|#31C4C4}}
| |
| hash1char({{Text|56|#F580B1}}) = {{Text|18|#F580B1}} {{Text|<nowiki>'8</nowiki>|#31C4C4}}
| |
| hash1char({{Text|57|#F580B1}}) = {{Text|17|#F580B1}} {{Text|<nowiki>'9</nowiki>|#31C4C4}}
| |
| {{Text|FOR|#F0F0F0}} c1 = {{Text|0|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|255|#F580B1}}
| |
| {{Text|FOR|#F0F0F0}} c2 = {{Text|0|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|255|#F580B1}}
| |
| hash2char(c1 + c2 * {{Text|256|#F580B1}}) = hash1char(c1) + hash1char(c2) * {{Text|32|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|<nowiki>'init</nowiki>|#31C4C4}}
| |
| HashListSize = {{Text|65536|#F580B1}}
| |
| HashListNext = {{Text|1|#F580B1}}
| |
| HashListFreeSize = {{Text|1024|#F580B1}}
| |
| HashListFreeLast = {{Text|0|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashList({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} HashListSize) {{Text|AS|#F0F0F0}} HashListItem
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListName({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} HashListSize) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashListFree({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} HashListFreeSize) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} HashTable({{Text|16777215|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'64MB lookup table with indexes to the hashlist</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_LABEL = {{Text|2|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_TYPE = {{Text|4|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_RESERVED = {{Text|8|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_OPERATOR = {{Text|16|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_CUSTOMSYNTAX = {{Text|32|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_SUB = {{Text|64|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_FUNCTION = {{Text|128|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_UDT = {{Text|256|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_UDTELEMENT = {{Text|512|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_CONSTANT = {{Text|1024|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_VARIABLE = {{Text|2048|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_ARRAY = {{Text|4096|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_XELEMENTNAME = {{Text|8192|#F580B1}}
| |
| {{Text|CONST|#F0F0F0}} HASHFLAG_XTYPENAME = {{Text|16384|#F580B1}}
| |
|
| |
| {{Text|TYPE|#F0F0F0}} Label_Type
| |
| State {{Text|AS|#F0F0F0}} {{Text|_UNSIGNED|#F0F0F0}} {{Text|_BYTE|#F0F0F0}} {{Text|<nowiki>'0=label referenced, 1=label created</nowiki>|#31C4C4}}
| |
| cn {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| Scope {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| Data_Offset {{Text|AS|#F0F0F0}} {{Text|_INTEGER64|#F0F0F0}} {{Text|<nowiki>'offset within data</nowiki>|#31C4C4}}
| |
| Data_Referenced {{Text|AS|#F0F0F0}} {{Text|_UNSIGNED|#F0F0F0}} {{Text|_BYTE|#F0F0F0}} {{Text|<nowiki>'set to 1 if data is referenced (data_offset will be used to create the data offset variable)</nowiki>|#31C4C4}}
| |
| Error_Line {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'the line number to reference on errors</nowiki>|#31C4C4}}
| |
| Scope_Restriction {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'cannot exist inside this scope (post checked)</nowiki>|#31C4C4}}
| |
| SourceLineNumber {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|TYPE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} nLabels, Labels_Ubound
| |
| Labels_Ubound = {{Text|100|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Labels({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} Labels_Ubound) {{Text|AS|#F0F0F0}} Label_Type
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} Empty_Label {{Text|AS|#F0F0F0}} Label_Type
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} PossibleSubNameLabels {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'format: name+sp+name+sp+name <-ucase$'d</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} SubNameLabels {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'format: name+sp+name+sp+name <-ucase$'d</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} CreatingLabel {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} AllowLocalName {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DataOffset
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} prepass
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} autoarray
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ontimerid, onkeyid, onstrigid
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} revertmaymusthave({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|10000|#F580B1}})
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} revertmaymusthaven
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} linecontinuation
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} dim2typepassback {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'passes back correct case sensitive version of type</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} inclevel
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} incname({{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'must be full path as given</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} inclinenumber({{Text|100|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} incerror {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} fix046 {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| fix046$ = {{Text|<nowiki>"__"</nowiki>|#FFB100}} + {{Text|<nowiki>"ASCII"</nowiki>|#FFB100}} + {{Text|<nowiki>"_"</nowiki>|#FFB100}} + {{Text|<nowiki>"CHR"</nowiki>|#FFB100}} + {{Text|<nowiki>"_"</nowiki>|#FFB100}} + {{Text|<nowiki>"046"</nowiki>|#FFB100}} + {{Text|<nowiki>"__"</nowiki>|#FFB100}} {{Text|<nowiki>'broken up to avoid detection for layout reversion</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} layout {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'passed to IDE</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} layoutok {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'tracks status of entire line</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} layoutcomment {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} tlayout {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'temporary layout string set by supporting functions</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} layoutdone {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'tracks status of single command</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} fooindwel
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} alphanumeric({{Text|255|#F580B1}})
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|48|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|57|#F580B1}}
| |
| alphanumeric(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|65|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|90|#F580B1}}
| |
| alphanumeric(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|97|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|122|#F580B1}}
| |
| alphanumeric(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|<nowiki>'_ is treated as an alphabet letter</nowiki>|#31C4C4}}
| |
| alphanumeric({{Text|95|#F580B1}}) = {{Text|-1|#F580B1}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} isalpha({{Text|255|#F580B1}})
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|65|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|90|#F580B1}}
| |
| isalpha(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|97|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|122|#F580B1}}
| |
| isalpha(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|<nowiki>'_ is treated as an alphabet letter</nowiki>|#31C4C4}}
| |
| isalpha({{Text|95|#F580B1}}) = {{Text|-1|#F580B1}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} isnumeric({{Text|255|#F580B1}})
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|48|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|57|#F580B1}}
| |
| isnumeric(i) = {{Text|-1|#F580B1}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} lfsinglechar({{Text|255|#F580B1}})
| |
| lfsinglechar({{Text|40|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'(</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|41|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>')</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|42|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'*</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|43|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'+</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|45|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'-</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|47|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'/</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|60|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'<</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|61|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'=</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|62|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'></nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|92|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'\</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|94|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'^</nowiki>|#31C4C4}}
| |
|
| |
| lfsinglechar({{Text|44|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>',</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|46|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'.</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|58|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>':</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|59|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>';</nowiki>|#31C4C4}}
| |
|
| |
| lfsinglechar({{Text|35|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'# (file no only)</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|36|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'$ (metacommand only)</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|63|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'? (print macro)</nowiki>|#31C4C4}}
| |
| lfsinglechar({{Text|95|#F580B1}}) = {{Text|1|#F580B1}} {{Text|<nowiki>'_</nowiki>|#31C4C4}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} nextrunlineindex {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} lineinput3buffer {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} lineinput3index {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} dimstatic {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} staticarraylist {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} staticarraylistn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} commonarraylist {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} commonarraylistn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'CONST support</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constmax {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| constmax = {{Text|100|#F580B1}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constlast {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| constlast = {{Text|-1|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constname(constmax) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constcname(constmax) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constnamesymbol(constmax) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'optional name symbol</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' `1 and `no-number must be handled correctly</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED constlastshared AS LONG 'so any defined inside a sub/function after this index can be "forgotten" when sub/function exits</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'constlastshared = -1</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} consttype(constmax) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'variable type number</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'consttype determines storage</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constinteger(constmax) {{Text|AS|#F0F0F0}} {{Text|_INTEGER64|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constuinteger(constmax) {{Text|AS|#F0F0F0}} {{Text|_UNSIGNED|#F0F0F0}} {{Text|_INTEGER64|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constfloat(constmax) {{Text|AS|#F0F0F0}} {{Text|_FLOAT|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} conststring(constmax) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constsubfunc(constmax) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constdefined(constmax) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'UDT</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'names</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} lasttype {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} lasttypeelement {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|TYPE|#F0F0F0}} idstruct
| |
|
| |
| n {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}} {{Text|<nowiki>'name</nowiki>|#31C4C4}}
| |
| cn {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}} {{Text|<nowiki>'case sensitive version of n</nowiki>|#31C4C4}}
| |
|
| |
| arraytype {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'similar to t</nowiki>|#31C4C4}}
| |
| arrayelements {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| staticarray {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'set for arrays declared in the main module with static elements</nowiki>|#31C4C4}}
| |
|
| |
| mayhave {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|8|#F580B1}} {{Text|<nowiki>'mayhave and musthave are exclusive of each other</nowiki>|#31C4C4}}
| |
| musthave {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|8|#F580B1}}
| |
| t {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'type</nowiki>|#31C4C4}}
| |
|
| |
| tsize {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
|
| |
| subfunc {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'if function=1, sub=2 (max 100 arguments)</nowiki>|#31C4C4}}
| |
| Dependency {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| internal_subfunc {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
|
| |
| callname {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| ccall {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| overloaded {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| args {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| minargs {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| arg {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|400|#F580B1}} {{Text|<nowiki>'similar to t</nowiki>|#31C4C4}}
| |
| argsize {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|400|#F580B1}} {{Text|<nowiki>'similar to tsize (used for fixed length strings)</nowiki>|#31C4C4}}
| |
| specialformat {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| secondargmustbe {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| secondargcantbe {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| ret {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'the value it returns if it is a function (again like t)</nowiki>|#31C4C4}}
| |
|
| |
| insubfunc {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| insubfuncn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| share {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| nele {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|100|#F580B1}}
| |
| nelereq {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|100|#F580B1}}
| |
| linkid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| linkarg {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| staticscope {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|<nowiki>'For variables which are arguments passed to a sub/function</nowiki>|#31C4C4}}
| |
| sfid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'id number of variable's parent sub/function</nowiki>|#31C4C4}}
| |
| sfarg {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'argument/parameter # within call (1=first)</nowiki>|#31C4C4}}
| |
|
| |
| hr_syntax {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|TYPE|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} id {{Text|AS|#F0F0F0}} idstruct
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} idn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ids_max {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| ids_max = {{Text|1024|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ids({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} ids_max) {{Text|AS|#F0F0F0}} idstruct
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} cmemlist({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} ids_max + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'variables that must be in cmem</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sfcmemargs({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} ids_max + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|100|#F580B1}} {{Text|<nowiki>'s/f arg that must be in cmem</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} arrayelementslist({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} ids_max + {{Text|1|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'arrayelementslist (like cmemlist) helps to resolve the number of elements in arrays with an unknown number of elements. Note: arrays with an unknown number of elements have .arrayelements=-1</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| {{Text|<nowiki>'create blank id template for idclear to copy (stops strings being set to chr$(0))</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} cleariddata {{Text|AS|#F0F0F0}} idstruct
| |
| cleariddata.cn = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.n = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.mayhave = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.musthave = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.callname = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.arg = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.argsize = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.specialformat = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.secondargmustbe = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.secondargcantbe = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.insubfunc = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.nele = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| cleariddata.nelereq = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISSTRING {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISFLOAT {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISUNSIGNED {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISPOINTER {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISFIXEDLENGTH {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISINCONVENTIONALMEMORY {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISOFFSETINBITS {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISARRAY {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISREFERENCE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISUDT {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ISOFFSET {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} STRINGTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} BITTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UBITTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} BYTETYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UBYTETYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} INTEGERTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UINTEGERTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} LONGTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} ULONGTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} INTEGER64TYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UINTEGER64TYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} SINGLETYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DOUBLETYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} FLOATTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} OFFSETTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UOFFSETTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} UDTTYPE {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} gosubid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} redimoption {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} dimoption {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} arraydesc {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} qberrorhappened {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} qberrorcode {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} qberrorline {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|<nowiki>'COMMON SHARED defineaz() AS STRING</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'COMMON SHARED defineextaz() AS STRING</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sourcefile {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'the full path and filename</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} file {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'name of the file (without .bas or path)</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'COMMON SHARED separgs() AS STRING</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} constequation {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} DynamicMode {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} findidsecondarg {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} findanotherid {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} findidinternal {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} currentid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'is the index of the last ID accessed</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} linenumber {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, reallinenumber {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, totallinenumber {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, definingtypeerror {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} wholeline {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} firstLineNumberLabelvWatch {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}, lastLineNumberLabelvWatch {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} vWatchUsedLabels {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}, vWatchUsedSkipLabels {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} linefragment {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|<nowiki>'COMMON SHARED bitmask() AS _INTEGER64</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'COMMON SHARED bitmaskinv() AS _INTEGER64</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} arrayprocessinghappened {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} stringprocessinghappened {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} cleanupstringprocessingcall {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} inputfunctioncalled {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} recompile {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'forces recompilation</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'COMMON SHARED cmemlist() AS INTEGER</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} optionbase {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} addmetastatic {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} addmetadynamic {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} addmetainclude {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} closedmain {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} module {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} subfunc {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} subfuncn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} closedsubfunc {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} subfuncid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} defdatahandle {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} dimsfarray {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} dimshared {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'Allows passing of known elements to recompilation</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sflistn {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|<nowiki>'COMMON SHARED sfidlist() AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'COMMON SHARED sfarglist() AS INTEGER</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'COMMON SHARED sfelelist() AS INTEGER</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} glinkid {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} glinkarg {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} typname2typsize {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} uniquenumbern {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'CLEAR , , 16384</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} bitmask({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|64|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_INTEGER64|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} bitmaskinv({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|64|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_INTEGER64|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} defineextaz({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|27|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} defineaz({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|27|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} {{Text|<nowiki>'27 is an underscore</nowiki>|#31C4C4}}
| |
|
| |
| ISSTRING = {{Text|1073741824|#F580B1}}
| |
| ISFLOAT = {{Text|536870912|#F580B1}}
| |
| ISUNSIGNED = {{Text|268435456|#F580B1}}
| |
| ISPOINTER = {{Text|134217728|#F580B1}}
| |
| ISFIXEDLENGTH = {{Text|67108864|#F580B1}} {{Text|<nowiki>'only set for strings with pointer flag</nowiki>|#31C4C4}}
| |
| ISINCONVENTIONALMEMORY = {{Text|33554432|#F580B1}}
| |
| ISOFFSETINBITS = {{Text|16777216|#F580B1}}
| |
| ISARRAY = {{Text|8388608|#F580B1}}
| |
| ISREFERENCE = {{Text|4194304|#F580B1}}
| |
| ISUDT = {{Text|2097152|#F580B1}}
| |
| ISOFFSET = {{Text|1048576|#F580B1}}
| |
|
| |
| STRINGTYPE = ISSTRING + ISPOINTER
| |
| BITTYPE = {{Text|1&|#F580B1}} + ISPOINTER + ISOFFSETINBITS
| |
| UBITTYPE = {{Text|1&|#F580B1}} + ISPOINTER + ISUNSIGNED + ISOFFSETINBITS {{Text|<nowiki>'QB64 will also support BIT*n, eg. DIM bitarray[10] AS _UNSIGNED _BIT*10</nowiki>|#31C4C4}}
| |
| BYTETYPE = {{Text|8&|#F580B1}} + ISPOINTER
| |
| UBYTETYPE = {{Text|8&|#F580B1}} + ISPOINTER + ISUNSIGNED
| |
| INTEGERTYPE = {{Text|16&|#F580B1}} + ISPOINTER
| |
| UINTEGERTYPE = {{Text|16&|#F580B1}} + ISPOINTER + ISUNSIGNED
| |
| LONGTYPE = {{Text|32&|#F580B1}} + ISPOINTER
| |
| ULONGTYPE = {{Text|32&|#F580B1}} + ISPOINTER + ISUNSIGNED
| |
| INTEGER64TYPE = {{Text|64&|#F580B1}} + ISPOINTER
| |
| UINTEGER64TYPE = {{Text|64&|#F580B1}} + ISPOINTER + ISUNSIGNED
| |
| SINGLETYPE = {{Text|32&|#F580B1}} + ISFLOAT + ISPOINTER
| |
| DOUBLETYPE = {{Text|64&|#F580B1}} + ISFLOAT + ISPOINTER
| |
| FLOATTYPE = {{Text|256&|#F580B1}} + ISFLOAT + ISPOINTER {{Text|<nowiki>'8-32 bytes</nowiki>|#31C4C4}}
| |
| OFFSETTYPE = {{Text|64&|#F580B1}} + ISOFFSET + ISPOINTER: {{Text|IF|#F0F0F0}} OS_BITS = {{Text|32|#F580B1}} {{Text|THEN|#F0F0F0}} OFFSETTYPE = {{Text|32&|#F580B1}} + ISOFFSET + ISPOINTER
| |
| UOFFSETTYPE = {{Text|64&|#F580B1}} + ISOFFSET + ISUNSIGNED + ISPOINTER: {{Text|IF|#F0F0F0}} OS_BITS = {{Text|32|#F580B1}} {{Text|THEN|#F0F0F0}} UOFFSETTYPE = {{Text|32&|#F580B1}} + ISOFFSET + ISUNSIGNED + ISPOINTER
| |
| UDTTYPE = ISUDT + ISPOINTER
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} statementn {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} everycasenewcase {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} controllevel {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'0=not in a control block</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} controltype({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|<nowiki>'1=IF (awaiting END IF)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'2=FOR (awaiting NEXT)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'3=DO (awaiting LOOP [UNTIL¦WHILE param])</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'4=DO WHILE/UNTIL (awaiting LOOP)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'5=WHILE (awaiting WEND)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'6=$IF (precompiler)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'10=SELECT CASE qbs (awaiting END SELECT/CASE)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'11=SELECT CASE int64 (awaiting END SELECT/CASE)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'12=SELECT CASE uint64 (awaiting END SELECT/CASE)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'13=SELECT CASE LONG double (awaiting END SELECT/CASE/CASE ELSE)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'14=SELECT CASE float ...</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'15=SELECT CASE double</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'16=SELECT CASE int32</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'17=SELECT CASE uint32</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'18=CASE (awaiting END SELECT/CASE/CASE ELSE)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'19=CASE ELSE (awaiting END SELECT)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'32=SUB/FUNCTION (awaiting END SUB/FUNCTION)</nowiki>|#31C4C4}}
| |
| {{Text|DIM|#F0F0F0}} controlid({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} controlvalue({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} controlstate({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} controlref({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}} {{Text|<nowiki>'the line number the control was created on</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' Collection of flags indicating which unstable features should be used during compilation</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} unstableFlags({{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|2|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} UNSTABLE_MIDI {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} UNSTABLE_HTTP {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
|
| |
| UNSTABLE_MIDI = {{Text|1|#F580B1}}
| |
| UNSTABLE_HTTP = {{Text|2|#F580B1}}
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror
| |
|
| |
| i2&& = {{Text|1|#F580B1}}
| |
| {{Text|FOR|#F0F0F0}} i&& = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|64|#F580B1}}
| |
| bitmask(i&&) = i2&&
| |
| bitmaskinv(i&&) = {{Text|NOT|#F0F0F0}} i2&&
| |
| i2&& = i2&& + {{Text|2|#F580B1}} ^ i&&
| |
| {{Text|NEXT|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} id2 {{Text|AS|#F0F0F0}} idstruct
| |
|
| |
| cleanupstringprocessingcall$ = {{Text|<nowiki>"qbs_cleanup(qbs_tmp_base,"</nowiki>|#FFB100}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sfidlist({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sfarglist({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} sfelelist({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|<nowiki>'----------------ripgl.bas--------------------------------------------------------------------------------</nowiki>|#31C4C4}}
| |
| gl_scan_header
| |
| {{Text|<nowiki>'----------------ripgl.bas--------------------------------------------------------------------------------</nowiki>|#31C4C4}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|<nowiki>'-----------------------QB64 COMPILER ONCE ONLY SETUP CODE ENDS HERE---------------------------------------</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|IF|#F0F0F0}} NoIDEMode {{Text|THEN|#F0F0F0}} IDE_AutoPosition = {{Text|0|#F580B1}}: {{Text|GOTO|#F0F0F0}} noide
| |
| {{Text|DIM|#F0F0F0}} FileDropEnabled {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} FileDropEnabled = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} FileDropEnabled = {{Text|-1|#F580B1}}: {{Text|_ACCEPTFILEDROP|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} IDE_AutoPosition {{Text|AND|#F0F0F0}} {{Text|NOT|#F0F0F0}} IDE_BypassAutoPosition {{Text|THEN|#F0F0F0}} {{Text|_SCREENMOVE|#F0F0F0}} IDE_LeftPosition, IDE_TopPosition
| |
| idemode = {{Text|1|#F580B1}}
| |
| sendc$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|<nowiki>'no initial message</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} CMDLineFile <> {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|1|#F580B1}}) + CMDLineFile
| |
| sendcommand:
| |
| idecommand$ = sendc$
| |
| C = ide({{Text|0|#F580B1}})
| |
| ideerror = {{Text|0|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} C = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} idemode = {{Text|0|#F580B1}}: {{Text|GOTO|#F0F0F0}} noide
| |
| c$ = idereturn$
| |
|
| |
| {{Text|IF|#F0F0F0}} C = {{Text|2|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'begin</nowiki>|#31C4C4}}
| |
| ideerrorline = {{Text|0|#F580B1}} {{Text|<nowiki>'addresses invalid prepass error line numbers being reported</nowiki>|#31C4C4}}
| |
| idepass = {{Text|1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} fullrecompile
| |
| ideret1:
| |
| wholeline$ = c$
| |
| {{Text|GOTO|#F0F0F0}} ideprepass
| |
| ideret2:
| |
| {{Text|IF|#F0F0F0}} lastLineReturn {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} lastLineReturn
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|3|#F580B1}}) {{Text|<nowiki>'request next line</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} C = {{Text|4|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'next line</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} idepass = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| wholeline$ = c$
| |
| {{Text|GOTO|#F0F0F0}} ideprepass
| |
| {{Text|<nowiki>'(returns to ideret2: above)</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|<nowiki>'assume idepass>1</nowiki>|#31C4C4}}
| |
| a3$ = c$
| |
| continuelinefrom = {{Text|0|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} ide4
| |
| ideret4:
| |
| {{Text|IF|#F0F0F0}} lastLineReturn {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} lastLineReturn
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|3|#F580B1}}) {{Text|<nowiki>'request next line</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} C = {{Text|5|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'end of program reached</nowiki>|#31C4C4}}
| |
|
| |
| lastLine = {{Text|1|#F580B1}}
| |
| lastLineReturn = {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} idepass = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| wholeline$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|GOTO|#F0F0F0}} ideprepass
| |
| {{Text|<nowiki>'(returns to ideret2: above, then to lastLinePrepassReturn below)</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|<nowiki>'idepass>1</nowiki>|#31C4C4}}
| |
| a3$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| continuelinefrom = {{Text|0|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} ide4 {{Text|<nowiki>'returns to ideret4, then to lastLinePrepassReturn below</nowiki>|#31C4C4}}
| |
| lastLineReturn:
| |
| lastLineReturn = {{Text|0|#F580B1}}
| |
| lastLine = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|IF|#F0F0F0}} idepass = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'prepass complete</nowiki>|#31C4C4}}
| |
| idepass = {{Text|2|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} ide3
| |
| ideret3:
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|7|#F580B1}}) {{Text|<nowiki>'repass request</nowiki>|#31C4C4}}
| |
| firstLine = {{Text|1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|<nowiki>'assume idepass=2</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'finalize program</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} ide5
| |
| ideret5: {{Text|<nowiki>'note: won't return here if a recompile was required!</nowiki>|#31C4C4}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|6|#F580B1}}) {{Text|<nowiki>'ready</nowiki>|#31C4C4}}
| |
| idecompiled = {{Text|0|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} C = {{Text|9|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'run</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|IF|#F0F0F0}} idecompiled = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'exe needs to be compiled</nowiki>|#31C4C4}}
| |
| file$ = c$
| |
|
| |
| {{Text|<nowiki>'locate accessible file and truncate</nowiki>|#31C4C4}}
| |
| f$ = file$
| |
|
| |
| path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} SaveExeWithSource {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEN|#F0F0F0}}(ideprogname) {{Text|THEN|#F0F0F0}} path.exe$ = idepath$ + pathsep$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| i = {{Text|1|#F580B1}}
| |
| nextexeindex:
| |
| {{Text|IF|#F0F0F0}} {{Text|_FILEEXISTS|#F0F0F0}}(path.exe$ + file$ + extension$) {{Text|THEN|#F0F0F0}}
| |
| E = {{Text|0|#F580B1}}
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror_test
| |
| {{Text|KILL|#F0F0F0}} path.exe$ + file$ + extension$
| |
| {{Text|ON|#F0F0F0}} {{Text|ERROR|#F0F0F0}} {{Text|GOTO|#F0F0F0}} qberror
| |
| {{Text|IF|#F0F0F0}} E = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| i = i + {{Text|1|#F580B1}}
| |
| file$ = f$ + {{Text|<nowiki>"("</nowiki>|#FFB100}} + str2$(i) + {{Text|<nowiki>")"</nowiki>|#FFB100}}
| |
| {{Text|GOTO|#F0F0F0}} nextexeindex
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'inform IDE of name change if necessary (IDE will respond with message 9 and corrected name)</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} i <> {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|12|#F580B1}}) + file$
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| ideerrorline = {{Text|0|#F580B1}} {{Text|<nowiki>'addresses C++ comp. error's line number</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} ide6
| |
| ideret6:
| |
| idecompiled = {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} iderunmode = {{Text|2|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|11|#F580B1}}) {{Text|<nowiki>'.EXE file created</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'execute program</nowiki>|#31C4C4}}
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|IF|#F0F0F0}} iderunmode = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} NoExeSaved {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'This is the section which deals with if the user selected to run the program without</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'saving an EXE file to the disk.</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'We start off by first running the EXE, and then we delete it from the drive.</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'making it a temporary file when all is said and done.</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} QuotedFilename$({{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) + lastBinaryGenerated$ + {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}})) + ModifyCOMMAND$ {{Text|<nowiki>'run the newly created program</nowiki>|#31C4C4}}
| |
| {{Text|SHELL|#F0F0F0}} {{Text|_HIDE|#F0F0F0}} {{Text|_DONTWAIT|#F0F0F0}} {{Text|<nowiki>"del "</nowiki>|#FFB100}} + QuotedFilename$({{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) + lastBinaryGenerated$ + {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}})) {{Text|<nowiki>'kill it</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(lastBinaryGenerated$, {{Text|LEN|#F0F0F0}}(path.exe$)) = path.exe$ {{Text|THEN|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} QuotedFilename$(lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|KILL|#F0F0F0}} lastBinaryGenerated$
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} QuotedFilename$(path.exe$ + lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|KILL|#F0F0F0}} path.exe$ + lastBinaryGenerated$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| NoExeSaved = {{Text|0|#F580B1}} {{Text|<nowiki>'reset the flag for a temp EXE</nowiki>|#31C4C4}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|6|#F580B1}}) {{Text|<nowiki>'ready</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
|
| |
|
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} {{Text|SHELL|#F0F0F0}} {{Text|_DONTWAIT|#F0F0F0}} QuotedFilename$({{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) + lastBinaryGenerated$ + {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}})) + ModifyCOMMAND$
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(lastBinaryGenerated$, {{Text|LEN|#F0F0F0}}(path.exe$)) = path.exe$ {{Text|THEN|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} {{Text|_DONTWAIT|#F0F0F0}} QuotedFilename$(lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} {{Text|_DONTWAIT|#F0F0F0}} QuotedFilename$(path.exe$ + lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"WIN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} {{Text|SHELL|#F0F0F0}} QuotedFilename$({{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) + lastBinaryGenerated$ + {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}})) + ModifyCOMMAND$
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} os$ = {{Text|<nowiki>"LNX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(lastBinaryGenerated$, {{Text|LEN|#F0F0F0}}(path.exe$)) = path.exe$ {{Text|THEN|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} QuotedFilename$(lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|SHELL|#F0F0F0}} QuotedFilename$(path.exe$ + lastBinaryGenerated$) + ModifyCOMMAND$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} path.exe$ = {{Text|<nowiki>"./"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|DO|#F0F0F0}}: {{Text|LOOP|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} {{Text|INKEY$|#F0F0F0}} = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|DO|#F0F0F0}}: {{Text|LOOP|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} {{Text|_KEYHIT|#F0F0F0}} = {{Text|0|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} idemode {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'Darken fg/bg colors</nowiki>|#31C4C4}}
| |
| dummy = DarkenFGBG({{Text|0|#F580B1}})
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} vWatchOn {{Text|THEN|#F0F0F0}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|254|#F580B1}}) {{Text|<nowiki>'launch debug interface</nowiki>|#31C4C4}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|6|#F580B1}}) {{Text|<nowiki>'ready</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Invalid IDE message"</nowiki>|#FFB100}}: {{Text|END|#F0F0F0}}
| |
|
| |
| ideerror:
| |
| {{Text|IF|#F0F0F0}} {{Text|INSTR|#F0F0F0}}(idemessage$, sp$) {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'Something went wrong here, so let's give a generic error message to the user.</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'(No error message should contain sp$ - that is, CHR$(13), when not in Debug mode)</nowiki>|#31C4C4}}
| |
| terrmsg$ = {{Text|_ERRORMESSAGE$|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} terrmsg$ = {{Text|<nowiki>"No error"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} terrmsg$ = {{Text|<nowiki>"Internal error"</nowiki>|#FFB100}}
| |
| idemessage$ = {{Text|<nowiki>"Compiler error (check for syntax errors) ("</nowiki>|#FFB100}} + terrmsg$ + {{Text|<nowiki>":"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|ERR|#F0F0F0}} {{Text|THEN|#F0F0F0}} idemessage$ = idemessage$ + str2$({{Text|ERR|#F0F0F0}}) + {{Text|<nowiki>"-"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|_ERRORLINE|#F0F0F0}} {{Text|THEN|#F0F0F0}} idemessage$ = idemessage$ + str2$({{Text|_ERRORLINE|#F0F0F0}})
| |
| {{Text|IF|#F0F0F0}} {{Text|_INCLERRORLINE|#F0F0F0}} {{Text|THEN|#F0F0F0}} idemessage$ = idemessage$ + {{Text|<nowiki>"-"</nowiki>|#FFB100}} + {{Text|_INCLERRORFILE$|#F0F0F0}} + {{Text|<nowiki>"-"</nowiki>|#FFB100}} + str2$({{Text|_INCLERRORLINE|#F0F0F0}})
| |
| idemessage$ = idemessage$ + {{Text|<nowiki>")"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} inclevel > {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} idemessage$ = idemessage$ + incerror$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|8|#F580B1}}) + idemessage$ + {{Text|MKL$|#F0F0F0}}(ideerrorline)
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
|
| |
|
| |
| noide:
| |
| {{Text|IF|#F0F0F0}} (qb64versionprinted = {{Text|0|#F580B1}} {{Text|OR|#F0F0F0}} ConsoleMode = {{Text|0|#F580B1}}) {{Text|AND|#F0F0F0}} {{Text|NOT|#F0F0F0}} QuietMode {{Text|THEN|#F0F0F0}}
| |
| qb64versionprinted = {{Text|-1|#F580B1}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"QB64-PE Compiler V"</nowiki>|#FFB100}} + Version$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} CMDLineFile = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|LINE|#F0F0F0}} {{Text|INPUT|#F0F0F0}} ; {{Text|<nowiki>"COMPILE (.bas)>"</nowiki>|#FFB100}}, f$
| |
| {{Text|ELSE|#F0F0F0}}
| |
| f$ = CMDLineFile
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| f$ = {{Text|LTRIM$|#F0F0F0}}({{Text|RTRIM$|#F0F0F0}}(f$))
| |
|
| |
| {{Text|IF|#F0F0F0}} FileHasExtension(f$) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} f$ = f$ + {{Text|<nowiki>".bas"</nowiki>|#FFB100}}
| |
|
| |
| sourcefile$ = f$
| |
| CMDLineFile = sourcefile$
| |
| {{Text|<nowiki>'derive name from sourcefile</nowiki>|#31C4C4}}
| |
| f$ = RemoveFileExtension$(f$)
| |
|
| |
| path.exe$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| currentdir$ = {{Text|_CWD$|#F0F0F0}}
| |
| path.source$ = getfilepath$(sourcefile$)
| |
| {{Text|IF|#F0F0F0}} {{Text|LEN|#F0F0F0}}(path.source$) {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|_DIREXISTS|#F0F0F0}}(path.source$) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Cannot locate source file: "</nowiki>|#FFB100}} + sourcefile$
| |
| {{Text|IF|#F0F0F0}} ConsoleMode {{Text|THEN|#F0F0F0}} {{Text|SYSTEM|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|CHDIR|#F0F0F0}} path.source$
| |
| path.source$ = {{Text|_CWD$|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|RIGHT$|#F0F0F0}}(path.source$, {{Text|1|#F580B1}}) <> pathsep$ {{Text|THEN|#F0F0F0}} path.source$ = path.source$ + pathsep$
| |
| {{Text|CHDIR|#F0F0F0}} currentdir$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} SaveExeWithSource {{Text|THEN|#F0F0F0}} path.exe$ = path.source$
| |
|
| |
| {{Text|FOR|#F0F0F0}} x = {{Text|LEN|#F0F0F0}}(f$) {{Text|TO|#F0F0F0}} {{Text|1|#F580B1}} {{Text|STEP|#F0F0F0}} {{Text|-1|#F580B1}}
| |
| a$ = {{Text|MID$|#F0F0F0}}(f$, x, {{Text|1|#F580B1}})
| |
| {{Text|IF|#F0F0F0}} a$ = {{Text|<nowiki>"/"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} a$ = {{Text|<nowiki>"\"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| f$ = {{Text|RIGHT$|#F0F0F0}}(f$, {{Text|LEN|#F0F0F0}}(f$) - x)
| |
| {{Text|EXIT|#F0F0F0}} {{Text|FOR|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| file$ = f$
| |
|
| |
| {{Text|<nowiki>'if cmemlist(currentid+1)<>0 before calling regid the variable</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'MUST be defined in cmem!</nowiki>|#31C4C4}}
| |
|
| |
| fullrecompile:
| |
|
| |
| {{Text|IF|#F0F0F0}} idemode = {{Text|0|#F580B1}} {{Text|AND|#F0F0F0}} {{Text|NOT|#F0F0F0}} QuietMode {{Text|THEN|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Beginning C++ output from QB64 code... "</nowiki>|#FFB100}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| BU_DEPENDENCY_CONSOLE_ONLY = DEPENDENCY(DEPENDENCY_CONSOLE_ONLY)
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|UBOUND|#F0F0F0}}(DEPENDENCY): DEPENDENCY(i) = {{Text|0|#F580B1}}: {{Text|NEXT|#F0F0F0}}
| |
| DEPENDENCY(DEPENDENCY_CONSOLE_ONLY) = BU_DEPENDENCY_CONSOLE_ONLY {{Text|AND|#F0F0F0}} {{Text|2|#F580B1}} {{Text|<nowiki>'Restore -g switch if used</nowiki>|#31C4C4}}
| |
|
| |
| Error_Happened = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|FOR|#F0F0F0}} closeall = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|255|#F580B1}}: {{Text|CLOSE|#F0F0F0}} closeall: {{Text|NEXT|#F0F0F0}}
| |
|
| |
| {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"temp.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|LOCK|#F0F0F0}} {{Text|WRITE|#F0F0F0}} {{Text|AS|#F0F0F0}} #26 {{Text|<nowiki>'relock</nowiki>|#31C4C4}}
| |
|
| |
| bh = OpenBuffer%({{Text|<nowiki>"O"</nowiki>|#FFB100}}, tmpdir$ + {{Text|<nowiki>"dyninfo.txt"</nowiki>|#FFB100}})
| |
|
| |
| {{Text|IF|#F0F0F0}} Debug {{Text|THEN|#F0F0F0}} {{Text|CLOSE|#F0F0F0}} #9: {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"debug.txt"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|AS|#F0F0F0}} #9
| |
|
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} ids_max + {{Text|1|#F580B1}}
| |
| arrayelementslist(i) = {{Text|0|#F580B1}}
| |
| cmemlist(i) = {{Text|0|#F580B1}}
| |
| sfcmemargs(i) = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'erase cmemlist</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'erase sfcmemargs</nowiki>|#31C4C4}}
| |
|
| |
| lastunresolved = {{Text|-1|#F580B1}} {{Text|<nowiki>'first pass</nowiki>|#31C4C4}}
| |
| sflistn = {{Text|-1|#F580B1}} {{Text|<nowiki>'no entries</nowiki>|#31C4C4}}
| |
|
| |
| SubNameLabels = sp {{Text|<nowiki>'QB64 will perform a repass to resolve sub names used as labels</nowiki>|#31C4C4}}
| |
|
| |
| vWatchDesiredState = {{Text|0|#F580B1}}
| |
| vWatchRecompileAttempts = {{Text|0|#F580B1}}
| |
|
| |
| qb64prefix_set_desiredState = {{Text|0|#F580B1}}
| |
| qb64prefix_set_recompileAttempts = {{Text|0|#F580B1}}
| |
|
| |
| opex_desiredState = {{Text|0|#F580B1}}
| |
| opex_recompileAttempts = {{Text|0|#F580B1}}
| |
|
| |
| opexarray_desiredState = {{Text|0|#F580B1}}
| |
| opexarray_recompileAttempts = {{Text|0|#F580B1}}
| |
|
| |
| recompile:
| |
| vWatchOn = vWatchDesiredState
| |
| vWatchVariable {{Text|<nowiki>""</nowiki>|#FFB100}}, {{Text|-1|#F580B1}} {{Text|<nowiki>'reset internal variables list</nowiki>|#31C4C4}}
| |
|
| |
| qb64prefix_set = qb64prefix_set_desiredState
| |
| qb64prefix$ = {{Text|<nowiki>"_"</nowiki>|#FFB100}}
| |
|
| |
| optionexplicit = opex_desiredState
| |
| {{Text|IF|#F0F0F0}} optionexplicit_cmd = {{Text|-1|#F580B1}} {{Text|AND|#F0F0F0}} NoIDEMode = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}} optionexplicit = {{Text|-1|#F580B1}}
| |
| optionexplicitarray = opexarray_desiredState
| |
|
| |
| lastLineReturn = {{Text|0|#F580B1}}
| |
| lastLine = {{Text|0|#F580B1}}
| |
| firstLine = {{Text|1|#F580B1}}
| |
|
| |
| Resize = {{Text|0|#F580B1}}
| |
| Resize_Scale = {{Text|0|#F580B1}}
| |
|
| |
| UseGL = {{Text|0|#F580B1}}
| |
|
| |
| Error_Happened = {{Text|0|#F580B1}}
| |
|
| |
| HashClear {{Text|<nowiki>'clear the hash table</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'add reserved words to hashtable</nowiki>|#31C4C4}}
| |
|
| |
| f = HASHFLAG_TYPE + HASHFLAG_RESERVED
| |
| HashAdd {{Text|<nowiki>"_UNSIGNED"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_BIT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_BYTE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"INTEGER"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"LONG"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_INTEGER64"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_OFFSET"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"SINGLE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DOUBLE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_FLOAT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"STRING"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"ANY"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
|
| |
| f = HASHFLAG_OPERATOR + HASHFLAG_RESERVED
| |
| HashAdd {{Text|<nowiki>"NOT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"IMP"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"EQV"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"AND"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"OR"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"XOR"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"MOD"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
|
| |
| f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX
| |
| HashAdd {{Text|<nowiki>"LIST"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"BASE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"_EXPLICIT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"AS"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"IS"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"OFF"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"ON"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"STOP"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"TO"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"USING"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'PUT(graphics) statement:</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"PRESET"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"PSET"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'OPEN statement:</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"FOR"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"OUTPUT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"RANDOM"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"BINARY"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"APPEND"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"SHARED"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"ACCESS"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"LOCK"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"READ"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"WRITE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'LINE statement:</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"STEP"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'WIDTH statement:</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"LPRINT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'VIEW statement:</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"PRINT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
|
| |
| f = HASHFLAG_RESERVED + HASHFLAG_XELEMENTNAME + HASHFLAG_XTYPENAME
| |
| {{Text|<nowiki>'A</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'B</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'C</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"COMMON"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"CALL"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"CASE"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"COM"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"CONST"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'D</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"DATA"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DECLARE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEF"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEFDBL"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEFINT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEFLNG"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEFSNG"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DEFSTR"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DIM"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"DO"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'E</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"ERROR"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON ...)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"ELSE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"ELSEIF"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"ENDIF"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"EXIT"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'F</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"FIELD"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"FUNCTION"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'G</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"GOSUB"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"GOTO"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'H</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'I</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"INPUT"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(INPUT$ function exists, so conflicts if allowed as custom syntax)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"IF"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'K</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"KEY"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'L</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"LET"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"LOOP"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"LEN"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(LEN function exists, so conflicts if allowed as custom syntax)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'M</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'N</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"NEXT"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'O</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'P</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"PLAY"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"PEN"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'Q</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'R</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"REDIM"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"REM"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"RESTORE"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"RESUME"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"RETURN"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"RUN"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'S</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"STATIC"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"STRIG"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"SEG"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"SELECT"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"SUB"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"SCREEN"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'T</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"THEN"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"TIMER"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME - HASHFLAG_XTYPENAME, {{Text|0|#F580B1}} {{Text|<nowiki>'(ON...)</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"TYPE"</nowiki>|#FFB100}}, f - HASHFLAG_XELEMENTNAME, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'U</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"UNTIL"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"UEVENT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'V</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'W</nowiki>|#31C4C4}}
| |
| HashAdd {{Text|<nowiki>"WEND"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"WHILE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|<nowiki>'X</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'Y</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'Z</nowiki>|#31C4C4}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|<nowiki>'clear/init variables</nowiki>|#31C4C4}}
| |
| Console = {{Text|0|#F580B1}}
| |
| ScreenHide = {{Text|0|#F580B1}}
| |
| Asserts = {{Text|0|#F580B1}}
| |
| ResolveStaticFunctions = {{Text|0|#F580B1}}
| |
| dynamiclibrary = {{Text|0|#F580B1}}
| |
| dimsfarray = {{Text|0|#F580B1}}
| |
| dimstatic = {{Text|0|#F580B1}}
| |
| AllowLocalName = {{Text|0|#F580B1}}
| |
| PossibleSubNameLabels = sp {{Text|<nowiki>'QB64 will perform a repass to resolve sub names used as labels</nowiki>|#31C4C4}}
| |
| use_global_byte_elements = {{Text|0|#F580B1}}
| |
| dimshared = {{Text|0|#F580B1}}: dimmethod = {{Text|0|#F580B1}}: dimoption = {{Text|0|#F580B1}}: redimoption = {{Text|0|#F580B1}}: commonoption = {{Text|0|#F580B1}}
| |
| mylib$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: mylibopt$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| declaringlibrary = {{Text|0|#F580B1}}
| |
| nLabels = {{Text|0|#F580B1}}
| |
| dynscope = {{Text|0|#F580B1}}
| |
| elsefollowup = {{Text|0|#F580B1}}
| |
| ontimerid = {{Text|0|#F580B1}}: onkeyid = {{Text|0|#F580B1}}: onstrigid = {{Text|0|#F580B1}}
| |
| commonarraylist = {{Text|<nowiki>""</nowiki>|#FFB100}}: commonarraylistn = {{Text|0|#F580B1}}
| |
| staticarraylist = {{Text|<nowiki>""</nowiki>|#FFB100}}: staticarraylistn = {{Text|0|#F580B1}}
| |
| fooindwel = {{Text|0|#F580B1}}
| |
| layout = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| layoutok = {{Text|0|#F580B1}}
| |
| NoChecks = {{Text|0|#F580B1}}
| |
| inclevel = {{Text|0|#F580B1}}
| |
| errorLineInInclude = {{Text|0|#F580B1}}
| |
| addmetainclude$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| nextrunlineindex = {{Text|1|#F580B1}}
| |
| lasttype = {{Text|0|#F580B1}}
| |
| lasttypeelement = {{Text|0|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxname({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxcname({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxsize({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxbytealign({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'first element MUST be on a byte alignment & size is a multiple of 8</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxnext({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtxvariable({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}} {{Text|<nowiki>'true if the udt contains variable length elements</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'elements</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtename({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtecname({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}} * {{Text|256|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtebytealign({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|INTEGER|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtesize({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtetype({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtetypesize({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtearrayelements({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} udtenext({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| definingtype = {{Text|0|#F580B1}}
| |
| definingtypeerror = {{Text|0|#F580B1}}
| |
| constlast = {{Text|-1|#F580B1}}
| |
| {{Text|<nowiki>'constlastshared = -1</nowiki>|#31C4C4}}
| |
| closedmain = {{Text|0|#F580B1}}
| |
| addmetastatic = {{Text|0|#F580B1}}
| |
| addmetadynamic = {{Text|0|#F580B1}}
| |
| DynamicMode = {{Text|0|#F580B1}}
| |
| optionbase = {{Text|0|#F580B1}}
| |
| ExeIconSet = {{Text|0|#F580B1}}
| |
| VersionInfoSet = {{Text|0|#F580B1}}
| |
| viFileVersionNum$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viProductVersionNum$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viCompanyName$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| viFileDescription$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viFileVersion$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viInternalName$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| viLegalCopyright$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viLegalTrademarks$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viOriginalFilename$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| viProductName$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viProductVersion$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viComments$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: viWeb$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| DataOffset = {{Text|0|#F580B1}}
| |
| statementn = {{Text|0|#F580B1}}
| |
| everycasenewcase = {{Text|0|#F580B1}}
| |
| qberrorhappened = {{Text|0|#F580B1}}: qberrorcode = {{Text|0|#F580B1}}: qberrorline = {{Text|0|#F580B1}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|27|#F580B1}}: defineaz(i) = {{Text|<nowiki>"SINGLE"</nowiki>|#FFB100}}: defineextaz(i) = {{Text|<nowiki>"!"</nowiki>|#FFB100}}: {{Text|NEXT|#F0F0F0}}
| |
| controllevel = {{Text|0|#F580B1}}
| |
| findidsecondarg$ = {{Text|<nowiki>""</nowiki>|#FFB100}}: findanotherid = {{Text|0|#F580B1}}: findidinternal = {{Text|0|#F580B1}}: currentid = {{Text|0|#F580B1}}
| |
| linenumber = {{Text|0|#F580B1}}
| |
| wholeline$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| linefragment$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| idn = {{Text|0|#F580B1}}
| |
| arrayprocessinghappened = {{Text|0|#F580B1}}
| |
| stringprocessinghappened = {{Text|0|#F580B1}}
| |
| inputfunctioncalled = {{Text|0|#F580B1}}
| |
| subfuncn = {{Text|0|#F580B1}}
| |
| closedsubfunc = {{Text|0|#F580B1}}
| |
| subfunc = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| SelectCaseCounter = {{Text|0|#F580B1}}
| |
| ExecCounter = {{Text|0|#F580B1}}
| |
| UserDefineCount = {{Text|7|#F580B1}}
| |
| totalVariablesCreated = {{Text|0|#F580B1}}
| |
| typeDefinitions$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| totalMainVariablesCreated = {{Text|0|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} usedVariableList({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} usedVarList
| |
| totalWarnings = {{Text|0|#F580B1}}
| |
| duplicateConstWarning = {{Text|0|#F580B1}}
| |
| emptySCWarning = {{Text|0|#F580B1}}
| |
| warningListItems = {{Text|0|#F580B1}}
| |
| lastWarningHeader = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| vWatchUsedLabels = {{Text|SPACE$|#F0F0F0}}({{Text|1000|#F580B1}})
| |
| vWatchUsedSkipLabels = {{Text|SPACE$|#F0F0F0}}({{Text|1000|#F580B1}})
| |
| firstLineNumberLabelvWatch = {{Text|0|#F580B1}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} warning$({{Text|1000|#F580B1}})
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} warningLines({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} warningIncLines({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|LONG|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} warningIncFiles({{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|STRING|#F0F0F0}}
| |
| maxLineNumber = {{Text|0|#F580B1}}
| |
| uniquenumbern = {{Text|0|#F580B1}}
| |
|
| |
|
| |
| {{Text|<nowiki>''create a type for storing memory blocks</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>''UDT</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>''names</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED lasttype AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtxname(1000) AS STRING * 256</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtxcname(1000) AS STRING * 256</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtxsize(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtxbytealign(1000) AS INTEGER 'first element MUST be on a byte alignment & size is a multiple of 8</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtxnext(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>''elements</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED lasttypeelement AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtename(1000) AS STRING * 256</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtecname(1000) AS STRING * 256</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtebytealign(1000) AS INTEGER</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtesize(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtetype(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtetypesize(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtearrayelements(1000) AS LONG</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'DIM SHARED udtenext(1000) AS LONG</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|<nowiki>'import _MEM type</nowiki>|#31C4C4}}
| |
| ptrsz = OS_BITS \ {{Text|8|#F580B1}}
| |
|
| |
| lasttype = lasttype + {{Text|1|#F580B1}}: i = lasttype
| |
| udtxname(i) = {{Text|<nowiki>"_MEM"</nowiki>|#FFB100}}
| |
| udtxcname(i) = {{Text|<nowiki>"_MEM"</nowiki>|#FFB100}}
| |
| udtxsize(i) = ((ptrsz) * {{Text|5|#F580B1}} + ({{Text|4|#F580B1}}) * {{Text|2|#F580B1}} + ({{Text|8|#F580B1}}) * {{Text|1|#F580B1}}) * {{Text|8|#F580B1}}
| |
| udtxbytealign(i) = {{Text|1|#F580B1}}
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"OFFSET"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"OFFSET"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = OFFSETTYPE: udtesize(i2) = ptrsz * {{Text|8|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtxnext(i) = i2
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"SIZE"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"SIZE"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = OFFSETTYPE: udtesize(i2) = ptrsz * {{Text|8|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"$_LOCK_ID"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"$_LOCK_ID"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = INTEGER64TYPE: udtesize(i2) = {{Text|64|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"$_LOCK_OFFSET"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"$_LOCK_OFFSET"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = OFFSETTYPE: udtesize(i2) = ptrsz * {{Text|8|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"TYPE"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"TYPE"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = OFFSETTYPE: udtesize(i2) = ptrsz * {{Text|8|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"ELEMENTSIZE"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"ELEMENTSIZE"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = OFFSETTYPE: udtesize(i2) = ptrsz * {{Text|8|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| udtenext(i2) = {{Text|0|#F580B1}}
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"IMAGE"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"IMAGE"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = LONGTYPE: udtesize(i2) = {{Text|32|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| udtenext(i2) = {{Text|0|#F580B1}}
| |
| i3 = i2
| |
| lasttypeelement = lasttypeelement + {{Text|1|#F580B1}}: i2 = lasttypeelement
| |
| udtename(i2) = {{Text|<nowiki>"SOUND"</nowiki>|#FFB100}}
| |
| udtecname(i2) = {{Text|<nowiki>"SOUND"</nowiki>|#FFB100}}
| |
| udtebytealign(i2) = {{Text|1|#F580B1}}
| |
| udtetype(i2) = LONGTYPE: udtesize(i2) = {{Text|32|#F580B1}}
| |
| udtetypesize(i2) = {{Text|0|#F580B1}} {{Text|<nowiki>'tsize</nowiki>|#31C4C4}}
| |
| udtenext(i3) = i2
| |
| udtenext(i2) = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|<nowiki>' Reset all unstable flags</nowiki>|#31C4C4}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|UBOUND|#F0F0F0}}(unstableFlags): unstableFlags(i) = {{Text|0|#F580B1}}: {{Text|NEXT|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>' Indicates if a MIDI sound font was selected</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' Captures both the line number and line contents for error reporting later-on</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' in the compilation process</nowiki>|#31C4C4}}
| |
| MidiSoundFontSet = {{Text|0|#F580B1}}
| |
| MidiSoundFontLine$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
|
| |
| {{Text|<nowiki>' If MidiSoundFont$ is blank, then the default is used</nowiki>|#31C4C4}}
| |
| MidiSoundFont$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| {{Text|<nowiki>'begin compilation</nowiki>|#31C4C4}}
| |
| {{Text|FOR|#F0F0F0}} closeall = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|255|#F580B1}}: {{Text|CLOSE|#F0F0F0}} closeall: {{Text|NEXT|#F0F0F0}}
| |
| {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"temp.bin"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|OUTPUT|#F0F0F0}} {{Text|LOCK|#F0F0F0}} {{Text|WRITE|#F0F0F0}} {{Text|AS|#F0F0F0}} #26 {{Text|<nowiki>'relock</nowiki>|#31C4C4}}
| |
|
| |
| bh = OpenBuffer%({{Text|<nowiki>"O"</nowiki>|#FFB100}}, tmpdir$ + {{Text|<nowiki>"icon.rc"</nowiki>|#FFB100}})
| |
|
| |
| {{Text|IF|#F0F0F0}} Debug {{Text|THEN|#F0F0F0}} {{Text|CLOSE|#F0F0F0}} #9: {{Text|OPEN|#F0F0F0}} tmpdir$ + {{Text|<nowiki>"debug.txt"</nowiki>|#FFB100}} {{Text|FOR|#F0F0F0}} {{Text|APPEND|#F0F0F0}} {{Text|AS|#F0F0F0}} #9
| |
|
| |
| {{Text|IF|#F0F0F0}} idemode = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| qberrorhappened = {{Text|-1|#F580B1}}
| |
| {{Text|OPEN|#F0F0F0}} sourcefile$ {{Text|FOR|#F0F0F0}} {{Text|INPUT|#F0F0F0}} {{Text|AS|#F0F0F0}} #1
| |
| qberrorhappened1:
| |
| {{Text|IF|#F0F0F0}} qberrorhappened = {{Text|1|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}}
| |
| {{Text|PRINT|#F0F0F0}} {{Text|<nowiki>"Cannot locate source file: "</nowiki>|#FFB100}} + sourcefile$
| |
| {{Text|IF|#F0F0F0}} ConsoleMode {{Text|THEN|#F0F0F0}} {{Text|SYSTEM|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|1|#F580B1}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|CLOSE|#F0F0F0}} #1
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| qberrorhappened = {{Text|0|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| reginternal
| |
|
| |
| {{Text|IF|#F0F0F0}} qb64prefix_set {{Text|THEN|#F0F0F0}}
| |
| qb64prefix$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
|
| |
| {{Text|<nowiki>'re-add internal keywords without the "_" prefix</nowiki>|#31C4C4}}
| |
| reginternal
| |
|
| |
| f = HASHFLAG_TYPE + HASHFLAG_RESERVED
| |
| HashAdd {{Text|<nowiki>"UNSIGNED"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"BIT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"BYTE"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"INTEGER64"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"OFFSET"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| HashAdd {{Text|<nowiki>"FLOAT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
|
| |
| f = HASHFLAG_RESERVED + HASHFLAG_CUSTOMSYNTAX
| |
| HashAdd {{Text|<nowiki>"EXPLICIT"</nowiki>|#FFB100}}, f, {{Text|0|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|DIM|#F0F0F0}} {{Text|SHARED|#F0F0F0}} GlobTxtBuf: GlobTxtBuf = OpenBuffer%({{Text|<nowiki>"O"</nowiki>|#FFB100}}, tmpdir$ + {{Text|<nowiki>"global.txt"</nowiki>|#FFB100}})
| |
| defdatahandle = GlobTxtBuf
| |
|
| |
| {{Text|IF|#F0F0F0}} iderecompile {{Text|THEN|#F0F0F0}}
| |
| iderecompile = {{Text|0|#F580B1}}
| |
| idepass = {{Text|1|#F580B1}} {{Text|<nowiki>'prepass must be done again</nowiki>|#31C4C4}}
| |
| sendc$ = {{Text|CHR$|#F0F0F0}}({{Text|7|#F580B1}}) {{Text|<nowiki>'repass request</nowiki>|#31C4C4}}
| |
| {{Text|GOTO|#F0F0F0}} sendcommand
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} idemode {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} ideret1
| |
|
| |
| lineinput3load sourcefile$
| |
|
| |
| {{Text|DO|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'### STEVE EDIT FOR CONST EXPANSION 10/11/2013</nowiki>|#31C4C4}}
| |
|
| |
| wholeline$ = lineinput3$
| |
| {{Text|IF|#F0F0F0}} wholeline$ = {{Text|CHR$|#F0F0F0}}({{Text|13|#F580B1}}) {{Text|THEN|#F0F0F0}} {{Text|EXIT|#F0F0F0}} {{Text|DO|#F0F0F0}}
| |
|
| |
| ideprepass:
| |
| prepassLastLine:
| |
|
| |
| {{Text|IF|#F0F0F0}} lastLine <> {{Text|0|#F580B1}} {{Text|OR|#F0F0F0}} firstLine <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| lineBackup$ = wholeline$ {{Text|<nowiki>'backup the real line (will be blank when lastline is set)</nowiki>|#31C4C4}}
| |
| forceIncludeFromRoot$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} vWatchOn {{Text|THEN|#F0F0F0}}
| |
| addingvWatch = {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} firstLine <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} forceIncludeFromRoot$ = {{Text|<nowiki>"internal\support\vwatch\vwatch.bi"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} lastLine <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} forceIncludeFromRoot$ = {{Text|<nowiki>"internal\support\vwatch\vwatch.bm"</nowiki>|#FFB100}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|<nowiki>'IF firstLine <> 0 THEN forceIncludeFromRoot$ = "internal\support\vwatch\vwatch_stub.bi"</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} lastLine <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} forceIncludeFromRoot$ = {{Text|<nowiki>"internal\support\vwatch\vwatch_stub.bm"</nowiki>|#FFB100}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| firstLine = {{Text|0|#F580B1}}: lastLine = {{Text|0|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEN|#F0F0F0}}(forceIncludeFromRoot$) {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} forceInclude_prepass
| |
| forceIncludeCompleted_prepass:
| |
| addingvWatch = {{Text|0|#F580B1}}
| |
| wholeline$ = lineBackup$
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| wholestv$ = wholeline$ {{Text|<nowiki>'### STEVE EDIT FOR CONST EXPANSION 10/11/2013</nowiki>|#31C4C4}}
| |
|
| |
| prepass = {{Text|1|#F580B1}}
| |
| layout = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| layoutok = {{Text|0|#F580B1}}
| |
|
| |
| linenumber = linenumber + {{Text|1|#F580B1}}
| |
| reallinenumber = reallinenumber + {{Text|1|#F580B1}}
| |
|
| |
| {{Text|DO|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} linenumber < {{Text|UBOUND|#F0F0F0}}(InValidLine) {{Text|<nowiki>'color information flag for each line</nowiki>|#31C4C4}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|_PRESERVE|#F0F0F0}} InValidLine({{Text|UBOUND|#F0F0F0}}(InValidLine) + {{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|LOOP|#F0F0F0}}
| |
| InValidLine(linenumber) = {{Text|0|#F580B1}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|LEN|#F0F0F0}}(wholeline$) {{Text|THEN|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|UCASE$|#F0F0F0}}({{Text|_TRIM$|#F0F0F0}}(wholeline$)) = {{Text|<nowiki>"$NOPREFIX"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| qb64prefix_set_desiredState = {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} qb64prefix_set = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} qb64prefix_set_recompileAttempts = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| qb64prefix_set_recompileAttempts = qb64prefix_set_recompileAttempts + {{Text|1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} do_recompile
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| wholeline$ = lineformat(wholeline$)
| |
| {{Text|IF|#F0F0F0}} Error_Happened {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} errmes
| |
|
| |
|
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|RTRIM$|#F0F0F0}}({{Text|UCASE$|#F0F0F0}}(wholestv$)))
| |
|
| |
| {{Text|IF|#F0F0F0}} temp$ = {{Text|<nowiki>"$COLOR:0"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} qb64prefix_set {{Text|THEN|#F0F0F0}}
| |
| addmetainclude$ = getfilepath$({{Text|COMMAND$|#F0F0F0}}({{Text|0|#F580B1}})) + {{Text|<nowiki>"internal"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"support"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color0_noprefix.bi"</nowiki>|#FFB100}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| addmetainclude$ = getfilepath$({{Text|COMMAND$|#F0F0F0}}({{Text|0|#F580B1}})) + {{Text|<nowiki>"internal"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"support"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color0.bi"</nowiki>|#FFB100}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} temp$ = {{Text|<nowiki>"$COLOR:32"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} qb64prefix_set {{Text|THEN|#F0F0F0}}
| |
| addmetainclude$ = getfilepath$({{Text|COMMAND$|#F0F0F0}}({{Text|0|#F580B1}})) + {{Text|<nowiki>"internal"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"support"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color32_noprefix.bi"</nowiki>|#FFB100}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| addmetainclude$ = getfilepath$({{Text|COMMAND$|#F0F0F0}}({{Text|0|#F580B1}})) + {{Text|<nowiki>"internal"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"support"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color"</nowiki>|#FFB100}} + pathsep$ + {{Text|<nowiki>"color32.bi"</nowiki>|#FFB100}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} temp$ = {{Text|<nowiki>"$DEBUG"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| vWatchDesiredState = {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} vWatchOn = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} vWatchRecompileAttempts = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'this is the first time a conflict has occurred, so react immediately with a full recompilation using the desired state</nowiki>|#31C4C4}}
| |
| vWatchRecompileAttempts = vWatchRecompileAttempts + {{Text|1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} do_recompile
| |
| {{Text|ELSE|#F0F0F0}}
| |
| {{Text|<nowiki>'continue compilation to retrieve the final state requested and act on that as required</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|4|#F580B1}}) = {{Text|<nowiki>"$IF "</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|RIGHT$|#F0F0F0}}(temp$, {{Text|5|#F580B1}}) <> {{Text|<nowiki>" THEN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$IF without THEN"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|4|#F580B1}})) {{Text|<nowiki>'strip off the $IF and extra spaces</nowiki>|#31C4C4}}
| |
| temp$ = {{Text|RTRIM$|#F0F0F0}}({{Text|LEFT$|#F0F0F0}}(temp$, {{Text|LEN|#F0F0F0}}(temp$) - {{Text|4|#F580B1}})) {{Text|<nowiki>'and strip off the THEN and extra spaces</nowiki>|#31C4C4}}
| |
| temp = {{Text|INSTR|#F0F0F0}}(temp$, {{Text|<nowiki>"="</nowiki>|#FFB100}})
| |
| ExecCounter = ExecCounter + {{Text|1|#F580B1}}
| |
| ExecLevel(ExecCounter) = {{Text|-1|#F580B1}} {{Text|<nowiki>'default to a skip value</nowiki>|#31C4C4}}
| |
| DefineElse(ExecCounter) = {{Text|1|#F580B1}} {{Text|<nowiki>'1 says we have an $IF statement at this level</nowiki>|#31C4C4}}
| |
| result = EvalPreIF(temp$, a$)
| |
| {{Text|IF|#F0F0F0}} a$ <> {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} result <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| ExecLevel(ExecCounter) = ExecLevel(ExecCounter - {{Text|1|#F580B1}}) {{Text|<nowiki>'So we inherit the execlevel from above</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} ExecLevel(ExecCounter) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} DefineElse(ExecCounter) = DefineElse(ExecCounter) {{Text|OR|#F0F0F0}} {{Text|4|#F580B1}} {{Text|<nowiki>'Else if used and conditon found</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp {{Text|<nowiki>'and then we're finished -- and at this point we didn't make a match so we exit with a DONT READ type flag on our code.</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} temp$ = {{Text|<nowiki>"$ELSE"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$ELSE without $IF"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) {{Text|AND|#F0F0F0}} {{Text|2|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$IF block already has $ELSE statement in it"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| DefineElse(ExecCounter) = DefineElse(ExecCounter) {{Text|OR|#F0F0F0}} {{Text|2|#F580B1}} {{Text|<nowiki>'set the flag to declare an $ELSE already in this block</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) {{Text|AND|#F0F0F0}} {{Text|4|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'If we executed code in a previous IF or ELSE IF statement, we can't do it here</nowiki>|#31C4C4}}
| |
| ExecLevel(ExecCounter) = {{Text|-1|#F580B1}} {{Text|<nowiki>'So we inherit the execlevel from above</nowiki>|#31C4C4}}
| |
| {{Text|ELSE|#F0F0F0}}
| |
| ExecLevel(ExecCounter) = ExecLevel(ExecCounter - {{Text|1|#F580B1}}) {{Text|<nowiki>'If we were processing code before, code after this segment is going to be SKIPPED</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|5|#F580B1}}) = {{Text|<nowiki>"$ELSE"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'looking for $ELSE IF</nowiki>|#31C4C4}}
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|6|#F580B1}}))
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|3|#F580B1}}) = {{Text|<nowiki>"IF "</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$ELSE IF without $IF"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) {{Text|AND|#F0F0F0}} {{Text|2|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$ELSE IF cannot follow $ELSE"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} {{Text|RIGHT$|#F0F0F0}}(temp$, {{Text|5|#F580B1}}) <> {{Text|<nowiki>" THEN"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$ELSE IF without THEN"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) {{Text|AND|#F0F0F0}} {{Text|4|#F580B1}} {{Text|THEN|#F0F0F0}} {{Text|<nowiki>'If we executed code in a previous IF or ELSE IF statement, we can't do it here</nowiki>|#31C4C4}}
| |
| ExecLevel(ExecCounter) = {{Text|-1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|3|#F580B1}})) {{Text|<nowiki>'strip off the IF and extra spaces</nowiki>|#31C4C4}}
| |
| temp$ = {{Text|RTRIM$|#F0F0F0}}({{Text|LEFT$|#F0F0F0}}(temp$, {{Text|LEN|#F0F0F0}}(temp$) - {{Text|4|#F580B1}})) {{Text|<nowiki>'and strip off the THEN and extra spaces</nowiki>|#31C4C4}}
| |
| result = EvalPreIF(temp$, a$)
| |
| {{Text|IF|#F0F0F0}} a$ <> {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} result <> {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| ExecLevel(ExecCounter) = ExecLevel(ExecCounter - {{Text|1|#F580B1}}) {{Text|<nowiki>'So we inherit the execlevel from above</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} ExecLevel(ExecCounter) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} DefineElse(ExecCounter) = DefineElse(ExecCounter) {{Text|OR|#F0F0F0}} {{Text|4|#F580B1}} {{Text|<nowiki>'Else if used and conditon found</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp {{Text|<nowiki>'and then we're finished -- and at this point we didn't make a match so we exit with a DONT READ type flag on our code.</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} temp$ = {{Text|<nowiki>"$END IF"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} temp$ = {{Text|<nowiki>"$ENDIF"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} DefineElse(ExecCounter) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"$END IF without $IF"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| DefineElse(ExecCounter) = {{Text|0|#F580B1}} {{Text|<nowiki>'We no longer have an $IF block at this level</nowiki>|#31C4C4}}
| |
| ExecCounter = ExecCounter - {{Text|1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} ExecLevel(ExecCounter) {{Text|THEN|#F0F0F0}}
| |
| {{Text|DO|#F0F0F0}} {{Text|UNTIL|#F0F0F0}} linenumber < {{Text|UBOUND|#F0F0F0}}(InValidLine)
| |
| {{Text|REDIM|#F0F0F0}} {{Text|_PRESERVE|#F0F0F0}} InValidLine({{Text|UBOUND|#F0F0F0}}(InValidLine) + {{Text|1000|#F580B1}}) {{Text|AS|#F0F0F0}} {{Text|_BYTE|#F0F0F0}}
| |
| {{Text|LOOP|#F0F0F0}}
| |
|
| |
| InValidLine(linenumber) = {{Text|-1|#F580B1}}
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp {{Text|<nowiki>'we don't check for anything inside lines that we've marked for skipping</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|7|#F580B1}}) = {{Text|<nowiki>"$ERROR "</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|7|#F580B1}}))
| |
| a$ = {{Text|<nowiki>"Compilation check failed: "</nowiki>|#FFB100}} + temp$
| |
| {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|5|#F580B1}}) = {{Text|<nowiki>"$LET "</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| temp$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|5|#F580B1}})) {{Text|<nowiki>'simply shorten our string to parse</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>'For starters, let's make certain that we have 3 elements to deal with</nowiki>|#31C4C4}}
| |
| temp = {{Text|INSTR|#F0F0F0}}(temp$, {{Text|<nowiki>"="</nowiki>|#FFB100}}) {{Text|<nowiki>'without an = in there, we can't get a value from the left and right side</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} temp = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"Invalid Syntax. $LET <flag> = <value>"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| l$ = {{Text|RTRIM$|#F0F0F0}}({{Text|LEFT$|#F0F0F0}}(temp$, temp - {{Text|1|#F580B1}})): r$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, temp + {{Text|1|#F580B1}}))
| |
| {{Text|<nowiki>'then validate to make certain the left side looks proper</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} validname(l$) = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}} a$ = {{Text|<nowiki>"Invalid flag name"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(r$, {{Text|1|#F580B1}}) = {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) {{Text|THEN|#F0F0F0}} r$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(r$, {{Text|2|#F580B1}}))
| |
| {{Text|IF|#F0F0F0}} {{Text|RIGHT$|#F0F0F0}}(r$, {{Text|1|#F580B1}}) = {{Text|CHR$|#F0F0F0}}({{Text|34|#F580B1}}) {{Text|THEN|#F0F0F0}} r$ = {{Text|RTRIM$|#F0F0F0}}({{Text|LEFT$|#F0F0F0}}(r$, {{Text|LEN|#F0F0F0}}(r$) - {{Text|1|#F580B1}}))
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(r$, {{Text|1|#F580B1}}) = {{Text|<nowiki>"-"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| r1$ = {{Text|<nowiki>"-"</nowiki>|#FFB100}}
| |
| r$ = {{Text|LTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(r$, {{Text|2|#F580B1}}))
| |
| {{Text|ELSE|#F0F0F0}}
| |
| r1$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| {{Text|<nowiki>'then validate to make certain the left side looks proper</nowiki>|#31C4C4}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|1|#F580B1}} {{Text|TO|#F0F0F0}} {{Text|LEN|#F0F0F0}}(r$)
| |
| a = {{Text|ASC|#F0F0F0}}(r$, i)
| |
| {{Text|SELECT|#F0F0F0}} {{Text|CASE|#F0F0F0}} a
| |
| {{Text|CASE|#F0F0F0}} {{Text|32|#F580B1}}
| |
| {{Text|CASE|#F0F0F0}} {{Text|46|#F580B1}} {{Text|<nowiki>'periods are fine.</nowiki>|#31C4C4}}
| |
| r1$ = r1$ + {{Text|<nowiki>"."</nowiki>|#FFB100}}
| |
| {{Text|CASE|#F0F0F0}} {{Text|IS|#F0F0F0}} < {{Text|48|#F580B1}}, {{Text|IS|#F0F0F0}} > {{Text|90|#F580B1}}
| |
| a$ = {{Text|<nowiki>"Invalid value"</nowiki>|#FFB100}}: {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|CASE|#F0F0F0}} {{Text|ELSE|#F0F0F0}}
| |
| r1$ = r1$ + {{Text|CHR$|#F0F0F0}}(a)
| |
| {{Text|END|#F0F0F0}} {{Text|SELECT|#F0F0F0}}
| |
| {{Text|NEXT|#F0F0F0}}
| |
| r$ = r1$
| |
| {{Text|<nowiki>'First look to see if we have an existing setting like this and if so, update it</nowiki>|#31C4C4}}
| |
| {{Text|FOR|#F0F0F0}} i = {{Text|8|#F580B1}} {{Text|TO|#F0F0F0}} UserDefineCount {{Text|<nowiki>'UserDefineCount 1-7 are reserved for automatic OS/BIT detection & version</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} UserDefine({{Text|0|#F580B1}}, i) = l$ {{Text|THEN|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, i) = r$: {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|NEXT|#F0F0F0}}
| |
| {{Text|<nowiki>'Otherwise create a new setting and set the initial value for it</nowiki>|#31C4C4}}
| |
| UserDefineCount = UserDefineCount + {{Text|1|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} UserDefineCount > {{Text|UBOUND|#F0F0F0}}(UserDefine, {{Text|2|#F580B1}}) {{Text|THEN|#F0F0F0}}
| |
| {{Text|REDIM|#F0F0F0}} {{Text|_PRESERVE|#F0F0F0}} UserDefine({{Text|1|#F580B1}}, {{Text|UBOUND|#F0F0F0}}(UserDefine, {{Text|2|#F580B1}}) + {{Text|10|#F580B1}}) {{Text|<nowiki>'Add another 10 elements to the array so it'll expand as the user adds to it</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
| UserDefine({{Text|0|#F580B1}}, UserDefineCount) = l$
| |
| UserDefine({{Text|1|#F580B1}}, UserDefineCount) = r$
| |
| {{Text|GOTO|#F0F0F0}} finishedlinepp
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>' We check for Unstable flags during the preprocessing step because it</nowiki>|#31C4C4}}
| |
| {{Text|<nowiki>' impacts what valid commands there are in all the other steps</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEFT$|#F0F0F0}}(temp$, {{Text|10|#F580B1}}) = {{Text|<nowiki>"$UNSTABLE:"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| token$ = {{Text|UCASE$|#F0F0F0}}({{Text|LTRIM$|#F0F0F0}}({{Text|RTRIM$|#F0F0F0}}({{Text|MID$|#F0F0F0}}(temp$, {{Text|11|#F580B1}}))))
| |
|
| |
| {{Text|SELECT|#F0F0F0}} {{Text|CASE|#F0F0F0}} token$
| |
| {{Text|CASE|#F0F0F0}} {{Text|<nowiki>"MIDI"</nowiki>|#FFB100}}
| |
| {{Text|IF|#F0F0F0}} {{Text|NOT|#F0F0F0}} UseMiniaudioBackend {{Text|THEN|#F0F0F0}}
| |
| a$ = {{Text|<nowiki>"Midi is not supported with the old OpenAL audio backend."</nowiki>|#FFB100}}
| |
| {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| unstableFlags(UNSTABLE_MIDI) = {{Text|-1|#F580B1}}
| |
|
| |
| {{Text|CASE|#F0F0F0}} {{Text|<nowiki>"HTTP"</nowiki>|#FFB100}}
| |
| unstableFlags(UNSTABLE_HTTP) = {{Text|-1|#F580B1}}
| |
| regUnstableHttp
| |
|
| |
| {{Text|CASE|#F0F0F0}} {{Text|ELSE|#F0F0F0}}
| |
| a$ = {{Text|<nowiki>"Unrecognized unstable flag "</nowiki>|#FFB100}} + AddQuotes$(token$)
| |
| {{Text|GOTO|#F0F0F0}} errmes
| |
| {{Text|END|#F0F0F0}} {{Text|SELECT|#F0F0F0}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| cwholeline$ = wholeline$
| |
| wholeline$ = eleucase$(wholeline$) {{Text|<nowiki>'********REMOVE THIS LINE LATER********</nowiki>|#31C4C4}}
| |
|
| |
|
| |
| addmetadynamic = {{Text|0|#F580B1}}: addmetastatic = {{Text|0|#F580B1}}
| |
| wholelinen = numelements(wholeline$)
| |
|
| |
| {{Text|IF|#F0F0F0}} wholelinen {{Text|THEN|#F0F0F0}}
| |
|
| |
| wholelinei = {{Text|1|#F580B1}}
| |
|
| |
| {{Text|<nowiki>'skip line number?</nowiki>|#31C4C4}}
| |
| e$ = getelement$(wholeline$, {{Text|1|#F580B1}})
| |
| {{Text|IF|#F0F0F0}} ({{Text|ASC|#F0F0F0}}(e$) >= {{Text|48|#F580B1}} {{Text|AND|#F0F0F0}} {{Text|ASC|#F0F0F0}}(e$) <= {{Text|59|#F580B1}}) {{Text|OR|#F0F0F0}} {{Text|ASC|#F0F0F0}}(e$) = {{Text|46|#F580B1}} {{Text|THEN|#F0F0F0}} wholelinei = {{Text|2|#F580B1}}: {{Text|GOTO|#F0F0F0}} ppskpl
| |
|
| |
| {{Text|<nowiki>'skip 'POSSIBLE' line label?</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} wholelinen >= {{Text|2|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| x2 = {{Text|INSTR|#F0F0F0}}(wholeline$, sp + {{Text|<nowiki>":"</nowiki>|#FFB100}} + sp): x3 = x2 + {{Text|2|#F580B1}}
| |
| {{Text|IF|#F0F0F0}} x2 = {{Text|0|#F580B1}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|RIGHT$|#F0F0F0}}(wholeline$, {{Text|2|#F580B1}}) = sp + {{Text|<nowiki>":"</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}} x2 = {{Text|LEN|#F0F0F0}}(wholeline$) - {{Text|1|#F580B1}}: x3 = x2 + {{Text|1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|IF|#F0F0F0}} x2 {{Text|THEN|#F0F0F0}}
| |
| e$ = {{Text|LEFT$|#F0F0F0}}(wholeline$, x2 - {{Text|1|#F580B1}})
| |
| {{Text|IF|#F0F0F0}} validlabel(e$) {{Text|THEN|#F0F0F0}}
| |
| wholeline$ = {{Text|RIGHT$|#F0F0F0}}(wholeline$, {{Text|LEN|#F0F0F0}}(wholeline$) - x3)
| |
| cwholeline$ = {{Text|RIGHT$|#F0F0F0}}(cwholeline$, {{Text|LEN|#F0F0F0}}(wholeline$) - x3)
| |
| wholelinen = numelements(wholeline$)
| |
| {{Text|GOTO|#F0F0F0}} ppskpl
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}} {{Text|<nowiki>'valid</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}} {{Text|<nowiki>'includes ":"</nowiki>|#31C4C4}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}} {{Text|<nowiki>'wholelinen>=2</nowiki>|#31C4C4}}
| |
|
| |
| ppskpl:
| |
| {{Text|IF|#F0F0F0}} wholelinei <= wholelinen {{Text|THEN|#F0F0F0}}
| |
| {{Text|<nowiki>'----------------------------------------</nowiki>|#31C4C4}}
| |
| a$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| ca$ = {{Text|<nowiki>""</nowiki>|#FFB100}}
| |
| ppblda:
| |
| e$ = getelement$(wholeline$, wholelinei)
| |
| ce$ = getelement$(cwholeline$, wholelinei)
| |
| {{Text|IF|#F0F0F0}} e$ = {{Text|<nowiki>":"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} e$ = {{Text|<nowiki>"ELSE"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} e$ = {{Text|<nowiki>"THEN"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} e$ = {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} {{Text|LEN|#F0F0F0}}(a$) {{Text|THEN|#F0F0F0}}
| |
| {{Text|IF|#F0F0F0}} Debug {{Text|THEN|#F0F0F0}} {{Text|PRINT|#F0F0F0}} #9, {{Text|<nowiki>"PP["</nowiki>|#FFB100}} + a$ + {{Text|<nowiki>"]"</nowiki>|#FFB100}}
| |
| n = numelements(a$)
| |
| firstelement$ = getelement(a$, {{Text|1|#F580B1}})
| |
| secondelement$ = getelement(a$, {{Text|2|#F580B1}})
| |
| thirdelement$ = getelement(a$, {{Text|3|#F580B1}})
| |
| {{Text|<nowiki>'========================================</nowiki>|#31C4C4}}
| |
|
| |
| {{Text|IF|#F0F0F0}} n = {{Text|2|#F580B1}} {{Text|AND|#F0F0F0}} firstelement$ = {{Text|<nowiki>"END"</nowiki>|#FFB100}} {{Text|AND|#F0F0F0}} (secondelement$ = {{Text|<nowiki>"SUB"</nowiki>|#FFB100}} {{Text|OR|#F0F0F0}} secondelement$ = {{Text|<nowiki>"FUNCTION"</nowiki>|#FFB100}}) {{Text|THEN|#F0F0F0}}
| |
| closedsubfunc = {{Text|-1|#F580B1}}
| |
| {{Text|END|#F0F0F0}} {{Text|IF|#F0F0F0}}
| |
|
| |
| {{Text|<nowiki>'declare library</nowiki>|#31C4C4}}
| |
| {{Text|IF|#F0F0F0}} declaringlibrary {{Text|THEN|#F0F0F0}}
| |
|
| |
| {{CodeEnd}}
| |