mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-06 01:10:23 +00:00
Adds colored output to verbose mode (-vc switch).
This commit is contained in:
parent
c9ac352d87
commit
9755992de9
119
source/qb64.bas
119
source/qb64.bas
|
@ -91,6 +91,7 @@ _TITLE WindowTitle
|
||||||
|
|
||||||
DIM SHARED ConsoleMode, No_C_Compile_Mode, NoIDEMode
|
DIM SHARED ConsoleMode, No_C_Compile_Mode, NoIDEMode
|
||||||
DIM SHARED VerboseMode AS _BYTE, QuietMode AS _BYTE, CMDLineFile AS STRING
|
DIM SHARED VerboseMode AS _BYTE, QuietMode AS _BYTE, CMDLineFile AS STRING
|
||||||
|
DIM SHARED ColorVerboseMode AS _BYTE
|
||||||
|
|
||||||
TYPE usedVarList
|
TYPE usedVarList
|
||||||
used AS _BYTE
|
used AS _BYTE
|
||||||
|
@ -105,7 +106,7 @@ END TYPE
|
||||||
REDIM SHARED usedVariableList(1000) AS usedVarList, totalVariablesCreated AS LONG
|
REDIM SHARED usedVariableList(1000) AS usedVarList, totalVariablesCreated AS LONG
|
||||||
DIM SHARED totalUnusedVariables AS LONG, bypassNextVariable AS _BYTE
|
DIM SHARED totalUnusedVariables AS LONG, bypassNextVariable AS _BYTE
|
||||||
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING
|
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING
|
||||||
DIM SHARED duplicateConstWarning AS _BYTE
|
DIM SHARED duplicateConstWarning AS _BYTE, warningsissued AS _BYTE
|
||||||
DIM SHARED emptySCWarning AS _BYTE
|
DIM SHARED emptySCWarning AS _BYTE
|
||||||
DIM SHARED ExeIconSet AS LONG, qb64prefix$, qb64prefix_set
|
DIM SHARED ExeIconSet AS LONG, qb64prefix$, qb64prefix_set
|
||||||
DIM SHARED VersionInfoSet AS _BYTE
|
DIM SHARED VersionInfoSet AS _BYTE
|
||||||
|
@ -1113,7 +1114,10 @@ GOTO sendcommand
|
||||||
|
|
||||||
|
|
||||||
noide:
|
noide:
|
||||||
IF (qb64versionprinted = 0 OR ConsoleMode = 0) AND NOT QuietMode THEN qb64versionprinted = -1: PRINT "QB64 Compiler V" + Version$
|
IF (qb64versionprinted = 0 OR ConsoleMode = 0) AND NOT QuietMode THEN
|
||||||
|
qb64versionprinted = -1
|
||||||
|
PRINT "QB64 Compiler V" + Version$
|
||||||
|
END IF
|
||||||
|
|
||||||
IF CMDLineFile = "" THEN
|
IF CMDLineFile = "" THEN
|
||||||
LINE INPUT ; "COMPILE (.bas)>", f$
|
LINE INPUT ; "COMPILE (.bas)>", f$
|
||||||
|
@ -2151,10 +2155,42 @@ DO
|
||||||
IF NOT IgnoreWarnings THEN
|
IF NOT IgnoreWarnings THEN
|
||||||
addWarning 0, 0, 0, "", "Constant already defined (same value):"
|
addWarning 0, 0, 0, "", "Constant already defined (same value):"
|
||||||
addWarning linenumber, inclevel, inclinenumber(inclevel), incname$(inclevel), n$ + " =" + thisconstval$
|
addWarning linenumber, inclevel, inclinenumber(inclevel), incname$(inclevel), n$ + " =" + thisconstval$
|
||||||
IF idemode = 0 THEN
|
IF idemode = 0 AND NOT QuietMode THEN
|
||||||
IF duplicateConstWarning = 0 THEN PRINT: PRINT "Warning: duplicate constant definition";
|
IF ColorVerboseMode THEN COLOR 5
|
||||||
|
IF duplicateConstWarning = 0 THEN PRINT: PRINT "Warning: ";
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
|
PRINT "duplicate constant definition";
|
||||||
IF VerboseMode THEN
|
IF VerboseMode THEN
|
||||||
PRINT ": '"; n$; "' (line"; STR$(linenumber); ")"
|
thisincname$ = getfilepath$(incname$(inclevel))
|
||||||
|
thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1)
|
||||||
|
IF inclevel = 0 THEN
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ": '";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT n$;
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "' (line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(linenumber);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ")"
|
||||||
|
ELSE
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ": '";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT n$;
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "' (line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(linenumber);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT " in file '";
|
||||||
|
IF ColorVerboseMode THEN COLOR 2
|
||||||
|
PRINT thisincname$;
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "')"
|
||||||
|
END IF
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
ELSE
|
ELSE
|
||||||
IF duplicateConstWarning = 0 THEN
|
IF duplicateConstWarning = 0 THEN
|
||||||
duplicateConstWarning = -1
|
duplicateConstWarning = -1
|
||||||
|
@ -5873,10 +5909,38 @@ DO
|
||||||
IF NOT IgnoreWarnings THEN
|
IF NOT IgnoreWarnings THEN
|
||||||
addWarning 0, 0, 0, "", "Empty SELECT CASE block:"
|
addWarning 0, 0, 0, "", "Empty SELECT CASE block:"
|
||||||
addWarning linenumber, inclevel, inclinenumber(inclevel), incname$(inclevel), "END SELECT"
|
addWarning linenumber, inclevel, inclinenumber(inclevel), incname$(inclevel), "END SELECT"
|
||||||
IF idemode = 0 THEN
|
IF idemode = 0 AND NOT QuietMode THEN
|
||||||
IF emptySCWarning = 0 THEN PRINT: PRINT "Warning: Empty SELECT CASE block";
|
IF ColorVerboseMode THEN COLOR 5
|
||||||
|
IF emptySCWarning = 0 THEN PRINT: PRINT "Warning: ";
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
|
PRINT "Empty SELECT CASE block";
|
||||||
IF VerboseMode THEN
|
IF VerboseMode THEN
|
||||||
PRINT ": 'END SELECT' (line"; STR$(linenumber); ")"
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ": ";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT "'END SELECT' ";
|
||||||
|
IF inclevel = 0 THEN
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "(line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(linenumber);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ")"
|
||||||
|
ELSE
|
||||||
|
thisincname$ = getfilepath$(incname$(inclevel))
|
||||||
|
thisincname$ = MID$(incname$(inclevel), LEN(thisincname$) + 1)
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "' (line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(linenumber);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT " in file '";
|
||||||
|
IF ColorVerboseMode THEN COLOR 2
|
||||||
|
PRINT thisincname$;
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "')"
|
||||||
|
END IF
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
ELSE
|
ELSE
|
||||||
IF emptySCWarning = 0 THEN
|
IF emptySCWarning = 0 THEN
|
||||||
emptySCWarning = -1
|
emptySCWarning = -1
|
||||||
|
@ -11514,20 +11578,37 @@ END IF
|
||||||
'CLOSE #1
|
'CLOSE #1
|
||||||
IF NOT IgnoreWarnings THEN
|
IF NOT IgnoreWarnings THEN
|
||||||
IF totalUnusedVariables > 0 THEN
|
IF totalUnusedVariables > 0 THEN
|
||||||
IF idemode = 0 THEN
|
IF idemode = 0 AND NOT QuietMode THEN
|
||||||
PRINT
|
PRINT
|
||||||
PRINT "Warning:"; STR$(totalUnusedVariables); " unused variable";
|
IF ColorVerboseMode THEN COLOR 5
|
||||||
|
PRINT "Warning:";
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
|
PRINT STR$(totalUnusedVariables); " unused variable";
|
||||||
IF totalUnusedVariables > 1 THEN PRINT "s";
|
IF totalUnusedVariables > 1 THEN PRINT "s";
|
||||||
IF VerboseMode THEN
|
IF VerboseMode THEN
|
||||||
PRINT ":"
|
PRINT ":"
|
||||||
FOR i = 1 TO totalVariablesCreated
|
FOR i = 1 TO totalVariablesCreated
|
||||||
IF usedVariableList(i).used = 0 THEN
|
IF usedVariableList(i).used = 0 THEN
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
PRINT SPACE$(4); usedVariableList(i).name; " ("; usedVariableList(i).cname; ", ";
|
PRINT SPACE$(4); usedVariableList(i).name; " ("; usedVariableList(i).cname; ", ";
|
||||||
IF usedVariableList(i).includeLevel > 0 THEN
|
IF usedVariableList(i).includeLevel > 0 THEN
|
||||||
PRINT "line"; STR$(usedVariableList(i).includedLine); " in file '"; usedVariableList(i).includedFile; "')"
|
PRINT "line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(usedVariableList(i).includedLine);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT " in file '";
|
||||||
|
IF ColorVerboseMode THEN COLOR 2
|
||||||
|
PRINT usedVariableList(i).includedFile;
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "')"
|
||||||
ELSE
|
ELSE
|
||||||
PRINT "line"; STR$(whichLine); ")"
|
PRINT "line";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT STR$(usedVariableList(i).linenumber);
|
||||||
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT ")"
|
||||||
END IF
|
END IF
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
NEXT
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -12487,7 +12568,7 @@ IF idemode THEN GOTO ideret6
|
||||||
|
|
||||||
No_C_Compile:
|
No_C_Compile:
|
||||||
|
|
||||||
IF compfailed <> 0 AND ConsoleMode = 0 THEN END 1
|
IF (compfailed <> 0 OR warningsissued <> 0) AND ConsoleMode = 0 THEN END 1
|
||||||
IF compfailed <> 0 THEN SYSTEM 1
|
IF compfailed <> 0 THEN SYSTEM 1
|
||||||
SYSTEM 0
|
SYSTEM 0
|
||||||
|
|
||||||
|
@ -12575,7 +12656,9 @@ IF idemode THEN
|
||||||
END IF
|
END IF
|
||||||
'non-ide mode output
|
'non-ide mode output
|
||||||
PRINT
|
PRINT
|
||||||
|
IF ColorVerboseMode THEN COLOR 4
|
||||||
PRINT a$
|
PRINT a$
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
FOR i = 1 TO LEN(linefragment)
|
FOR i = 1 TO LEN(linefragment)
|
||||||
IF MID$(linefragment, i, 1) = sp$ THEN MID$(linefragment, i, 1) = " "
|
IF MID$(linefragment, i, 1) = sp$ THEN MID$(linefragment, i, 1) = " "
|
||||||
NEXT
|
NEXT
|
||||||
|
@ -12583,7 +12666,12 @@ FOR i = 1 TO LEN(wholeline)
|
||||||
IF MID$(wholeline, i, 1) = sp$ THEN MID$(wholeline, i, 1) = " "
|
IF MID$(wholeline, i, 1) = sp$ THEN MID$(wholeline, i, 1) = " "
|
||||||
NEXT
|
NEXT
|
||||||
PRINT "Caused by (or after):" + linefragment
|
PRINT "Caused by (or after):" + linefragment
|
||||||
PRINT "LINE " + str2(linenumber) + ":" + wholeline
|
IF ColorVerboseMode THEN COLOR 8
|
||||||
|
PRINT "LINE ";
|
||||||
|
IF ColorVerboseMode THEN COLOR 15
|
||||||
|
PRINT str2(linenumber) + ":";
|
||||||
|
IF ColorVerboseMode THEN COLOR 7
|
||||||
|
PRINT wholeline
|
||||||
|
|
||||||
IF ConsoleMode THEN SYSTEM 1
|
IF ConsoleMode THEN SYSTEM 1
|
||||||
END 1
|
END 1
|
||||||
|
@ -12605,6 +12693,7 @@ FUNCTION ParseCMDLineArgs$ ()
|
||||||
PRINT "Options:"
|
PRINT "Options:"
|
||||||
PRINT " <file> Source file to load" ' '80 columns
|
PRINT " <file> Source file to load" ' '80 columns
|
||||||
PRINT " -v Verbose mode"
|
PRINT " -v Verbose mode"
|
||||||
|
PRINT " -vc Verbose mode with color"
|
||||||
PRINT " -q Quiet mode"
|
PRINT " -q Quiet mode"
|
||||||
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"
|
||||||
|
@ -12622,6 +12711,7 @@ FUNCTION ParseCMDLineArgs$ ()
|
||||||
CASE "-v" 'Verbose mode
|
CASE "-v" 'Verbose mode
|
||||||
VerboseMode = -1
|
VerboseMode = -1
|
||||||
cmdlineswitch = -1
|
cmdlineswitch = -1
|
||||||
|
IF LCASE$(token$) = "-vc" THEN ColorVerboseMode = -1
|
||||||
CASE "-q" 'Quiet mode
|
CASE "-q" 'Quiet mode
|
||||||
QuietMode = -1
|
QuietMode = -1
|
||||||
cmdlineswitch = -1
|
cmdlineswitch = -1
|
||||||
|
@ -25193,6 +25283,7 @@ END SUB
|
||||||
|
|
||||||
SUB addWarning (whichLineNumber AS LONG, includeLevel AS LONG, incLineNumber AS LONG, incFileName$, text$)
|
SUB addWarning (whichLineNumber AS LONG, includeLevel AS LONG, incLineNumber AS LONG, incFileName$, text$)
|
||||||
IF NOT IgnoreWarnings THEN
|
IF NOT IgnoreWarnings THEN
|
||||||
|
warningsissued = -1
|
||||||
IF whichLineNumber > 0 THEN
|
IF whichLineNumber > 0 THEN
|
||||||
totalWarnings = totalWarnings + 1
|
totalWarnings = totalWarnings + 1
|
||||||
ELSE
|
ELSE
|
||||||
|
|
Loading…
Reference in a new issue