Our server costs ~$56 per month to run. Please consider donating or becoming a Patron to help keep the site running. Help us gain new members by following us on Twitter and liking our page on Facebook!
Current time: April 27, 2024, 8:21 pm

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arithmetic Expression Compiler
#35
RE: Arithmetic Expression Compiler
Anyway, here is an example of how conditional operators and string constants (things I've added to AEC recently) can make the code significantly shorter:
Code:
AsmStart
   debug=0
    macro pushIntToStack x
    {
        sub esp,4
        fld dword [x]
        fistp dword [esp]
    }
    macro pushPointerToStack x
    {
        sub esp,4
        lea ebx,[x]
        mov [esp],ebx
    }
    macro pushStringToStack x
    {
        sub esp,4
        mov dword [esp],x
    }
    format PE console
    entry start

    include 'win32a.inc'

section '.text' code executable
    start:
    jmp enterNumber$
        enterNumber db "Enter the ordinal number of the month.",10,0
    enterNumber$:
    pushStringToStack enterNumber
    call [printf]
    pushPointerToStack month
    jmp floatSign$
        floatSign db "%f",0
    floatSign$:
    pushStringToStack floatSign
    call [scanf]
AsmEnd
If month=2
    enterTheYearString<="Enter the year:",10,0
    AsmStart
        invoke printf,enterTheYearString
        pushPointerToStack year
        pushStringToStack floatSign
        call [scanf]
    AsmEnd
    If mod(year,4)=0 & not(mod(year,400)=0)
        days:=29
    Else
        days:=28
    EndIf
ElseIf mod(month,1)=0 & month>0 & month<13
    days:= month=1? 31 : month=3? 31 : month=4? 30 : month=5? 31 : month=6? 30 : (month=7 | month=8)? 31 : month=9? 30 : month=10? 31 : month=11? 30 : 31
Else
    invalidDateString<="Next time you open this program, please enter a natural number between 1 and 12.",10,0
    AsmStart
        invoke printf,invalidDateString
        invoke system,_pause
        invoke exit,1
    AsmEnd
EndIf
numberOfDaysString<="The month with that ordinal number has %d days.",10,0
AsmStart
    pushIntToStack days
    invoke printf,numberOfDaysString
    invoke system,_pause
    invoke exit,0

    _pause db "PAUSE",0

section '.rdata' readable writable
    result dd ?
    month dd ?
    days dd ?
    year dd ?

section '.idata' data readable import
    library msvcrt,'msvcrt.dll'
        import msvcrt,printf,'printf',system,'system',exit,'exit',scanf,'scanf'
AsmEnd
That dragitz who forked my repository on GitHub apparently won't cooperate with me any more. But, anyway, I've introduced a few hard-to-fix problems in my code by adding new features. First of all, the AST diagrams that are produced for ternary operators are next to useless. Second, perhaps even more damaging, there is a [url=https://github.com/FlatAssembler/Arithme...r/issues/1]bug[/url] that prevents my implementation of QuickSort to be compiled using the newest version of the compiler (HybridSort and MergeSort are unaffected), and it's not easy to fix. I've chosen a fundamentally wrong method of compiling long ago and it would take very long to think of a better algorithm and implement it.



Messages In This Thread
Arithmetic Expression Compiler - by FlatAssembler - January 2, 2019 at 3:01 am
RE: Arithmetic Expression Compiler - by bennyboy - January 2, 2019 at 7:15 am
RE: Arithmetic Expression Compiler - by Angrboda - January 2, 2019 at 9:56 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 3, 2019 at 4:47 am
RE: Arithmetic Expression Compiler - by Angrboda - January 3, 2019 at 9:27 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 3, 2019 at 12:35 pm
RE: Arithmetic Expression Compiler - by bennyboy - January 3, 2019 at 9:09 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - January 9, 2019 at 5:08 am
RE: Arithmetic Expression Compiler - by bennyboy - January 9, 2019 at 5:09 pm
RE: Arithmetic Expression Compiler - by SteelCurtain - January 9, 2019 at 10:24 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - January 10, 2019 at 8:16 am
RE: Arithmetic Expression Compiler - by bennyboy - January 10, 2019 at 10:33 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 12, 2019 at 8:02 am
RE: Arithmetic Expression Compiler - by bennyboy - January 12, 2019 at 9:36 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 31, 2019 at 3:50 am
RE: Arithmetic Expression Compiler - by bennyboy - January 31, 2019 at 8:42 am
RE: Arithmetic Expression Compiler - by FlatAssembler - February 8, 2019 at 2:30 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 2, 2019 at 11:00 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 10, 2019 at 3:53 am
RE: Arithmetic Expression Compiler - by Smaug - May 10, 2019 at 7:45 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 25, 2019 at 2:28 pm
RE: Arithmetic Expression Compiler - by Smaug - May 31, 2019 at 5:56 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 1, 2019 at 1:50 am
RE: Arithmetic Expression Compiler - by Smaug - June 1, 2019 at 1:24 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 2, 2019 at 7:26 am
RE: Arithmetic Expression Compiler - by Smaug - June 6, 2019 at 4:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 7, 2019 at 8:01 am
RE: Arithmetic Expression Compiler - by Jehanne - May 31, 2019 at 7:17 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 17, 2019 at 1:50 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 31, 2019 at 12:50 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 4, 2020 at 9:26 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 1, 2020 at 12:08 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 22, 2020 at 2:40 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 27, 2020 at 8:52 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 14, 2020 at 9:32 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 18, 2020 at 1:12 pm
RE: Arithmetic Expression Compiler - by arewethereyet - June 18, 2020 at 1:27 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 18, 2020 at 3:35 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 24, 2020 at 3:59 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 22, 2020 at 1:16 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 4:24 am
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 6:51 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 10:56 am
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 11:37 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 12:02 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 1:09 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 1:37 pm
RE: Arithmetic Expression Compiler - by Angrboda - August 30, 2020 at 12:14 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 2:01 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 2:06 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 2:15 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 4:39 pm
RE: Arithmetic Expression Compiler - by Grandizer - September 3, 2020 at 3:43 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 6:55 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 3, 2020 at 12:08 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 3, 2020 at 3:18 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 3, 2020 at 4:51 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 3, 2020 at 5:06 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 4, 2020 at 4:05 am
RE: Arithmetic Expression Compiler - by Angrboda - September 3, 2020 at 3:10 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 4, 2020 at 4:17 am
RE: Arithmetic Expression Compiler - by FlatAssembler - September 21, 2020 at 3:12 pm
RE: Arithmetic Expression Compiler - by HappySkeptic - September 24, 2020 at 1:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 5, 2020 at 5:01 pm
RE: Arithmetic Expression Compiler - by HappySkeptic - October 5, 2020 at 9:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 6, 2020 at 1:55 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 18, 2020 at 9:11 am
RE: Arithmetic Expression Compiler - by FlatAssembler - July 17, 2021 at 12:29 pm
RE: Arithmetic Expression Compiler - by arewethereyet - July 17, 2021 at 12:36 pm

Possibly Related Threads...
Thread Author Replies Views Last Post
  Compiler Theory FlatAssembler 5 1024 October 27, 2020 at 10:48 am
Last Post: Angrboda



Users browsing this thread: 1 Guest(s)