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