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
FellippeHeitor
cca11e8f90
Add QB64's icon to the Windows binary.
2016-09-03 00:53:21 -03:00
FellippeHeitor
f829b4b640
Temporary remedy for confusing error messages after internal errors.
...
Bringing back the old "Compiler error (check for syntax errors)" message.
2016-09-01 23:37:37 -03:00
FellippeHeitor
e6425a5f11
Give proper error message when 'internal' folder can't be found.
2016-09-01 21:38:24 -03:00
FellippeHeitor
d93a2812bf
Fix OPTION _EXPLICIT ignoring variables created with SHARED in SUBs.
...
Also:
- When a "variable not defined" error is triggered, the expected type is now also reported.
2016-08-27 15:09:15 -03:00
FellippeHeitor
366636e584
Fix to precompiler parser deleting $LET statements in SUBs.
2016-08-24 09:08:42 -03:00
FellippeHeitor
26a6c94f63
Tweaks to $EXEICON implementation
...
No error message if not Windows, proper error message if icon.o can't be generated.
2016-08-18 07:25:56 -03:00
FellippeHeitor
127c4acd88
Add $EXEICON, which allows to embed an icon in the exe (Windows only).
...
Also:
- Revamp _ICON so it'll use the embed icon if it's called without parameters. The default QB64 icon is still used otherwise.
- Fix "Creating .EXE..." being printed in the wrong coordinates (IDE)
- Fix the new error message (when Debug is <> 0) so it'll show properly when compiling with -x.
2016-08-18 01:12:08 -03:00
Luke Ceddia
3f3016da6d
Make DarkenFGBG a function so it gets treated as an array when IDE support is not compiled in.
2016-08-15 20:58:11 +10:00
Luke Ceddia
de14c256d9
When Debug is set, any QB errors will now trigger a more helpful error handler
2016-08-12 11:59:11 +10:00
Luke Ceddia
fc05f7d925
Fix parsing of corner-case negative exponents, such as 1-(1+r) ^ -y
2016-08-11 21:40:23 +10:00
Luke Ceddia
b17fda7a61
Stop STATIC arrays in subroutines from segfaulting on Linux
2016-08-10 23:44:27 +10:00
FellippeHeitor
cedd2c6a47
Replace _KEYCLEAR so that script setup will work on OS X.
...
Probably for Linux too.
2016-07-18 12:03:29 -03:00
FellippeHeitor
c3cb1acae9
Darken all IDE colors while compiling or running attached.
2016-07-17 20:12:59 -03:00
FellippeHeitor
c00c92e4a2
Fix to ignore input while the IDE is waiting for execution to end.
...
Previously, if the IDE had focus while a compiled program was being run (F5), any input on the window would later be processed, messing up the source code sometimes. That's been fixed.
2016-07-17 17:41:30 -03:00
FellippeHeitor
a3c4bc4336
Darken the FG color too (while compiling with g++).
2016-07-17 17:40:10 -03:00
FellippeHeitor
99e0b539af
Cosmetic: Darken the interface while G++ is being run.
...
Uses _PALETTECOLOR to change the background of the IDE to a darker shade while external compilation is taking place, to give a sense of temporary unavailability.
2016-07-17 17:17:51 -03:00
FellippeHeitor
90923af3db
Add _INCLERRORFILE$, which reports the included file that last errored.
...
Also:
Change qb64.bas to produce C code that reports INCLUDE file names.
2016-07-08 22:48:00 -03:00
FellippeHeitor
c6b05376d4
Minor rewording to command line help
2016-07-02 21:24:22 -03:00
Fellippe Heitor
4550c333b7
Add command line help (-?, /?, -h or -help)
2016-07-02 16:25:21 -03:00
FellippeHeitor
240814c6cc
Fix proper detection of output executable being run.
2016-07-02 02:50:43 -03:00
FellippeHeitor
bad8133d16
Command line improvements.
...
- Add -e for compiling with OPTION _EXPLICIT activated from the command line - even if the source file doesn't have the directive.
- Add -o for specifying a different output executable file name.
- More flexible syntax, as switches can come after the file name, making the following acceptable: qb64 filename.bas -x -e -o myprog.exe
2016-07-02 01:32:03 -03:00
FellippeHeitor
e70f18178f
Broader detection of OPTION _EXPLICIT in code.
...
- No two OPTION _EXPLICIT can be entered
- You can OPTION _EXPLICIT: DO OTHER STUFF 'and comment on the same line
- Extreme cases of bad formatting like OPTION _EXPLICIT are fine.
2016-06-30 23:40:46 -03:00
FellippeHeitor
7bb17d3d8d
OPTION _EXPLICIT errors report the variable name.
...
Also:
Allow comments and empty lines before OPTION _EXPLICIT
2016-06-30 05:24:22 -03:00
FellippeHeitor
aec3d3b4dd
Fix for relative paths (./ or .\) in LIBRARY declarations.
...
These were having issues when compiling via command line.
2016-06-30 03:58:20 -03:00
FellippeHeitor
a7a3b1663d
Implements OPTION _EXPLICIT
...
When you use OPTION _EXPLICIT, all variables and arrays must be defined with DIM (or equivalent statement) before they can be used. QB64's case check already aids in avoiding mistakes on that front, but now you will run into a compiler error if a variable or array is used before being defined.
Because OPTION _EXPLICIT sets a compiler behavior, it must come before any other statements in your code.
As this is a non-QB4.5 feature, the keyword uses an underscore, in order to avoid conflicts with existing code.
2016-06-30 02:50:10 -03:00
FellippeHeitor
5b7411a583
Minor fix to settings output.
2016-06-26 00:37:08 -03:00
Fellippe Heitor
7cf18f13ad
Add -s (settings) to command line.
2016-06-26 00:06:34 -03:00
Fellippe Heitor
81a0e7a4b7
Fix to relative paths for console compilation.
2016-06-25 22:36:36 -03:00
FellippeHeitor
d8c01d89cb
Properly check if the target .EXE can be replaced (no ide compilation).
2016-06-25 16:17:22 -03:00
FellippeHeitor
b3c7c03558
Fix for unnecessary terminal window showing up in Windows
2016-06-22 14:05:28 -03:00
FellippeHeitor
22a2115fe8
Fix for relative library paths in Windows.
2016-06-22 01:13:54 -03:00
Fellippe Heitor
b8b4b13302
Relative paths for external libraries
...
External libraries can now sit in the same folder as your source file without the need to specify a full path. You can use .libraryname or ./libraryname with DECLARE LIBRARY statement blocks.
2016-06-21 23:53:43 -03:00
Fellippe Heitor
5e7e37ea0b
Save executable with source (Mac, probably Linux too)
2016-06-21 11:59:37 -03:00
FellippeHeitor
b7b6c760e1
Console mode compilation (-c, -x) also save EXE to source folder, if set.
2016-06-21 03:54:20 -03:00
FellippeHeitor
8f67d40330
Add "Save EXE in the source folder" to the Run menu.
...
(Windows only for now)
When active, this new setting will instruct the compiler to save the .EXE in the same folder as the source file. If the current program is not yet saved, the .EXE is placed in the same folder as QB64.EXE, as usual.
Also:
- When "Make EXE only (F11)" is used, the status area will show "Location: " and a link to the folder where the .EXE was saved. Clicking it launches Windows Explorer.
2016-06-21 03:38:42 -03:00
FellippeHeitor
f00c584454
Fix to extra console window being shown when no COMMAND$ is provided.
...
A trailing empty space was the culprit.
2016-04-15 10:01:58 -03:00
FellippeHeitor
b243601d5a
Add "Modify COMMAND$..." to Run menu.
...
Allows the user to set parameters to be sent to the current program when ran from inside the IDE using F5 or Ctrl+F5.
2016-04-15 00:47:26 -03:00
FellippeHeitor
fca4a96ef3
Remove unnecessary optional parameter in fix_error().
...
Also:
- "Unhandled error" message now only shows included line number when it's > 0.
- qb64.bas adds include line number to every evnt() call.
2016-03-23 08:29:32 -03:00
FellippeHeitor
e891ce0891
Extended error reporting, pointing to included lines.
...
The "Unhandled error" message will now display "Line: #### (included line: ####)" with the line number in the included file that generated the error. 0 will be reported if the error wasn't in an included line.
Also:
- Add function _INCLERRORLINE, which returns a value greater than zero when _ERRORLINE points to an $INCLUDEd file.
2016-03-23 07:45:51 -03:00
FellippeHeitor
3557828e95
Fix $precompiler layout.
...
$ELSEIF FLAG THEN was being turned into $ELSEIF IF FLAG THEN THEN when a precompiler condition had already been met in an $IF block before the current $ELSEIF.
2016-03-20 22:19:35 -03:00
SteveMcNeill
9761af33d5
Fix to precompiler to work inside $INCLUDE files
2016-03-08 20:53:35 -05:00
SteveMcNeill
87b4783dd7
Fix so IDE will catch DO WHILE (nothing) syntax errors
2016-03-04 22:34:28 -05:00
SteveMcNeill
117f12e4d4
Patch to correct IDE error messages
...
IDE error messages would give invalid reports if the program encountered
an error on the automatically included QB64 virtual keyboard files.
This should correct that and have the IDE reporting the proper messages
once again.
2016-03-04 11:21:16 -05:00
Fellippe Heitor
95af7ff6a6
Improves the .command file generated to launch executables
...
The same improvements made to qb64_start_osx.command are now present in the .command file that is generated in OS X after a program is compiled into an executable. This way, Terminal is closed as soon as the program is launched.
2016-02-27 15:40:24 -03:00
FellippeHeitor
517f512c76
Add "Go to..." to contextual menu, for SUB/FUNCTION/Labels.
...
If a user right-clicks a SUB/FUNCTION name or a label name anywhere in the code, the contextual menu now offers to jump to the line where such procedure/label is defined, providing a quick way to navigate through code. Even if there are multiple identical labels in different procedures, scope is taken into consideration, leading you to the definition that's located inside the current procedure.
2016-02-26 22:01:03 -03:00
FellippeHeitor
2293beb692
Fix a leak when assigning values to an array of type STRING.
...
The issue happened with both fixed and variable length string arrays and variables with user defined types containing fixed string elements.
2016-02-22 08:19:54 -03:00
Luke Ceddia
9c17efacf5
Removed non-ASCII characters and many hard tabs from source files, making it easier to use other text editors (special characters were being mangled in some cases).
2015-12-30 21:28:13 +11:00
Luke Ceddia
86acbbbcdd
Indent code in SUBs and FUNCTIONs by one level, with the option to turn on/off.
...
Adds option IDE_IndentSUBs to the config file. Credit to Fellippe Heitor for
doing the research and writing on the bulk of this commit.
2015-12-14 11:19:26 +11:00
Galleondragon
ab6c51a6b2
Fix command line compilation
2015-11-02 21:32:45 +11:00
Galleondragon
accdaf1ce0
Added support for Android & Virtual Keyboards
2015-10-30 23:18:44 +11:00
Galleondragon
a4867ea44c
Test auto-build process via GitHub
2015-08-15 21:26:39 +10:00
SMcNeill
15649725e5
Patch to fix WriteConfigSetting from altering variables passed to it.
...
Fix to precompiler internal array allocation to prevent IDE Module Errors in some instances.
2015-08-05 17:44:43 -04:00
Galleon
91e7ace500
(Automated push) Update internal/source/* from qb64.bas
2015-08-02 05:12:44 -07:00