1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-05 00:40:26 +00:00
Commit graph

414 commits

Author SHA1 Message Date
FellippeHeitor 1cad7db996 Prevents adding goto re:undefined vWatch labels. 2021-07-21 00:02:15 -03:00
FellippeHeitor b56ceb924d Fixes vWatch labels not being added. 2021-07-20 20:11:45 -03:00
FellippeHeitor ec807702ce Fixes Next lines not being "steppable". 2021-07-20 17:28:02 -03:00
FellippeHeitor 2ca6cb7c9a Improves vWatch label injection ($DEBUG). 2021-07-20 17:12:00 -03:00
FellippeHeitor dfb33206b4 Fixes duplicate SKIP labels in some scenarios. 2021-07-20 13:16:06 -03:00
FellippeHeitor fe4575a181 Allows empty procedures when $DEBUG is present. 2021-07-20 13:08:09 -03:00
FellippeHeitor 9ade4aea75 Declares *vwatch_local_vars when there are no local vars. 2021-07-20 12:50:17 -03:00
FellippeHeitor 5e53786255 Implements "Skip Line"
Ctrl+P to set line to skip.
Ctrl+Line Click to set line to skip with mouse.
2021-07-20 02:50:54 -03:00
FellippeHeitor aefde3eb55 Implements Set Next Line.
Allows arbitrarily changing the execution order from the IDE.
Ctrl+G in $DEBUG mode to launch the Set Next Line dialog.
2021-07-20 01:06:30 -03:00
FellippeHeitor 4d17873952 Allows END IF and END SELECT to be steppable. 2021-07-19 23:13:00 -03:00
FellippeHeitor d1249d25d5 Send the IDE data when the proram is closing via X button. 2021-07-19 18:08:04 -03:00
FellippeHeitor bfe081b421 Handles STOP as a regular breakpoint in $DEBUG mode. 2021-07-19 02:30:16 -03:00
FellippeHeitor 05d5086682 Prevents "ghost" variables from being added to watch list. 2021-07-19 02:29:13 -03:00
FellippeHeitor de236d4a5f Uses ENVIRON to set send the port number to the debuggee. Also:
- Limits sending "call" info to the IDE (not to hog the communication channel)
- Add $INCLUDE info to call stack.
2021-07-19 00:59:54 -03:00
FellippeHeitor 2f61b9e541 Tweak to previous commit.
`id` can change from the initial line to the last on in this commit. These changes prevent issues with that.
2021-07-18 22:16:16 -03:00
FellippeHeitor 8d35b87fd1 Initial implementation of call stack ($DEBUG). 2021-07-18 22:02:41 -03:00
FellippeHeitor c59cef04d7 Allows sub/functions to be reported in $INCLUDEs.
Reorganizes source/utilities.
2021-07-17 17:25:48 -03:00
FellippeHeitor df691cc3f2 Adds code to send "end signal" even with $CHECKING:OFF. ($DEBUG) 2021-07-17 17:11:02 -03:00
Fellippe Heitor ae887507c2 On error, report back to the IDE. ($DEBUG) 2021-07-16 23:18:46 -03:00
Fellippe Heitor 78fb2ff1b9 Reduces parameters in SUB_VWATCH()
Since `vwatch_linenumber` is a shared variable, it doesn't need to be 
passed to `SUB_VWATCH()`.
2021-07-16 18:51:35 -03:00
Fellippe Heitor 88e2a1fa83 Nooooow it seems proper. 2021-07-16 12:11:41 -03:00
Fellippe Heitor 8d29964587 Reenables detection of undefined arrays. 2021-07-16 12:06:06 -03:00
Fellippe Heitor 4e5c35bb7f Prevents 'fake' variables from showing up.' 2021-07-16 11:59:17 -03:00
Fellippe Heitor af2de0f24e Merge development 2021-07-16 09:25:13 -03:00
Luke Ceddia 809c1fe016
Fix cast of vwatch_local_vars 2021-07-16 16:29:04 +10:00
Fellippe Heitor df56b030f1 Makes sure only vars and arrays are added 2021-07-16 02:26:14 -03:00
Fellippe Heitor e95e8a4825 Adds undeclared variables too 2021-07-16 01:23:46 -03:00
Luke Ceddia 8829518adf
Send var-address init code to maindata.txt instead of global.txt 2021-07-16 14:07:27 +10:00
Fellippe Heitor 74d2e0853a END and SYSTEM send a 'quit' signal to the IDE 2021-07-16 00:52:06 -03:00
Fellippe Heitor f0751243ef Begins work for variable watching 2021-07-15 17:00:31 -03:00
FellippeHeitor eede761f97 Allows OPTION _EXPLICIT/_EXPLICITARRAY to be anywhere.
They can be duplicate now too. And coexist.
2021-07-15 03:34:08 -03:00
FellippeHeitor ad3ae35810 Allows $NOPREFIX to be placed anywhere.
Also allows it to play nice with $DEBUG.
2021-07-15 03:14:53 -03:00
FellippeHeitor f3cd0b08bb Bypasses $INCLUDE lines ($DEBUG Mode) 2021-07-15 01:14:33 -03:00
FellippeHeitor 9f8095a212 Allows pausing more statements.
IF, SELECT, END statements were initially excluded from stepping.
2021-07-15 00:08:36 -03:00
FellippeHeitor b54de08aa3 Implements Step Over for $DEBUG mode
Using Shift+F8 when stepping line by line when on a line of code that contains a SUB/FUNCTION call, the sub-procedure lines will be run without entering the block of code, and execution will resume in the next line of code after the SUB/FUNCTION call.
2021-07-14 21:56:17 -03:00
FellippeHeitor b5cdf1590e Allows $DEBUG to be added anywhere in the code. 2021-07-14 20:34:47 -03:00
Luke Ceddia d03207e955
Link with data even when using $console:only
Closes #151
2021-07-13 16:58:12 +10:00
Fellippe Heitor 19219dbfe5 $DEBUG mode now in working state.
F9 (or clicking a line number) will toggle a breakpoint; When running a 
program, F8 will pause/step line by line, F9 will still be usable to 
toggle breakpoints and F5 will continue execution. ESC exits $DEBUG 
mode.
2021-07-11 21:05:03 -03:00
Fellippe Heitor 7b853bf9f2 First attempt at implementing Step. 2021-07-11 12:55:49 -03:00
Fellippe Heitor b59aa4d7af Begins prototyping a $DEBUG metacommand. 2021-07-09 08:08:49 -03:00
Zachary Spriggs 272b68ddcf Automatically generate manifest file and link
Automatically generate and link manifest file to EXE if a version info value is set. The XML file will use CompanyName, ProductName, and FileDescription as values. This will allow for use of Common Controls v6.0 without keeping a manifest file in the same directory as the executable.
2021-07-07 23:20:38 -04:00
Fellippe Heitor 29d01706e2 Normalizes help references for internally handled commands. 2021-06-23 16:38:41 -03:00
Fellippe Heitor 6181fe54e4 Adds "quick reference" look up for the IDE.
Shows a quick syntax reference once it detects what command one is 
trying to use
2021-06-20 00:04:08 -03:00
Luke Ceddia 7cc7618b8c
Revert 21984092 & 3c829db8 due to compiler failures introduced 2021-06-14 17:59:39 +10:00
Fellippe Heitor 219840929e Turns DEPENDENCY_... into variables instead of Consts 2021-06-03 00:04:02 -03:00
Fellippe Heitor 9d08c78dfc Prevent errors with literal string Consts 2021-05-27 20:08:45 -03:00
Fellippe Heitor 9d20796505 Prevents CONST errors with string functions.
CHR$ et al are not allowed in CONSTS. That's explicit now.
2021-05-21 21:02:20 -03:00
Zachary Spriggs 8484d0fb14 Revert "Fix bug with _BIT variables in functions"
This reverts commit b023f4074b.
2021-04-09 18:07:38 -04:00
Zachary Spriggs b023f4074b Fix bug with _BIT variables in functions
This fix references forum post https://www.qb64.org/forum/index.php?topic=3794.msg131521#msg131521

A C++ error would occur when using a `_BIT` variable as a function argument because our current handling of the translation would reinitialize the variable in the function. This is called shadowing a parameter. I have commented out the line that was causing the error. The code that was provided in the forum post works successfully with this fix.
2021-04-09 12:35:51 -04:00
Zachary Spriggs 3062ca078a
fix indentation 2021-03-19 10:12:29 -04:00
Zachary Spriggs 92865ace3b
Makes $CONSOLE:ONLY set _Source to _Console
With v1.5 release, _Dest _Console would automatically be set but not _Source _Console. This change sets the _Source to _Console.
2021-03-19 10:11:31 -04:00
Doug Kearns f6f7de6d87 Fixes sloppy parsing of array sub arguments
The following now produces a syntax error for the missing closing
parenthesis of the parameter list.

E.g. sub foo(bar(): end sub
2021-03-14 20:30:15 +11:00
Fellippe Heitor 16109a1d42
Merge pull request #144 from dkearns/fix-missing-source-file-message [ci-skip]
Fixes whitespace of missing source file error message
2021-03-09 08:49:43 -03:00
Doug Kearns b8e43388da Fixes whitespace of missing source file error message 2021-03-09 22:35:11 +11:00
Doug Kearns e21a84c170 Fixes the exit status for invalid -s args 2021-03-07 22:54:32 +11:00
Fellippe Heitor a7bdcfe053 Prevents CONST from being used between SUBs. 2021-02-26 00:51:07 -03:00
Doug Kearns 45d1fed31f Changes metacommand parsing to match QuickBasic 4.5
QB45 allows multiple metacommands to appear in a single line and
$INCLUDE is not required to be the last.

Only the last appearance of $INCLUDE, and of $DYNAMIC or $STATIC, is
processed. Earlier appearances of metacommands are ignored.

E.g., the following includes only b.bas and configures static array
allocation
REM $INCLUDE:'a.bas' $DYNAMIC $INCLUDE:'b.bas' $STATIC
2021-02-21 23:45:24 +11:00
Fellippe Heitor 156996b4f9 Warns user that labels are not valid between subs. 2021-02-20 20:37:37 -03:00
Fellippe Heitor 7a26a4a5ba Fixes layout of $IF blocks with operators like >, <, etc. Also:
Colorizes internal special variables/values as part of the $IF 
metacommand. (DEFINED, UNDEFINED, WINDOWS, WIN, LINUX, MAC, MACOSX, 
32BIT, 64BIT, VERSION).
2021-02-18 15:07:07 -03:00
Fellippe Heitor 1272892425 Fixes $LET being incorrectly placed in the IDE while editing. 2021-02-15 21:22:57 -03:00
FellippeHeitor 731e9cd0df Fixes low ASCII characters showing up in Warnings box. 2021-02-14 00:53:14 -03:00
Fellippe Heitor a08d90bd65 Fixes CONST names not maintaining case in STRING * const
DIM variable AS STRING * const would have CONST always turn capitals or 
camel case.
2021-02-10 18:18:41 -03:00
Fellippe Heitor 7492260746 Fixes warning dialog showing weird characters. 2021-02-09 17:27:40 -03:00
Fellippe Heitor 1c5711f15e Retreats 'shift+enter to close block'.
Until a more efficient approach comes up, at least.
2021-02-08 10:58:02 -03:00
Fellippe Heitor 8c1b05f428 Fixes console colors during compilation (*nix).
Turns out the color palette isn't really the same as in Windows.
2021-02-08 07:56:43 -03:00
Fellippe Heitor eac3074e30 Incorporates INI-Manager to deal with the settings file.
Allows for multiple IDE instances using the same config file by default.
2021-02-07 22:01:53 -03:00
Fellippe Heitor 249d0549eb Fixes highlighting of scientific notation numbers. Again. 2021-02-06 18:27:00 -03:00
Fellippe Heitor d9467b4930 Removes "yet" from error messages. 2021-02-06 01:02:25 -03:00
Fellippe Heitor 711e6860bc Adapts isnumber() to recognize number literals with type suffixes. 2021-02-05 17:59:17 -03:00
Fellippe Heitor 8d78700c11 Fixes CONST failing in CamelCase mode with logical operators. 2021-02-05 00:57:05 -03:00
Fellippe Heitor 70ea149168 Offers to auto-close blocks with Shift+ENTER 2021-02-04 22:21:31 -03:00
Fellippe Heitor ef8de59aee Prevents deletion of latest.txt. Also:
Restores case of keywords in qb64.bas.
2021-02-03 14:26:17 -03:00
Fellippe Heitor 13d35dbe6c Missing 'Exit Sub' in CamelCase formatter 2021-02-03 14:08:40 -03:00
Fellippe Heitor fff40a315e Extra touches to CamelCase (NOT, AND, etc). 2021-01-31 14:45:58 -03:00
Fellippe Heitor 59155c4481 Adds the ability to have CamelCase for internal keywords. 2021-01-31 03:44:38 -03:00
Fellippe Heitor 7a1ecd78f9 Fixes bug in CONST evaluator.
As described in https://www.qb64.org/forum/index.php?topic=1303.0
2021-01-29 02:28:28 -03:00
Fellippe Heitor e6b74afbba Replace SUB/FUNCTION accordingly like QB4.5 did
In EXIT SUB/FUNCTION and END SUB/FUNCTION statements.
2021-01-28 18:52:50 -03:00
Luke Ceddia bf1d6664e9
Add pre-compiler VERSION and $ERROR 2021-01-27 22:23:28 +11:00
Fellippe Heitor 9e92d13f70 Adds more descriptive error message for Duplicate Label 2021-01-26 21:01:23 -03:00
Fellippe Heitor 25dbf1ad1f New AS TYPE element-list syntax for TYPE. 2021-01-26 12:27:18 -03:00
Fellippe Heitor fd0b44aee4 Extends the new DIM syntax to SHARED (subs)
e.g. SHARED AS _BYTE array(), index
2021-01-26 04:01:36 -03:00
Fellippe Heitor 61796209bd Implements new alternative syntax for DIM/REDIM/STATIC
DIM AS data-type variable1, variable2, ...
2021-01-26 02:21:24 -03:00
Fellippe Heitor 0199534a31 Automatically calls _DEST _CONSOLE internally when $CONSOLE:ONLY is used.
_DEST can be changed later in the program by the user, as usual.
2021-01-25 22:04:31 -03:00
Fellippe Heitor d5ac71f8a9 Gives more descriptive message for "Label not defined". 2021-01-22 23:22:19 -03:00
FellippeHeitor 933ba12d5b Dead code removal. 2021-01-20 21:53:46 -03:00
FellippeHeitor 7916be2e3e Show eventual substitutions even if Find and Replace is canceled. 2021-01-18 02:25:38 -03:00
FellippeHeitor 6a134929a9 Puts _ERRORMESSAGE$ to good use. 2021-01-18 00:19:33 -03:00
FellippeHeitor 45d483a4ab Unifies compilation progress bar (no console mode) with CHR$(219).
We'd have four different progress bar styles,... now we keep having three.
2021-01-15 20:27:51 -03:00
FellippeHeitor abcb77596d Removes third person singular from help page.
Removes unused variable in SUB manageVariableList
2021-01-14 11:25:57 -03:00
Luke Ceddia f2ce507d4e
Add -w, -m options 2021-01-15 00:09:45 +11:00
Luke Ceddia 7633a64ccb
Show warnings with -v -q 2021-01-14 22:45:27 +11:00
FellippeHeitor 2ce9afe739 Makes colored output default for command line compilation. 2021-01-13 23:54:20 -03:00
FellippeHeitor 4dd5d11c8c Improves console output in verbose mode. 2021-01-13 21:19:21 -03:00
FellippeHeitor 9755992de9 Adds colored output to verbose mode (-vc switch). 2021-01-13 19:01:30 -03:00
FellippeHeitor c9ac352d87 Improves warning system to add $include info. 2021-01-13 17:51:40 -03:00
FellippeHeitor 28c2bd9b49 Merge branch 'development' into ideimprovements 2021-01-13 11:16:18 -03:00
FellippeHeitor c0c59706ce Likely reason for incorrect line number reports for open SUB/FUNCTIONs. 2021-01-13 11:08:32 -03:00
FellippeHeitor 1e11ff17b6 Begins changing warning system to consider includes. 2021-01-13 10:57:58 -03:00
FellippeHeitor aef35c96e1 Makes idegotobox a SUB. 2021-01-13 02:07:22 -03:00
FellippeHeitor c4ba4bb381 Fixes _MEM udt's new element .SOUND 2021-01-01 23:38:04 -03:00
FellippeHeitor bd54eb0f39 Attempts at implementing _MEMSOUND 2020-12-31 01:40:54 -03:00
FellippeHeitor fab894ae72 Adds warning when empty SELECT CASE block is found. 2020-12-18 02:17:57 -03:00
FellippeHeitor 7db658b781 Prevents code before 'CASE condition' in a SELECT CASE block 2020-12-18 01:30:42 -03:00
Luke Ceddia 272f877725
Add -q for quiet mode 2020-11-04 23:03:47 +11:00
FellippeHeitor f3b92c353a Implements EXIT SELECT/CASE.
Allows breaking out of a SELECT CASE block or skip to the next evaluation CASE (for SELECT EVERYCASE) blocks.

In SELECT CASE blocks, EXIT CASE is the same as EXIT SELECT.
2020-09-07 14:40:04 -03:00
Luke Ceddia 860e6cad57 $CONSOLE:ONLY on Linux no longer pulls in GL/X11 libs 2020-07-15 22:25:57 +10:00
Luke Ceddia 3ac1244df5 Add OPTION _EXPLICITARRAY 2020-07-15 21:31:11 +10:00
Luke Ceddia c165592d41 Add extra casts in UDT string access for clang 2020-07-12 16:11:56 +10:00
Luke Ceddia b5e896d07b Tentative fix for custom array lbounds with $checking:off 2020-06-21 00:45:55 +10:00
Fellippe Heitor dcaadfba21 Fixes IDE not keeping last session window size
Issue usually shows up on macOS, but fix is global, as it's not likely to cause issues in other OSes.
2020-02-27 22:53:01 -03:00
FellippeHeitor ddb3004425 Prints QB64 version when compiling with -c and adjusting -s settings. 2020-02-24 20:59:18 -03:00
FellippeHeitor 7ee6a3d810 Gets zlib to link statically in Windows and Linux.
Dynamic linking on macOS is ok since zlib is natively available.
2020-02-07 22:36:30 -03:00
FellippeHeitor 03ba53e9c5 Fixes $EXEICON to work when $CHECKING:OFF is enabled. 2020-02-06 11:49:49 -03:00
FellippeHeitor 2a34a20cdc Allows math with scientific notation numbers in CONSTS. 2020-01-29 03:09:23 -03:00
FellippeHeitor 53dcec5603 Fixes CONST PreParse when using existing CONSTS stored as _FLOAT. 2020-01-29 02:36:15 -03:00
FellippeHeitor 814f5be495 Reduces console updates even more. 2020-01-22 15:11:15 -03:00
FellippeHeitor bd7a6757d0 Reduces percentage updates for console compilation. 2020-01-22 14:59:30 -03:00
Fellippe Heitor e53be8c540 Trigger ci to test new console output 2020-01-22 14:25:31 -03:00
FellippeHeitor a7db724da0 Stops screaming. Adds progress bar to command line compilation. 2020-01-22 12:52:15 -03:00
FellippeHeitor f944e86b38 Allows -s switch to change settings and process other parameters. 2020-01-22 02:01:29 -03:00
Fellippe Heitor e0476b04b7 Merge remote-tracking branch 'origin/zlib-multiplatform' into development 2020-01-19 11:25:09 -03:00
Fellippe Heitor da9169706c Merge remote-tracking branch 'origin/invalidlines-usebyte' into development 2020-01-19 11:24:54 -03:00
Fellippe Heitor e27f1bf29b Merge remote-tracking branch 'origin/fix-include' into development 2020-01-19 11:24:21 -03:00
FellippeHeitor ac268c740b Simplifies usage of zlib across platforms. 2020-01-18 18:48:10 -03:00
Fellippe Heitor 44c80201f2 Gets _DEFLATE$ and _INFLATE$ to work on macOS. 2020-01-18 17:50:24 -03:00
FellippeHeitor 74467c274b Replaces inefficient _BIT with _BYTE for InValidLine() array. 2020-01-18 03:49:23 -03:00
FellippeHeitor ccb754d4e4 Prevents $NOPREFIX to be set after any other statement. 2020-01-18 01:33:29 -03:00
FellippeHeitor e30f19b38a Makes $COLOR constansts an external includable file. 2020-01-18 00:20:54 -03:00
FellippeHeitor 2bf3dd146b Fixes string concatenation in consts 2020-01-17 19:08:29 -03:00
FellippeHeitor 834ccb2519 Removes "force include"; removes the need for source/embed/* 2020-01-17 18:57:29 -03:00
Steve McNeill c4f28baaee Fix to $COLOR to work via command line. Renamed ColorHack to ColorConst for Fellippe. ;D 2020-01-15 22:52:39 -05:00
Steve McNeill f28d492d3f Fix to return $COLOR to QB64. 2020-01-15 20:51:48 -05:00
FellippeHeitor 1196fcb6dd Simplifies CONST parsing and passing to Evaluate_Expression$(). 2020-01-15 17:07:17 -03:00
FellippeHeitor 2311e6ad47 Restores CONST lookup (consts refering to consts). 2020-01-15 02:31:03 -03:00
FellippeHeitor 53a6acca28 Merge branch 'keyword-prefix' into development
Adds $NOPREFIX metacommand. Removes $COLOR metacommand.

# Conflicts:
#	source/qb64.bas
2020-01-15 00:40:52 -03:00
FellippeHeitor 4afde87e04 Restores check for division by zero in consts. Also:
Prevents cases like 'CONST a = *'.
2020-01-15 00:02:35 -03:00
FellippeHeitor 3611234288 Finishes importing Steve's CONST support patches and +
Prepares Math evaluator to deal with $NOPREFIX.
2020-01-14 20:05:34 -03:00
FellippeHeitor f49d822a11 Imports Steve's Math Evaluator:
As per Steve:
"Math support finalized with new evaluator.
Completely redid the math evaluator.  It's fancy, functional, and much more efficient than the old one."
2020-01-14 13:19:07 -03:00
FellippeHeitor f23ffa70c5 Proper error message when SUB/FUNCTION is left open.
"Unidentified open control block" was being given in those cases when identing was on.

Fix brought from Steve's repo.
2020-01-14 12:38:38 -03:00
FellippeHeitor 09f51fbc1b Restores IDE title with x32 or x64 when a new file is opened/created. 2020-01-10 02:03:46 -03:00
FellippeHeitor 6c779ca798 Exits with an error code if the 'internal' folder cannot be found/locked. 2020-01-10 00:43:08 -03:00
FellippeHeitor 2309d05ff8 Fixes alignments of --help page. 2020-01-09 12:00:14 -03:00
FellippeHeitor 8ac94a3142 Reduces memory usage for $NOPREFIX keyword list + simplifies highlighting. 2020-01-07 07:53:12 -03:00
FellippeHeitor dffc94b83d Properly gets _MEM type to play nice with $NOPREFIX 2020-01-06 20:29:44 -03:00
FellippeHeitor 0bb90ad263 More fixes to hardcoded _KEYWORDS so $NOPREFIX will work. 2020-01-06 05:08:44 -03:00
FellippeHeitor 3e474f2f0b Fixes SUB calls like SHELL _HIDE command$ for $NOPREFIX use. Also:
- Fixes incorrect resolution of _BIT in variable declarations.
2020-01-06 04:46:29 -03:00
FellippeHeitor 18974d56e4 Final adjustments to CONST parsing + $NOPREFIX 2020-01-06 00:36:31 -03:00
FellippeHeitor f63358698b Properly hijacks Steve's math CONST operations for $NOPREFIX to work.
These changes will allow for Steve's upcoming changes to be inserted with no issues.
2020-01-05 23:30:10 -03:00
FellippeHeitor 1ea1b66c95 Restores Steve's SUB ParseExpression 2020-01-05 20:01:52 -03:00
FellippeHeitor a2e1ea0091 Properly detects OPTION (_)EXPLICIT to set opex_comments. 2020-01-05 19:38:22 -03:00