• Axe Parser 5 1
Currently:  

Author Topic: Axe Parser  (Read 495660 times)

0 Members and 5 Guests are viewing this topic.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #1410 on: October 25, 2010, 09:50:25 pm »
Runer, I can't replicate that effect, it just throws a BAD SYMBOL at the 'o' for me as I would expect.  What version are you using?

0.4.5 :o
Hold on, let me try to get a screenshot.

EDIT: Made a screenshot illustrating the problem. The compiled size of 19 bytes indicates 16 bytes of header/VAT data and 3 bytes for "C".
« Last Edit: October 25, 2010, 10:02:20 pm by Runer112 »

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #1411 on: October 25, 2010, 09:52:19 pm »
In SourceCoder, I believe that if you type Copy, it recognize it as conj, so such thing may not happen in SourceCoder.

The test I just did with SourceCoder disagrees with this. That would prevent you from typing the literal string "Copy" and SourceCoder isn't designed to be an Axe source editor anyways.
Strange I thought Kerm implemented the new tokens already X.x. He said he might since he planned to make it for both Axe and BASIC.
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #1412 on: October 25, 2010, 10:39:02 pm »
Oh you're right, it is in 0.4.5 I was using an older version.  It has to do with the disabled axioms which are supposed to be checked once the parser doesn't recognize a token but I commented that all out and put a jump to the error handler instead.  Unfortunately I accidentally made it a conditional jump instead of a normal jump and so it will sometimes not go to the error like it should and just continues on as if it were a comment.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #1413 on: October 25, 2010, 10:51:55 pm »
You, getting caught using an older version of Axe? :o Lol

Anyways you should check out my approximately over 9000 feature requests. ;)

Offline BlackRabbit

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 8
  • Rating: +0/-0
    • View Profile
Re: Axe Parser
« Reply #1414 on: October 26, 2010, 06:28:52 pm »
Yes. I'm working on a few. One is a huge RPG called Champion. I'm using Axe for that. I'm also working on a new os for the 83+. It's being delayed until after Champion.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #1415 on: October 27, 2010, 03:21:28 am »
Ah cool! Did you do any other calculator games and programs before? A huge RPG and an OS are both huge undertakings (I'm speaking from experience about RPGs because I made several of them back in 2001-2005), especially the later. If you are still new to programming I would probably suggest making a demo of your RPG, first, then gradually improve from it, or maybe even do a smaller prequel/side game of your RPG, to not start too big either. Otherwise, good luck! :)
« Last Edit: October 27, 2010, 03:22:01 am by DJ Omnimaga »
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline FinaleTI

  • Believe in the pony that believes in you!
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Axe Parser
« Reply #1416 on: October 27, 2010, 04:26:36 pm »
What is the max number of labels you can have in a program? Because Runer112 was trying to help me optimize Nostalgia's menu routine and he said he got a ERR:MAX SYMBOLS. Is there anyway around this?


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axe Parser
« Reply #1417 on: October 27, 2010, 04:30:03 pm »
What is the max number of labels you can have in a program? Because Runer112 was trying to help me optimize Nostalgia's menu routine and he said he got a ERR:MAX SYMBOLS. Is there anyway around this?

i think it's something like 100-150. you can always use offsets. for example instead of
Code: [Select]
[HEX]->Pic1 .player1
[HEX]->Pic2 .player2
[HEX]->Pic3 .player3
you can do
Code: [Select]
[HEX]->Pic1 .player1
[HEX]          .Pic1+8  refers to player2
[HEX]          .Pic1+16 refers to player3
etc.


Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Axe Parser
« Reply #1418 on: October 27, 2010, 04:30:28 pm »
What is the max number of labels you can have in a program? Because Runer112 was trying to help me optimize Nostalgia's menu routine and he said he got a ERR:MAX SYMBOLS. Is there anyway around this?

Seconded. I wanna know too ;D

One solution there is around this currently is to use the following type of code change:
Code: [Select]
[hex]→Pic1
[hex]→Pic2
Pt-On(X,Y, Pic1)
Pt-On(X,Y, Pic2)
to
Code: [Select]
[hex]→Pic1
[hex]
Pt-On(X,Y, Pic1)
Pt-On(X,Y, Pic1+8)

Works with strings and regular data as well


edit: wow ninja'd
« Last Edit: October 27, 2010, 04:30:42 pm by squidgetx »

Offline FinaleTI

  • Believe in the pony that believes in you!
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Axe Parser
« Reply #1419 on: October 27, 2010, 04:34:40 pm »
Well, I meant labels like Goto LBL or sub(LBL). But the tip on static variables is helpful.


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

ASHBAD_ALVIN

  • Guest
Re: Axe Parser
« Reply #1420 on: October 27, 2010, 04:35:46 pm »
I wonder if you can use a label as a pointer, like by doing lbl123+64

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #1421 on: October 27, 2010, 04:50:25 pm »
I wonder if you can use a label as a pointer, like by doing lbl123+64
You would never reliably be able to do this because future optimizations would mean that the spacing between some labels would change between every version of the parser.  This would only work if the entire routine were written with an Asm() command so you would know the length of the subroutine ahead of time.

Unfortunately there is no way around the 150 symbol limit to labels, but there are some things you can do to use less labels in general.  First of all, if you aren't calling it as a subroutine, you probably don't need it as a label.  You can instead use a combination of if's and while's to handle those situations properly (remember, most modern programming languages don't even have a goto command).  Another thing, if you have labels that are never used, comment them out becasue they still take up space on the symbol table even if they are never called.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline BlackRabbit

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 8
  • Rating: +0/-0
    • View Profile
Re: Axe Parser
« Reply #1422 on: October 27, 2010, 06:05:19 pm »
I've recently completed Warrior 2, another big RPG, in Ti-Basic with xLib. The only problem is that I have an 83+ so I cannot send it to the computer and upload it. I've also done several other projects but not any that I am still prowd of.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #1423 on: October 27, 2010, 07:37:02 pm »
I wonder if you can use a label as a pointer, like by doing lbl123+64
You would never reliably be able to do this because future optimizations would mean that the spacing between some labels would change between every version of the parser.  This would only work if the entire routine were written with an Asm() command so you would know the length of the subroutine ahead of time.

Unfortunately there is no way around the 150 symbol limit to labels, but there are some things you can do to use less labels in general.  First of all, if you aren't calling it as a subroutine, you probably don't need it as a label.  You can instead use a combination of if's and while's to handle those situations properly (remember, most modern programming languages don't even have a goto command).  Another thing, if you have labels that are never used, comment them out becasue they still take up space on the symbol table even if they are never called.

Quigibo, how exactly does the parser make use of memory during parsing? Have you made use of the whopping 1094 bytes of effectively safe RAM starting at $8000?
« Last Edit: October 27, 2010, 07:52:20 pm by Runer112 »

ASHBAD_ALVIN

  • Guest
Re: Axe Parser
« Reply #1424 on: October 27, 2010, 07:42:35 pm »
I've recently completed Warrior 2, another big RPG, in Ti-Basic with xLib. The only problem is that I have an 83+ so I cannot send it to the computer and upload it. I've also done several other projects but not any that I am still prowd of.


this is a bit off topic to respond and I'm sorry, but you CAN transfer it if you buy a certaqin type of cable, or type it up in source coder.