1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-08-22 11:25:08 +00:00
Commit graph

403 commits

Author SHA1 Message Date
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
FellippeHeitor
fed5798523 Moves $NOPREFIX setting to prepass, so TYPEs are properly affected. +
- Fixes FUNCTION dim2 and FUNCTION typname2typ& to properly deal with variable types with no suffix.
- Restores Steve's Set_OrderOfOperations and EvaluateNumbers$ until a fixed version can be provided and tweaked.
2020-01-05 19:31:46 -03:00
FellippeHeitor
060284f9c3 Removes $COLOR metacommand until a fix for command line compilation comes. 2020-01-04 18:41:15 -03:00
FellippeHeitor
2ebaeab3c6 Initial implementation of $NOPREFIX
Allows QB64-specific keywords to be called without the leading underscore.

Per user and per project; affects nothing globally.

Allows prefixed keywords to be used even when it's set.
2020-01-04 16:13:13 -03:00
Luke Ceddia
b215c06164 More dummy qb64.bas changes 2020-01-04 23:46:20 +11:00
Luke Ceddia
4837a27dc2 Dummy qb64.bas change 2020-01-04 23:43:23 +11:00
FellippeHeitor
51710ddcd3 Renames zlib's folder so it can be updated without the hassle later on. 2020-01-02 23:00:51 -03:00
FellippeHeitor
114bd7b5a8 Adds stubs for _INFLATE$ and DEFLATE$ for OSes other than Windows.
These will return the unchanged text$ passed for now.
2020-01-02 17:35:02 -03:00
flukiluke
fe920f921b
Merge pull request #114 from Galleondragon/add-assert
Adds $ASSERTS, $ASSERTS:CONSOLE and _ASSERT condition[, message$]
2020-01-02 19:55:55 +11:00
Luke Ceddia
8a7316953c Merge branch 'alexmyczko-patch-1' into development (PR #79) 2020-01-02 14:34:23 +11:00
Luke Ceddia
5fd1dc589c Update text, add -v option 2020-01-02 14:32:31 +11:00
FellippeHeitor
49f265f1c2 Adds $ASSERTS, $ASSERTS:CONSOLE and _ASSERT condition[, message$] 2020-01-01 18:20:30 -03:00
FellippeHeitor
eb7adb7503 Fixes $VERSIONINFO. Closes #110.
Also: proper indenting after IgnoreWarnings was added.
2020-01-01 12:27:24 -03:00
SteveMcNeill
58b82dff13 Minor change to bit routines, added ability to ignore warnings in IDE 2019-12-04 12:30:02 -05:00
SteveMcNeill
2a56322783 Patch to $IF UNDEFINED 2019-11-27 03:04:25 -05:00
SteveMcNeill
449bdecacd Adding ZLIB into the QB64 parts system for windows.
Two new keywords added:
FUNCTION _INFLATE$ (text$)
FUNCTION _DEFLATE$ (text$)

Use of these commands can compress and decompress strings using the ZLIB library.
2019-08-27 18:22:07 -04:00
SteveMcNeill
f01d13f957 Quick patch to _STRICMP. Enhancement to $COLOR not affecting line numbers. 2019-08-27 17:27:35 -04:00
SteveMcNeill
cc16eaac1c Tweak to $COLOR processing order
Move $COLOR commands so they process after the precompile commands (such as $LET), otherwise they may not be included/excluded properly when between $IF blocks.
2019-08-07 09:23:12 -04:00
SteveMcNeill
e006fefb12 Change to $COLOR32
Made statement $COLOR:0 or $COLOR:32 so color names could be used in
either screen 0 or 32-bit screens, as the user desired.

Made routines only callable once.  Multiple references will result in
error messages being given now.
2019-08-04 11:45:07 -04:00
SteveMcNeill
8fecea60a5 Added Rho's exemption for $CHECKING:OFF and arrays
As per here:
https://www.qb64.org/forum/index.php?topic=1348.msg105444#msg105444
2019-08-02 15:51:39 -04:00
SteveMcNeill
a885cdb524 Alter previous change to reduce error messages reported
CONST has more options than what the internal math routine itself
handles; it doesn't need to toss an error message whenever those pop up;
just when it's an actual math style message.  This fixes that.
2019-08-02 09:25:21 -04:00
SteveMcNeill
e52009ba83 Fix to CONST crash with Integer Division by Zero error 2019-08-01 13:45:12 -04:00
FellippeHeitor
93b7001c4e Fixes isnumber() and improves detection of scientific notation numbers. 2019-04-23 10:17:18 -03:00
FellippeHeitor
b57ca7c38b Removes virtual keyboard references (1/2) 2019-04-14 16:42:04 -03:00
FellippeHeitor
31a855d642 Removes dead Android references. 2019-04-14 15:33:19 -03:00
FellippeHeitor
3918db63cc Removes dead Qloud references. 2019-04-14 14:42:49 -03:00
FellippeHeitor
952856fe2c Shows "duplicate constant definition" warnings when using command line. 2019-04-01 01:12:35 -03:00
FellippeHeitor
cb21e44e94 If merely redefining a CONST with same value, just issue a warning. 2019-03-31 20:22:53 -03:00
FellippeHeitor
4d497dd5f2 Merge branch 'unusedvariables' into development 2019-01-13 16:36:26 -02:00
FellippeHeitor
641c9d418a Fixes regression introduced with 67af468 2019-01-13 16:35:59 -02:00
FellippeHeitor
3902a36056 New "Compilation status" dialog, for when there are warnings to show. +
- Rewording of menu items;
- New menu item in the View menu to show "Compilation status" dialog;
2019-01-13 03:26:48 -02:00
FellippeHeitor
738c8d9bb5 Removes unused variables declared across qb64.bas and includes. 2019-01-12 21:09:31 -02:00
FellippeHeitor
a0373492df Refines warning output for unused variables (command line). 2019-01-12 20:55:38 -02:00
FellippeHeitor
639b7549d7 Fixes incorrect detection of unused _UNSIGNED and fixed length vars. 2019-01-12 20:08:35 -02:00
FellippeHeitor
d194cc8039 Displays normal and internal unused variable names in verbose warning. 2019-01-12 17:00:04 -02:00
FellippeHeitor
fb346b2164 Reset uniquenumbern when compilation restarts. 2019-01-12 16:59:30 -02:00
FellippeHeitor
a2114840de Shows warning when there are unused variables at CL compilation.
Also adds -v switch for verbose mode (lists unused variables).
2019-01-12 15:52:31 -02:00
FellippeHeitor
da24fde08d Properly add/remove variables from usedVariableList$ 2019-01-12 15:28:58 -02:00
FellippeHeitor
96ec183746 Merge branch 'development' into unusedvariables 2018-12-31 21:03:28 -02:00
FellippeHeitor
738fe6924d Improved detection of unused variables. 2018-12-31 21:00:16 -02:00
Luke Ceddia
8f9837c803 Take LEN correctly 2018-12-23 17:40:48 +11:00
Luke Ceddia
fffd0f842c Free non-array variable udt on sub exit 2018-12-22 15:29:52 +11:00
FellippeHeitor
47685d82b0 Implements unused variables indicator
An arrow to the left of the line where a variable was defined will be shown after compilation to indicate that variable hasn't been used throughout the program.
2018-11-21 00:47:46 -02:00
FellippeHeitor
745c5bc77f Fixes F5 not working in *nix systems. 2018-11-02 19:32:02 -03:00
FellippeHeitor
7fa762750b Adds support for new _RGB32 syntaxes in CONST statements. 2018-11-02 18:47:55 -03:00
SteveMcNeill
687cced581 Changes to CONST and Math Internals 2018-10-31 07:44:57 -04:00
SteveMcNeill
d9392d842a Fix for $IF/$LET, without breaking $INCLUDE as previous 2018-10-29 15:53:23 -04:00
FellippeHeitor
ba5292c951 Revert "Fix for $LET/$IF"
This reverts commit 4787076573.

A regression was introduced that caused $IF blocks in $INCLUDE files to be ignored.
2018-10-29 11:17:06 -03:00
Luke Ceddia
19f08b51f3 Merge branch 'varstrings_in_types' into development 2018-10-28 00:01:36 +11:00
Luke Ceddia
b912bf09ee Disallow GET/PUT for variable UDTs 2018-10-28 00:00:29 +11:00
FellippeHeitor
d01e3666d8 Merge branch 'development' of https://github.com/Galleondragon/qb64 into development 2018-10-25 10:07:09 -03:00
Luke Ceddia
4c94b54f10 redim _preserve 2018-10-23 21:23:13 +11:00
Luke Ceddia
daf5cba518 Dynamic arrays (handles arrays in subs too) 2018-10-23 20:36:32 +11:00
Luke Ceddia
683e4f1920 Global static arrays 2018-10-23 12:53:38 +11:00
Luke Ceddia
0eb2b4307f Process nested UDT's 2018-10-22 18:35:20 +11:00
SteveMcNeill
67af468b7d Fix memory leak with PRINT USING
When USING follows another print in the same statement (such as PRINT
"123"; USING "###"; 456), it created a memory leak due to the temp
variable being created twice and only freed once.  This patch corrects
that issue.
2018-10-22 01:02:48 -04:00
SteveMcNeill
4787076573 Fix for $LET/$IF
Fix to the precompiler so $IF/$LET work as expected.  Adds ability to
see if a precompiler variable is DEFINED or UNDEFINED, to exclude
duplicate code in libraries and such.
2018-10-21 23:01:22 -04:00
Luke Ceddia
18bab24af1 Do element-wise assignment with string copy when necessary 2018-10-21 01:46:52 +11:00
Luke Ceddia
902868a7ee Allow assignment and access of variable length strings in TYPEs
To do:
 - arrays of UDT's
 - clone qbs on UDT copy
 - check for memory leaks
 - UDT's declared in subs/functions
2018-10-20 00:13:24 +11:00
FellippeHeitor
14e5866c4b Another tweak yo isnumber() 2018-10-02 23:31:43 -03:00
FellippeHeitor
78c4de7f6c Adapts isnumber() to recognize scientific notation. 2018-10-02 01:38:17 -03:00
FellippeHeitor
b29a46d177 Undoes last commit; fix not as easy as initially thought. 2018-10-01 10:27:30 -03:00
FellippeHeitor
f6c068ba19 Properly warns user when a non-_MEM var is used with _MEM functions.
Closes #47
2018-09-30 20:54:59 -03:00
FellippeHeitor
bed68767e6 Detects if the last generated binary still exists at F5 or F11.
Closes #63
2018-09-30 19:27:05 -03:00
FellippeHeitor
fcf68e093b Fixes TAB before ELSE bug for the IDE. 2018-09-18 01:03:55 -03:00
FellippeHeitor
09085b614b New attempt at adding drag/drop to the IDE. 2018-08-01 02:02:07 -03:00
FellippeHeitor
2b0dfb7381 Reverts last broken commit.
Compilation worked fine locally; another attempt will be done later.
2018-08-01 01:52:09 -03:00
FellippeHeitor
9a1b8450aa Enables the IDE to accept files via drag/drop (Windows-only). 2018-07-31 21:59:31 -03:00
FellippeHeitor
024f27a5b5 Indentation work (.bas files). No actual code changes. 2018-07-17 00:01:23 -03:00
FellippeHeitor
19fda93caf Adds .overloaded and .minargs to idstruct.
Allows more functions to be overloaded in the future, like _RGB32.
2018-07-03 00:33:37 -03:00
FellippeHeitor
6ee70f1afa Makes _RGB32 more flexible and powerful.
Existing syntax:
colour~& = _RGB32(red, green, blue)

New possible uses:
- Instead of passing identical rgb values to achieve a shade of gray, pass only 1 parameter for all color components:

    colour~& = _RGB32(51) 'same as _RGB32(51, 51, 51)

- _RGB32 can now take an optional alpha parameter, which makes _RGBA32 obsolete (although it still exists for retrocompatibility):

    colour~& = _RGB32(255, 0, 255, 30) 'same as _RGBA32(255, 0, 255, 30)

- If you want a shade of gray and also to specify the alpha level, you can pass just two parameters:

    colour~& = _RGB32(51, 30) 'same as _RGBA32(51, 51, 51, 30)

In summary:

    - 1 parameter  = red, green and blue simultaneously set.
    - 2 parameters = red, green and blue simultaneously set plus alpha level.
    - 3 parameters = red, green and blue as usual.
    - 4 parameters = red, green and blue plus alpha level (same as _RGBA32).
2018-07-01 21:46:08 -03:00
Luke Ceddia
c4674e10eb Make internal/temp if it doesn't exist (closes #45) 2018-06-28 22:17:18 +10:00
FellippeHeitor
688e31c0f3 Introduces _ECHO, which will output a string to the console.
_ECHO is more of a macro than a new statement, as it'll perform the following actions:

1- Save current _DEST;
2- Switch to _CONSOLE;
3- Print the passed string (only strings accepted);
4- Switch back to previous _DEST.

None of the PRINT features such as USING, numeric variables, retaining the cursor are implemented/planned for this statement.

Closes #29
2018-06-27 23:51:09 -03:00
Emmanuel Bourg
1253c208c7 Moved the string manipulation functions into a separate source file 2018-05-25 10:47:42 +02:00
Emmanuel Bourg
648d16a2c0 Also support GNU style -h and --help options 2018-05-22 23:48:39 +02:00
Luke Ceddia
a58fb4f824 Fix parsing of some file paths 2018-01-27 01:16:41 +11:00
FellippeHeitor
e02a206a67 Fix: alignment of first comment line of a TYPE or DECLARE LIBRARY block.
Addresses issue #25.
2018-01-23 11:52:00 -02:00
Luke Ceddia
61cb34f635 Remove some SDL stuff that was dead weight 2018-01-16 20:56:45 +11:00
Luke Ceddia
3a0e1ae320 Move all executable code out of common.cpp; rename to common.h 2018-01-05 21:22:36 +11:00
Luke Ceddia
8151a0b8b8 Add -p switch for purging precompiled content 2017-12-31 00:33:36 +11:00
FellippeHeitor
9481dbcd16 $INCLUDE linking now points to the line number that caused the last error. 2017-11-05 17:03:26 -02:00
FellippeHeitor
a4fe64329f Fixes condition that wouldn't allow "null" as a var name is some cases.
Declaring a variable called "null" was ok, but passing it to a sub was not.
2017-10-26 21:36:43 -02:00
FellippeHeitor
5a84de731f Fix to C++ errors due to empty parameters passed to FUNCTIONS.
- QB64 now warns users of syntax errors in cases such as a& = _RGB32(255, , 255)
2017-10-23 10:16:06 -02:00
Luke Ceddia
8956a1ee4f Merge branch 'errorlogging' 2017-10-23 08:19:26 +11:00
FellippeHeitor
1113a11107 And now we try to please *nix systems. 2017-10-22 17:40:59 -02:00
FellippeHeitor
f223cfe028 Restore SUB Build's "count separators" method to please Windows XP. 2017-10-22 17:16:54 -02:00
FellippeHeitor
959307033e Avoid moving the IDE window to 0,0 in the first run (Windows). 2017-10-17 02:29:47 -02:00
FellippeHeitor
677f5cd2ea Adds link to compilelog.txt in the Status area when compfailed = 1. 2017-10-15 19:46:16 -03:00
Luke Ceddia
1eef0d29e5 Add c++ error logging for windows too 2017-10-15 18:56:59 +11:00
FellippeHeitor
b62e39b9f9 Tweak to auto-position (IDE) - allows coordinates (0, 0). 2017-10-14 19:52:32 -03:00
FellippeHeitor
cff8ae7561 Make AutoPosition setting default to true. 2017-10-14 17:34:33 -03:00
Luke Ceddia
ecd1897c44 Log C++ errors to temp/compile.log for Linux/OSX 2017-10-15 01:03:38 +11:00
FellippeHeitor
292dbbf49d Add "Show compilation errors immediately" to Options menu.
By unchecking the new switch in the Options menu, the IDE won't warn and "red-light" every single mistake until you tell it to start compilation with F5.

Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
2017-10-14 04:09:54 -03:00
FellippeHeitor
9ab94215db Custom keywords highlighting (SUB/FUNCTION/custom dictionary).
- SUBs and FUNCTIONs names will be highlighted throughout the code.
- The same color assigned to metacommands is used for custom keywords.
- A custom dictionary can also be added to internal/config.txt.
- SUBs and FUNCTIONs in $INCLUDEd files also get highlighted, as long as there aren't any errors preventing compilation.

Signed-off-by: FellippeHeitor <fellippeheitor@gmail.com>
2017-10-14 01:15:09 -03:00
FellippeHeitor
1f6b88e7f5 Numbers highlight. 2017-10-04 03:42:39 -03:00
FellippeHeitor
e6a265f0e4 Integrates qarnos's QB45BIN.
Upon attempting to load a binary file, the IDE will detect that the file type is a QuickBASIC 4.5 binary file and offer to convert it to plain text using qarnos's QB45BIN utility.
2017-10-01 17:51:28 -03:00
Luke Ceddia
bdc3250b89 Resolved the issue of user mods not working for $console:only programs 2017-09-25 21:56:24 +10:00
FellippeHeitor
8af68290e9 $EXEICON now automatically sets the window's _ICON.
Previously you'd have to call _ICON right after $EXEICON.

Old code that call _ICON after $EXEICON doesn't need to be adapted.
2017-09-06 11:21:39 -03:00
FellippeHeitor
862aacdeac Fix TAB + ELSE bug for command line compilation.
A line starting with a TAB character and an ELSE clause would be incorrectly regarded as having a syntax error when compiling via command line interface. This fixes that issue.
2017-08-22 00:30:44 -03:00
Luke Ceddia
2089a95b8b Separate left/right audio channels for stereo audio files.
No _SNDRAW or PLAY yet. Also removed need for sound capability strings.
2017-08-10 22:05:16 +10:00
SteveMcNeill
dc22c6e5a8 Print Output Simplification
Minor change to simplify and clean up the output which QB64 creates with
PRINT statements with multiple print segments such as PRINT "A"; "B";
"C".
2017-08-02 21:40:32 -04:00
SteveMcNeill
78d4b607bd Minor change to mem structure
Change to mem.TYPE from LONG variable type to OFFSET.  This prevents
4-bytes padding from throwing off values for mem.ELEMENTSIZE and
mem.IMAGE on 64-bit systems.

Patch should work on Mac, Linux, and Windows; both 32-bit and 64-bit
versions, giving the correct results for mem.ELEMENTSIZE and mem.IMAGE
from now on.
2017-08-02 01:00:01 -04:00
FellippeHeitor
cf99f38bcf Add _CONTINUE, to jump to the end of FOR..NEXT/DO..LOOP/WHILE..WEND blocks. 2017-06-28 22:47:17 -03:00
FellippeHeitor
4a950c7c94 Implements multiple temp folders for Linux/macOS. 2017-05-18 01:08:06 -03:00
FellippeHeitor
0b9f507565 Add "Web" as a valid key for $VERSIONINFO 2017-04-29 17:41:04 -03:00
FellippeHeitor
8d961597d9 Implements $VERSIONINFO metacommand.
Allows embedding meta information on the final binary (Windows only).
2017-04-29 04:09:20 -03:00
FellippeHeitor
d3fd0be2a4 [minor] Fix the status message for $EXEICON. 2017-04-29 00:34:16 -03:00
Luke Ceddia
01a697689b Revert "Add QB64's icon to the Windows binary."
This reverts commit cca11e8f90.

This and previous reverts remove ICON-related changes, which were
simply too questionable (in stability terms) this close to a planned
release.
2016-09-04 23:31:28 +10:00
Luke Ceddia
9a0bc93473 Revert "Make $EXEICON errors only a warning when compiling via command line."
This reverts commit 6ac4f79294.
2016-09-04 23:30:59 +10:00
Luke Ceddia
2655a35b3c Revert "Bring back the $EXEICON for Windows binaries."
This reverts commit 2e2a3de2be.
2016-09-04 23:30:50 +10:00
FellippeHeitor
2e2a3de2be Bring back the $EXEICON for Windows binaries. 2016-09-03 14:13:34 -03:00
FellippeHeitor
6ac4f79294 Make $EXEICON errors only a warning when compiling via command line. 2016-09-03 08:46:22 -03:00