Omnimaga

Calculator Community => Major Community Projects => The Axe Parser Project => Topic started by: alberthrocks on May 15, 2010, 09:43:34 pm

Title: Axe Parser Comments and Questions
Post by: alberthrocks on May 15, 2010, 09:43:34 pm
This would be the topic on Axe Parser. ;)

Anyway:

1) Brief comments:
This is an amazing application. I never thought that someone could make an efficient, usable, basic to ASM compiler.
Although this really isn't basic, it still allows many features of basic to be used, and more. Of course, I still haven't been able
to compile a useful program, so I have yet to enjoy Axe Parser to its fullest... :P (Not mentioning other programs that has been
released on this forum, in which I do enjoy and am amazed by!)

2) Questions:
-a) Is it possible to create a mini MP3 player with AXE? Now, I'm not saying actual MP3, which require quite a bit of decoding, in which isn't available on the TI-8x series (as in too slow). I'm just saying music files in general that are non-MIDI. I have a great idea in using AXE to play back music, but wanted to make sure it's feasible and that it would work.
-b) Is it possible for Axe to be able to use standard basic syntax, and just compile with that? I'm not saying that I won't bother to edit the program myself, but with the current state of Axe, it's really hard to understand what has gone wrong, and what commands aren't available. There is a potential feature request about this (see, I have been reading the forums! ;) ), but I think it would be a good idea to implement. Possibly a switch to compile in a specific mode may help.

3) More comments...
I really enjoy Axe... when it compiles nicely. However, I was wondering if Axe coding can
be done on a computer, with a syntax checker for Axe.

I could design the program editor if needed, but I would definitely need to know the logic
and how Axe parses the program.

If it was done on a computer, anyone can code faster for Axe, since they would know
which line has the error, and a possible explanation of the error.

And finally, could you (Axe Parser dev Quigibo) open source the application? :) I would like to take a peek at
how it works, and such. I do some ASM coding myself, but hate it, and still stick to
BASIC for regular programming. It would be great if I have an example to refer to.
No pressure though - if you don't want to release the source code, you don't have to.

That's all! :D
Title: Re: Axe Parser Comments and Questions
Post by: meishe91 on May 15, 2010, 10:21:56 pm
Well I'm just changing this because it seemed Quigibo did a better explanation. If you want to delete this post, DJ or someone, you can.
Title: Re: Axe Parser Comments and Questions
Post by: Quigibo on May 15, 2010, 10:26:31 pm
Hey cool, I'm glad you enjoy it :)

To answer some of your questions.  An MP3 player might be possible right now, but I think I will eventually add another sound command that reads raw data and plays something kind of like you're describing.  I don't know how you would convert the sound into hex though, nor the compression ratio.  It would suck to have to carry around 5000 extra bytes to play a 10 second clip.

Standard BASIC syntax would not be compatible with axe.  What that feature would do is allow you to integrate regular BASIC calls into the program for some commands.  It would be just as slow as regular BASIC when you do this, but it would make things like the Input command very handy.  I haven't tried real-time token parsing yet so I don't know if its possible to do what I'm thinking, but based on my reading I think it can be done.

The reason I differ the syntax and programming style slightly from regular BASIC is becasue I set it up in a way that allows for executables that are smaller, faster, and more optimized that its predecessor.  If I had used floating points for instance, it would have significantly increased program sizes and have huge slowdowns.

Scrolling to errors is something I'm for sure going to add later similar to how BASIC programs scroll to errors.  The thing is I have to learn about parsing hooks, something I know nothing about, so I'm going to have to find a lot of information about and hopefully talk to some experts.

The source code for the compiler might be open once I completely finish it, however, the source code for the assembly routines is open right now so they can be improved and optimized by the public and people learning assembly can use these routines as templates like Axe does.  I would love to make a computer compiler for axe since not only would it be able to generate the executables, it can translate directly into assembly language so it can be further optimized by hand.  Its a really huge project though.  It would honestly take about the same amount of time to write a computer compiler as has the original.

Hope I answered everything, feel free to ask if you have any more questions.  I wish you luck on your programming endeavors!
Title: Re: Axe Parser Comments and Questions
Post by: DJ Omnimaga on May 15, 2010, 10:30:17 pm
Hi and welcome here!

Axe has sound command actually. It does sounds like a Commodore 64, or a NES with only one sound channel. It's kinda basic altough I am sure it could be useful.

Currently there are no computer Axe Parsers, but you can edit your code in TI-Graph Link or SourceCoder (http://www.cemetech.net/projects/basicelite/sourcecoder2.php). I don't think writing a computer Axe compiler would be a good idea until Axe is finished, though, because it would slow down updates a lot.
Title: Re: Axe Parser Comments and Questions
Post by: _player1537 on May 15, 2010, 10:36:45 pm
Hi, welcome to omnimaga.

I was able to have chords (two notes playing at once) and 3 note chords playing and it sounded OK, you could try that.  Although it only really sounds good if you are in 15 mhz mode, in 6 mhz the sounds aren't quite right it seems.  But idk.  As for the computer program:  that sounds great, I would love that feature, especially if it works on linux :P
Title: Re: Axe Parser Comments and Questions
Post by: meishe91 on May 15, 2010, 10:49:24 pm
Hi and welcome here!

Axe has sound command actually. It does sounds like a Commodore 64, or a NES with only one sound channel. It's kinda basic altough I am sure it could be useful.

Currently there are no computer Axe Parsers, but you can edit your code in TI-Graph Link or SourceCoder (http://www.cemetech.net/projects/basicelite/sourcecoder2.php). I don't think writing a computer Axe compiler would be a good idea until Axe is finished, though, because it would slow down updates a lot.

TI-Coder v1.0 (http://www.ticalc.org/archives/files/fileinfo/396/39658.html) is another computer BASIC editor. It does have some little glitches (such as if you type DelVar after another it will start turning the ones after the first into text; some other things like not displaying some characters (all extended calculator characters though, I believe)). Still nice though.
Title: Re: Axe Parser Comments and Questions
Post by: alberthrocks on May 16, 2010, 08:26:10 pm
@Quigibo: That's what I was thinking - the SinReg command *might* be able to do it, but it depends. 5000 bytes isn't that bad. I'm aiming for just 1 min of music/sound (for now). As for the program, see my responses below.

@DJ Omnimaga: Yup, I know that already from the docs. ;) As for that program, I'm not trying to rewrite the compiler (although that would be great, but only after Quigibo finishes his work and stabilizes features and API). Basically, I'm only interested in writing the parser, NOT a compiler. Basically, think of it as a word processor. I'm only interested in writing the spell/grammar check, not any AI that can read the essay I write and check for errors. ;) I already have a BASIC editor that I wrote (actually, I found it online, and since it was GPLed, I took it and modified it for myself. All I have to do is just dig it out, and from there add more to it).

@_player1537: Sounds interesting. Did you use alternate between 2 tones really fast? Or is it something else? And as for Linux support... don't worry! I'm a Linux guy as well (Ubuntu 9.10, will upgrade to 10.04 soon or later). The tool referenced in the above reply to DJ is Python based (I think it came from a big TI wiki, but not sure), and I'll base the tool from that. To be specific, wxWidgets (wxPython) will be used for the program as well to support it cross-platform. :D

@meishe91: Already have one (see reply to DJ), but thanks for pointing out another! :)
Title: Re: Axe Parser Comments and Questions
Post by: _player1537 on May 16, 2010, 08:32:54 pm

@_player1537: Sounds interesting. Did you use alternate between 2 tones really fast? Or is it something else? And as for Linux support... don't worry! I'm a Linux guy as well (Ubuntu 9.10, will upgrade to 10.04 soon or later). The tool referenced in the above reply to DJ is Python based (I think it came from a big TI wiki, but not sure), and I'll base the tool from that. To be specific, wxWidgets (wxPython) will be used for the program as well to support it cross-platform. :D

Where could we find this program you're talking about?  The one you referenced in DJ's reply.  and yes, I switched between the notes quickly, one after the other.  Ubuntu 10.04 is great!  I'm getting it for my friend tomarrow.  by 'Big TI wiki'  do you mean tibasic developer?
Title: Re: Axe Parser Comments and Questions
Post by: alberthrocks on May 16, 2010, 09:23:41 pm
@_player1537: Ahh, that's the site! :)
From that site, I found that program again:
http://tibasicdev.wikidot.com/forum/t-184793/python-ti83-basic-converter

I see a LOT of potential for this Python script... but nothing much yet!
Later (if I have time), I will get started on the basic editor, assuming that there is demand for it. ;)

As for Ubuntu, does 10.04 work flawlessly? I always delay upgrading since there are potential bugs that may have been missed.
Title: Re: Axe Parser Comments and Questions
Post by: _player1537 on May 16, 2010, 10:08:22 pm
For me (I downloaded iirc the day it came out) I haven't run into any bugs.  everything seems to run a lot smoother than mint 8.  I would like the parser for the computer for axe.   And thank you for the program :)