1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-10 03:05:13 +00:00
Commit graph

369 commits

Author SHA1 Message Date
FellippeHeitor 0724910a2e Improves detection of used variables; Arrays still to be worked on. 2021-07-21 14:25:21 -03:00
FellippeHeitor b1ddfd06c7 typ is undefined in FUNCTION typ2ctyp$; uses t instead.
Could be causing weird issues; might cause weird issues.
2021-07-21 14:24:35 -03:00
FellippeHeitor 46822028f9 Fixes typos in comments (🤦). 2021-07-21 14:23:21 -03:00
FellippeHeitor dd686b4071 Store variable creation data after regid is called. 2021-07-21 09:48:52 -03:00
FellippeHeitor f09bea827b Refines variable collection code ($DEBUG). 2021-07-21 09:30:48 -03:00
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