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

215 commits

Author SHA1 Message Date
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