mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-04 04:50:22 +00:00
Merge branch 'unusedvariables' into development
This commit is contained in:
commit
4d497dd5f2
|
@ -124,13 +124,6 @@ listOfKeywords$ = listOfKeywords$ + "_GLPOPATTRIB@_GLPOPCLIENTATTRIB@_GLPOPMATRI
|
||||||
listOfKeywords$ = listOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@"
|
listOfKeywords$ = listOfKeywords$ + "_SOFTWARE@_SQUAREPIXELS@_STRETCH@_ALLOWFULLSCREEN@_ALL@_ECHO@_INSTRREV@_TRIM$@_ACCEPTFILEDROP@_FINISHDROP@_TOTALDROPPEDFILES@_DROPPEDFILE@_DROPPEDFILE$@_SHR@_SHL@"
|
||||||
|
|
||||||
'IDE MODULE: shared data & definitions
|
'IDE MODULE: shared data & definitions
|
||||||
DIM SHARED mousex AS INTEGER
|
|
||||||
DIM SHARED mousey AS INTEGER
|
|
||||||
DIM SHARED mousewheel AS INTEGER
|
|
||||||
DIM SHARED mousebutton1 AS INTEGER
|
|
||||||
DIM SHARED mousebutton2 AS INTEGER
|
|
||||||
DIM SHARED mousevisible AS INTEGER
|
|
||||||
DIM SHARED mousepassed AS INTEGER
|
|
||||||
'---------------------------------------------------
|
'---------------------------------------------------
|
||||||
DIM SHARED idesubwindow, idehelp
|
DIM SHARED idesubwindow, idehelp
|
||||||
DIM SHARED ideexit
|
DIM SHARED ideexit
|
||||||
|
@ -210,6 +203,7 @@ DIM SHARED OptionsMenuID AS INTEGER, OptionsMenuSwapMouse AS INTEGER, OptionsMen
|
||||||
DIM SHARED OptionsMenuShowErrorsImmediately AS INTEGER
|
DIM SHARED OptionsMenuShowErrorsImmediately AS INTEGER
|
||||||
DIM SHARED ViewMenuID AS INTEGER, ViewMenuShowLineNumbersSubMenuID AS INTEGER
|
DIM SHARED ViewMenuID AS INTEGER, ViewMenuShowLineNumbersSubMenuID AS INTEGER
|
||||||
DIM SHARED ViewMenuShowSeparatorID AS INTEGER, ViewMenuShowBGID AS INTEGER
|
DIM SHARED ViewMenuShowSeparatorID AS INTEGER, ViewMenuShowBGID AS INTEGER
|
||||||
|
DIM SHARED ViewMenuCompilerWarnings AS INTEGER
|
||||||
DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER
|
DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER
|
||||||
DIM SHARED multihighlight AS INTEGER, keywordHighlight AS INTEGER
|
DIM SHARED multihighlight AS INTEGER, keywordHighlight AS INTEGER
|
||||||
DIM SHARED PresetColorSchemes AS INTEGER, TotalColorSchemes AS INTEGER, ColorSchemes$(0)
|
DIM SHARED PresetColorSchemes AS INTEGER, TotalColorSchemes AS INTEGER, ColorSchemes$(0)
|
||||||
|
@ -222,6 +216,3 @@ DIM SHARED idewx, idewy, idecustomfont, idecustomfontfile$, idecustomfontheight,
|
||||||
DIM SHARED iderunmode
|
DIM SHARED iderunmode
|
||||||
'IDE MODULE SECTION END: shared data & definitions
|
'IDE MODULE SECTION END: shared data & definitions
|
||||||
|
|
||||||
DIM SHARED IdeAndroidMenu
|
|
||||||
DIM SHARED IdeAndroidStartScript AS STRING
|
|
||||||
DIM SHARED IdeAndroidMakeScript AS STRING
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
204
source/qb64.bas
204
source/qb64.bas
|
@ -109,8 +109,10 @@ OS_BITS = 64: IF INSTR(_OS$, "[32BIT]") THEN OS_BITS = 32
|
||||||
IF OS_BITS = 32 THEN _TITLE "QB64 x32" ELSE _TITLE "QB64 x64"
|
IF OS_BITS = 32 THEN _TITLE "QB64 x32" ELSE _TITLE "QB64 x64"
|
||||||
|
|
||||||
DIM SHARED ConsoleMode, No_C_Compile_Mode, Cloud, NoIDEMode
|
DIM SHARED ConsoleMode, No_C_Compile_Mode, Cloud, NoIDEMode
|
||||||
DIM SHARED CMDLineFile AS STRING
|
DIM SHARED VerboseMode AS _BYTE, CMDLineFile AS STRING
|
||||||
|
|
||||||
|
DIM SHARED totalUnusedVariables AS LONG, usedVariableList$, bypassNextVariable AS _BYTE
|
||||||
|
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG
|
||||||
DIM SHARED ExeIconSet AS LONG
|
DIM SHARED ExeIconSet AS LONG
|
||||||
DIM SHARED VersionInfoSet AS _BYTE
|
DIM SHARED VersionInfoSet AS _BYTE
|
||||||
|
|
||||||
|
@ -1429,7 +1431,12 @@ subfunc = ""
|
||||||
SelectCaseCounter = 0
|
SelectCaseCounter = 0
|
||||||
ExecCounter = 0
|
ExecCounter = 0
|
||||||
UserDefineCount = 6
|
UserDefineCount = 6
|
||||||
|
usedVariableList$ = ""
|
||||||
|
totalUnusedVariables = 0
|
||||||
|
totalWarnings = 0
|
||||||
|
warningListItems = 0
|
||||||
|
REDIM SHARED warning$(1000)
|
||||||
|
uniquenumbern = 0
|
||||||
|
|
||||||
''create a type for storing memory blocks
|
''create a type for storing memory blocks
|
||||||
''UDT
|
''UDT
|
||||||
|
@ -7280,6 +7287,7 @@ DO
|
||||||
'create variable
|
'create variable
|
||||||
IF LEN(s$) THEN typ$ = s$ ELSE typ$ = t$
|
IF LEN(s$) THEN typ$ = s$ ELSE typ$ = t$
|
||||||
IF optionexplicit THEN a$ = "Variable '" + n$ + "' (" + symbol2fulltypename$(typ$) + ") not defined": GOTO errmes
|
IF optionexplicit THEN a$ = "Variable '" + n$ + "' (" + symbol2fulltypename$(typ$) + ") not defined": GOTO errmes
|
||||||
|
bypassNextVariable = -1
|
||||||
retval = dim2(n$, typ$, method, "")
|
retval = dim2(n$, typ$, method, "")
|
||||||
IF Error_Happened THEN GOTO errmes
|
IF Error_Happened THEN GOTO errmes
|
||||||
'note: variable created!
|
'note: variable created!
|
||||||
|
@ -8450,7 +8458,7 @@ DO
|
||||||
|
|
||||||
IF n = 2 THEN
|
IF n = 2 THEN
|
||||||
IF firstelement$ = "GOSUB" THEN
|
IF firstelement$ = "GOSUB" THEN
|
||||||
xgosub ca$, n
|
xgosub ca$
|
||||||
IF Error_Happened THEN GOTO errmes
|
IF Error_Happened THEN GOTO errmes
|
||||||
'note: layout implemented in xgosub
|
'note: layout implemented in xgosub
|
||||||
GOTO finishedline
|
GOTO finishedline
|
||||||
|
@ -11626,15 +11634,65 @@ OPEN compilelog$ FOR OUTPUT AS #1: CLOSE #1 'Clear log
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'OPEN "unusedVariableList.txt" FOR OUTPUT AS #1: CLOSE #1
|
||||||
|
'OPEN "unusedVariableList.txt" FOR BINARY AS #1
|
||||||
|
'PUT #1, 1, usedVariableList$ 'warning$(1)
|
||||||
|
'CLOSE #1
|
||||||
|
|
||||||
|
IF totalUnusedVariables > 0 THEN
|
||||||
|
IF idemode = 0 THEN
|
||||||
|
PRINT
|
||||||
|
PRINT "WARNING:"; STR$(totalUnusedVariables); " UNUSED VARIABLES";
|
||||||
|
IF VerboseMode THEN
|
||||||
|
PRINT ":"
|
||||||
|
findItem = 0
|
||||||
|
DO
|
||||||
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
IF findItem = 0 THEN EXIT DO
|
||||||
|
whichLine = CVL(MID$(usedVariableList$, findItem - 4, 4))
|
||||||
|
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
||||||
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
|
PRINT SPACE$(4); varname$; " ("; internalVarName$; ", line"; STR$(whichLine); ")"
|
||||||
|
LOOP
|
||||||
|
ELSE
|
||||||
|
PRINT
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
findItem = 0
|
||||||
|
maxVarNameLen = 0
|
||||||
|
DO
|
||||||
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
IF findItem = 0 THEN EXIT DO
|
||||||
|
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
||||||
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
|
IF LEN(varname$) > maxVarNameLen THEN maxVarNameLen = LEN(varname$)
|
||||||
|
LOOP
|
||||||
|
|
||||||
|
findItem = 0
|
||||||
|
addWarning 0, "Unused variables (" + LTRIM$(STR$(totalUnusedVariables)) + "):"
|
||||||
|
DO
|
||||||
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
IF findItem = 0 THEN EXIT DO
|
||||||
|
whichLine = CVL(MID$(usedVariableList$, findItem - 4, 4))
|
||||||
|
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
||||||
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
|
addWarning whichLine, varname$ + SPACE$((maxVarNameLen + 1) - LEN(varname$)) + " (" + internalVarName$ + ")"
|
||||||
|
LOOP
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
IF idemode THEN GOTO ideret5
|
IF idemode THEN GOTO ideret5
|
||||||
ide6:
|
ide6:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF idemode = 0 AND No_C_Compile_Mode = 0 THEN
|
IF idemode = 0 AND No_C_Compile_Mode = 0 THEN
|
||||||
PRINT
|
PRINT
|
||||||
IF os$ = "LNX" THEN
|
IF os$ = "LNX" THEN
|
||||||
|
@ -12683,6 +12741,7 @@ FUNCTION ParseCMDLineArgs$ ()
|
||||||
PRINT
|
PRINT
|
||||||
PRINT "OPTIONS:"
|
PRINT "OPTIONS:"
|
||||||
PRINT " <file> Source file to load" ' '80 columns
|
PRINT " <file> Source file to load" ' '80 columns
|
||||||
|
PRINT " -v Verbose mode (detailed warnings)"
|
||||||
PRINT " -c Compile instead of edit"
|
PRINT " -c Compile instead of edit"
|
||||||
PRINT " -x Compile instead of edit and output the result to the"
|
PRINT " -x Compile instead of edit and output the result to the"
|
||||||
PRINT " console"
|
PRINT " console"
|
||||||
|
@ -12696,6 +12755,8 @@ FUNCTION ParseCMDLineArgs$ ()
|
||||||
PRINT " -l:<line number> Starts the IDE at the specified line number"
|
PRINT " -l:<line number> Starts the IDE at the specified line number"
|
||||||
PRINT
|
PRINT
|
||||||
SYSTEM
|
SYSTEM
|
||||||
|
CASE "-v" 'Verbose mode
|
||||||
|
VerboseMode = -1
|
||||||
CASE "-p" 'Purge
|
CASE "-p" 'Purge
|
||||||
IF os$ = "WIN" THEN
|
IF os$ = "WIN" THEN
|
||||||
CHDIR "internal\c"
|
CHDIR "internal\c"
|
||||||
|
@ -14728,6 +14789,11 @@ FUNCTION dim2 (varname$, typ2$, method, elements$)
|
||||||
Give_Error "Unknown type": EXIT FUNCTION
|
Give_Error "Unknown type": EXIT FUNCTION
|
||||||
dim2exitfunc:
|
dim2exitfunc:
|
||||||
|
|
||||||
|
IF bypassNextVariable = 0 THEN
|
||||||
|
manageVariableList cvarname$, n$, 0
|
||||||
|
END IF
|
||||||
|
bypassNextVariable = 0
|
||||||
|
|
||||||
IF dimsfarray THEN
|
IF dimsfarray THEN
|
||||||
ids(idn).sfid = glinkid
|
ids(idn).sfid = glinkid
|
||||||
ids(idn).sfarg = glinkarg
|
ids(idn).sfarg = glinkarg
|
||||||
|
@ -15119,6 +15185,7 @@ FUNCTION evaluate$ (a2$, typ AS LONG)
|
||||||
END IF 'varname
|
END IF 'varname
|
||||||
NEXT
|
NEXT
|
||||||
END IF 'subfuncn
|
END IF 'subfuncn
|
||||||
|
bypassNextVariable = -1
|
||||||
ignore = dim2(l$, dtyp$, method, fakee$)
|
ignore = dim2(l$, dtyp$, method, fakee$)
|
||||||
IF Error_Happened THEN EXIT FUNCTION
|
IF Error_Happened THEN EXIT FUNCTION
|
||||||
dimstatic = olddimstatic
|
dimstatic = olddimstatic
|
||||||
|
@ -15313,6 +15380,7 @@ FUNCTION evaluate$ (a2$, typ AS LONG)
|
||||||
|
|
||||||
IF Debug THEN PRINT #9, "CREATING VARIABLE:" + x$
|
IF Debug THEN PRINT #9, "CREATING VARIABLE:" + x$
|
||||||
IF optionexplicit THEN Give_Error "Variable '" + x$ + "' (" + symbol2fulltypename$(typ$) + ") not defined": EXIT FUNCTION
|
IF optionexplicit THEN Give_Error "Variable '" + x$ + "' (" + symbol2fulltypename$(typ$) + ") not defined": EXIT FUNCTION
|
||||||
|
bypassNextVariable = -1
|
||||||
retval = dim2(x$, typ$, 1, "")
|
retval = dim2(x$, typ$, 1, "")
|
||||||
IF Error_Happened THEN EXIT FUNCTION
|
IF Error_Happened THEN EXIT FUNCTION
|
||||||
|
|
||||||
|
@ -17126,10 +17194,10 @@ FUNCTION evaluatetotyp$ (a2$, targettyp AS LONG)
|
||||||
IF E = 0 THEN 'no specific element, use size of entire type
|
IF E = 0 THEN 'no specific element, use size of entire type
|
||||||
bytes$ = str2(udtxsize(u) \ 8)
|
bytes$ = str2(udtxsize(u) \ 8)
|
||||||
ELSE 'a specific element
|
ELSE 'a specific element
|
||||||
if (udtetype(E) AND ISSTRING) > 0 AND (udtetype(E) AND ISFIXEDLENGTH) = 0 AND (targettyp = -5) then
|
IF (udtetype(E) AND ISSTRING) > 0 AND (udtetype(E) AND ISFIXEDLENGTH) = 0 AND (targettyp = -5) THEN
|
||||||
evaluatetotyp$ = "(*(qbs**)" + dst$ + ")->len"
|
evaluatetotyp$ = "(*(qbs**)" + dst$ + ")->len"
|
||||||
exit function
|
EXIT FUNCTION
|
||||||
end if
|
END IF
|
||||||
bytes$ = str2(udtesize(E) \ 8)
|
bytes$ = str2(udtesize(E) \ 8)
|
||||||
END IF
|
END IF
|
||||||
evaluatetotyp$ = "byte_element((uint64)" + dst$ + "," + bytes$ + "," + NewByteElement$ + ")"
|
evaluatetotyp$ = "byte_element((uint64)" + dst$ + "," + bytes$ + "," + NewByteElement$ + ")"
|
||||||
|
@ -17745,6 +17813,32 @@ FUNCTION findid& (n2$)
|
||||||
|
|
||||||
id = ids(i)
|
id = ids(i)
|
||||||
|
|
||||||
|
t = id.t
|
||||||
|
IF t = 0 THEN
|
||||||
|
t = id.arraytype
|
||||||
|
IF t AND ISUDT THEN
|
||||||
|
manageVariableList "", scope$ + "ARRAY_UDT_" + RTRIM$(id.n), 1
|
||||||
|
ELSE
|
||||||
|
n$ = id2shorttypename$
|
||||||
|
IF LEFT$(n$, 1) = "_" THEN
|
||||||
|
manageVariableList "", scope$ + "ARRAY" + n$ + "_" + RTRIM$(id.n), 2
|
||||||
|
ELSE
|
||||||
|
manageVariableList "", scope$ + "ARRAY_" + n$ + "_" + RTRIM$(id.n), 3
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
IF t AND ISUDT THEN
|
||||||
|
manageVariableList "", scope$ + "UDT_" + RTRIM$(id.n), 4
|
||||||
|
ELSE
|
||||||
|
n$ = id2shorttypename$
|
||||||
|
IF LEFT$(n$, 1) = "_" THEN
|
||||||
|
manageVariableList "", scope$ + MID$(n$, 2) + "_" + RTRIM$(id.n), 5
|
||||||
|
ELSE
|
||||||
|
manageVariableList "", scope$ + n$ + "_" + RTRIM$(id.n), 6
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
currentid = i
|
currentid = i
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
|
|
||||||
|
@ -21264,7 +21358,6 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
getid idnumber
|
getid idnumber
|
||||||
IF Error_Happened THEN EXIT SUB
|
IF Error_Happened THEN EXIT SUB
|
||||||
|
|
||||||
|
|
||||||
'UDT?
|
'UDT?
|
||||||
IF typ AND ISUDT THEN
|
IF typ AND ISUDT THEN
|
||||||
|
|
||||||
|
@ -21354,6 +21447,8 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
|
|
||||||
'print "setUDTrefer:"+r$,e$
|
'print "setUDTrefer:"+r$,e$
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
|
manageVariableList "", scope$ + n$, 7
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21387,6 +21482,8 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
END IF
|
END IF
|
||||||
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
|
manageVariableList "", r$, 8
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21461,6 +21558,8 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
||||||
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
|
manageVariableList "", r$, 9
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21491,6 +21590,8 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
IF stringprocessinghappened THEN PRINT #12, cleanupstringprocessingcall$ + "0);": stringprocessinghappened = 0
|
IF stringprocessinghappened THEN PRINT #12, cleanupstringprocessingcall$ + "0);": stringprocessinghappened = 0
|
||||||
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
|
manageVariableList "", r$, 10
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21517,6 +21618,10 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
IF stringprocessinghappened THEN PRINT #12, cleanupstringprocessingcall$ + "0);": stringprocessinghappened = 0
|
IF stringprocessinghappened THEN PRINT #12, cleanupstringprocessingcall$ + "0);": stringprocessinghappened = 0
|
||||||
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
|
||||||
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
|
manageVariableList "", r$, 11
|
||||||
|
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF 'variable
|
END IF 'variable
|
||||||
|
|
||||||
|
@ -22267,7 +22372,7 @@ SUB xfilewrite (ca$, n)
|
||||||
layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$
|
layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
SUB xgosub (ca$, n&)
|
SUB xgosub (ca$)
|
||||||
a2$ = getelement(ca$, 2)
|
a2$ = getelement(ca$, 2)
|
||||||
IF validlabel(a2$) = 0 THEN Give_Error "Invalid label": EXIT SUB
|
IF validlabel(a2$) = 0 THEN Give_Error "Invalid label": EXIT SUB
|
||||||
|
|
||||||
|
@ -23171,6 +23276,45 @@ FUNCTION id2fulltypename$
|
||||||
id2fulltypename$ = a$
|
id2fulltypename$ = a$
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
FUNCTION id2shorttypename$
|
||||||
|
t = id.t
|
||||||
|
IF t = 0 THEN t = id.arraytype
|
||||||
|
size = id.tsize
|
||||||
|
bits = t AND 511
|
||||||
|
IF t AND ISUDT THEN
|
||||||
|
a$ = RTRIM$(udtxcname(t AND 511))
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISSTRING THEN
|
||||||
|
IF t AND ISFIXEDLENGTH THEN a$ = "STRING" + str2(size) ELSE a$ = "STRING"
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISOFFSETINBITS THEN
|
||||||
|
IF t AND ISUNSIGNED THEN a$ = "_U" ELSE a$ = "_"
|
||||||
|
IF bits > 1 THEN a$ = a$ + "BIT" + str2(bits) ELSE a$ = a$ + "BIT1"
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISFLOAT THEN
|
||||||
|
IF bits = 32 THEN a$ = "SINGLE"
|
||||||
|
IF bits = 64 THEN a$ = "DOUBLE"
|
||||||
|
IF bits = 256 THEN a$ = "_FLOAT"
|
||||||
|
ELSE 'integer-based
|
||||||
|
IF bits = 8 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "_UBYTE" ELSE a$ = "_BYTE"
|
||||||
|
END IF
|
||||||
|
IF bits = 16 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "UINTEGER" ELSE a$ = "INTEGER"
|
||||||
|
END IF
|
||||||
|
IF bits = 32 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "ULONG" ELSE a$ = "LONG"
|
||||||
|
END IF
|
||||||
|
IF bits = 64 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "_UINTEGER64" ELSE a$ = "_INTEGER64"
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
id2shorttypename$ = a$
|
||||||
|
END FUNCTION
|
||||||
|
|
||||||
FUNCTION symbol2fulltypename$ (s2$)
|
FUNCTION symbol2fulltypename$ (s2$)
|
||||||
'note: accepts both symbols and type names
|
'note: accepts both symbols and type names
|
||||||
s$ = s2$
|
s$ = s2$
|
||||||
|
@ -24819,6 +24963,44 @@ SUB dump_udts
|
||||||
CLOSE #f
|
CLOSE #f
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
|
SUB manageVariableList (name$, __cname$, action AS _BYTE)
|
||||||
|
DIM findItem AS LONG, s$, cname$
|
||||||
|
cname$ = __cname$
|
||||||
|
|
||||||
|
findItem = INSTR(cname$, "[")
|
||||||
|
IF findItem THEN
|
||||||
|
cname$ = LEFT$(cname$, findItem - 1)
|
||||||
|
END IF
|
||||||
|
|
||||||
|
SELECT CASE action
|
||||||
|
CASE 0 'add
|
||||||
|
s$ = CHR$(4) + MKI$(LEN(cname$)) + cname$ + CHR$(5)
|
||||||
|
IF INSTR(usedVariableList$, s$) = 0 THEN
|
||||||
|
ASC(s$, 1) = 3
|
||||||
|
usedVariableList$ = usedVariableList$ + CHR$(1) + MKL$(linenumber) + CHR$(2)
|
||||||
|
usedVariableList$ = usedVariableList$ + "VAR:" + s$ + name$ + CHR$(10)
|
||||||
|
totalUnusedVariables = totalUnusedVariables + 1
|
||||||
|
'warning$(1) = warning$(1) + "Adding " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
||||||
|
END IF
|
||||||
|
CASE ELSE 'find and remove
|
||||||
|
s$ = CHR$(3) + MKI$(LEN(cname$)) + cname$ + CHR$(5)
|
||||||
|
findItem = INSTR(usedVariableList$, s$)
|
||||||
|
IF findItem THEN
|
||||||
|
ASC(usedVariableList$, findItem) = 4
|
||||||
|
totalUnusedVariables = totalUnusedVariables - 1
|
||||||
|
END IF
|
||||||
|
'warning$(1) = warning$(1) + "Action:" + STR$(action) + " Searching " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
||||||
|
END SELECT
|
||||||
|
END SUB
|
||||||
|
|
||||||
|
SUB addWarning (lineNumber AS LONG, text$)
|
||||||
|
warningListItems = warningListItems + 1
|
||||||
|
IF warningListItems > UBOUND(warning$) THEN REDIM _PRESERVE warning$(warningListItems + 999)
|
||||||
|
|
||||||
|
warning$(warningListItems) = MKL$(lineNumber) + text$
|
||||||
|
IF lineNumber > 0 THEN totalWarnings = totalWarnings + 1
|
||||||
|
END SUB
|
||||||
|
|
||||||
'$INCLUDE:'utilities\strings.bas'
|
'$INCLUDE:'utilities\strings.bas'
|
||||||
|
|
||||||
'$INCLUDE:'subs_functions\extensions\opengl\opengl_methods.bas'
|
'$INCLUDE:'subs_functions\extensions\opengl\opengl_methods.bas'
|
||||||
|
|
Loading…
Reference in a new issue