• Join/Login
  • Business Software
  • Open Source Software
  • For Vendors
  • Blog
  • About
  • More
    • Articles
    • Create
    • SourceForge Podcast
    • Site Documentation
    • Subscribe to our Newsletter
    • Support Request
SourceForge logo
For Vendors Help Create Join Login
SourceForge logo
Business Software
Open Source Software
SourceForge Podcast
Resources
  • Articles
  • Case Studies
  • Blog
Menu
  • Help
  • Create
  • Join
  • Login
  • Home
  • Browse
  • FMSLogo
  • Code
FMSLogo

FMSLogo Code

A Logo programming environment for Microsoft Windows

Brought to you by: david_costanzo
  • Summary
  • Files
  • Reviews
  • Support
  • Tickets ▾
    • Feature Requests
    • Bugs
    • Support Requests
  • Discussion
  • Code
Menu ▾ ▴
 
  • Browse Commits
  • Browse Files

Code Commit Log


Commit Date  
[r6002] by david_costanzo

Add tests that when RUNPARSE is invoked on the output of RUNPARSE, the second invocation outputs its input.
I don't know if the system depends on this, but it's how RUNPARSE behaves.

2023-12-05 00:32:28 Tree
[r6001] by david_costanzo

Add some additional test coverage for RUNPARSE.

2023-12-04 23:56:01 Tree
[r6000] by david_costanzo

Fix Bug #589; The operator precedence of a negation operator no longer spread to its right.
For example, "2 *-1 + 100" now evaluates to 98, not 194.

The core of the bug is that the parenthesizer rewrote "-X" as "0 - X", which would then
be parsed as normal, with any following infix operators being applied. So the expression
"2 *-1 + 100" would be parenthesized as (2 * (0 - 1 + 100)) instead of ((2 * -1) + 100).

Fixing this required more changes than I had hoped for. In the end, I found the "0 - X"
rewrite to be inherently faulty. A special case is still necessary because "-" is, by default,
classified as an infix operator and the rest of the code assumes that infix operators are
infix and have a higher binding priority than normal procedures.

The new logic has two special cases for this rewrite, same as the old logic. However, the
new code localizes both to paren.cpp instead of implementing the same idea in both the
runparser and the parenthesizer. It's cleaner to put this in paren.cpp because the runparser
treats the word as a list of tokens and it's not possible to know when "-" is infix or prefix
without a parse tree.

2023-12-03 05:03:58 Tree
[r5999] by david_costanzo

Remove dib.o from the Makefile to fix a build break.
src/dib.cpp was removed in r5956.

2023-12-03 02:13:48 Tree
[r5998] by david_costanzo

Add some test coverage for Bug #589

2023-12-02 20:11:03 Tree
[r5997] by david_costanzo

Rework some logic in paren_infix to avoid a redundant assignment.
This was done primarily for clarity; I didn't like that right_arg included left_arg, even if temporarily.

2023-12-02 19:29:27 Tree
[r5996] by david_costanzo

Remove a special case of Minus_Tight from priority().
This does not need to be a special case, since it calcluated the same by the common case.
The priority is already specified in the prims table and specifying it redundantly in priority() violates the DRY principal.

2023-12-02 19:23:48 Tree
[r5995] by david_costanzo

Add/correct some comments in paren_infix

2023-12-02 18:48:26 Tree
[r5994] by david_costanzo

Restructure some logic in gather_args to avoid redundant computation.
This may also make the code easier to read.

2023-12-01 04:35:43 Tree
[r5993] by david_costanzo

Cleanup: Remove code that looks useless.
By inspection, if max is less then zero, then set to zero, it
will immediately be decremented back to a negative value.

2023-12-01 04:28:08 Tree
Older >
SourceForge
  • Create a Project
  • Open Source Software
  • Business Software
  • Top Downloaded Projects
Company
  • About
  • Team
  • SourceForge Headquarters
    1320 Columbia Street Suite 310
    San Diego, CA 92101
    +1 (858) 422-6466
Resources
  • Support
  • Site Documentation
  • Site Status
  • SourceForge Reviews
SourceForge logo
© 2026 Slashdot Media. All Rights Reserved.
Terms Privacy Opt Out Advertise
mdb logo