Calculator Community > The Axe Parser Project

Axe Parser

(1/445) > >>

Quigibo:
Axe Parser
Alpha 0.0.1

WARNING:
This is still an alpha version.  It is not stable and you should not run this on any calculator that has anything intellectually valuable in the RAM.  Just for liability reasons, I will also add that there is a non-zero possibility your archive might not be safe either.

Description:
It is a new programming language for the calculator.  It is typed directly into a program just like BASIC and with a similar syntax.  Unlike BASIC however, this is a compiled language, not an interpreted one.  The program gets compiled into an assembly program.  In the future you will be able to make Ion, MirageOS, and Doors programs; possibly apps too.

Advantages:
You basically get the simplicity of BASIC programming but with nearly the same size, speed, and compatibility of assembly programs.  You won’t need “Shells” or “Libraries” to run the programs.  They are just like any other assembly program.

Syntax:
It is similar to BASIC, but also very different.  First, it has an extremely loose syntax.  You know how you can leave the end parenthesis off of BASIC commands and do multiple same-line DelVars?  It’s like that on steroids (if you so choose).  For instance: the store “->” can be used in expressions like A+B->C+1->D so now C holds A+B and D holds A+B+1.

Differences With BASIC:
I will be re-defining a lot of commands.  Most are usually unused anyway, but some are not.  For instance, “DiagnosticOff” turns off the run indicator.  But “sub()” now runs a subroutine since you will be able to take characters from a string the same way you do with lists in the future.

Variables and Numbers:
All numbers and letters A-Z are 16-bit unsigned integers.  Unlike BASIC variables, they don’t reside in the user ram so they take up zero memory.  You might want to read about unsigned numbers on Wikipedia or something if you are not familiar with it.

User Defined Variables:
Things like strings, lists, sprites, and floats will be defined by the user.  However, I haven’t gotten to that point yet, but expect that soon.



There is no UI right now.  Select your program, which must be in RAM, from the list, which is not in alphabetical order, and it will compile into a program called “LOL”, you can’t name it right now.  I figured I’d get the compiler working before I get back to the UI.  I’ve also attached a document with the complete instruction set so far.

I’d like to hear your thoughts :)
I have too many ideas right now to put on paper.

DJ Omnimaga:
This is really nice. I also like that this programming language went further than planning stages so far, unlike many others I've seen in the TI community before. It also seems to be quite functional alerady so it's quite promising. I always dreamed of a TI-BASIC alike (or close) language that could be compiled into ASM code. I am sure a lot of people would use this for smaller games too, because not only they could easily do fast games, but they wouldn't even need to learn a new language from scratch, just some minor differences in yours. Plus the fact it uses the on-calc editor makes it even greater (providing they always keep a copy of their program archived or backed up on their comp in case they mess up), plus people can edit their code in TI-Graph Link or view it in SourceCoder.

Anyway, I read some of the progress so far in the past weeks when we talked on Yahoo and it's pretty promising and I am confident this project will reach states where we can build entire games with it and maybe even get finished. As soon as I heard about it, I told myself this is guaranteed to get a subforum when announced.

Quigibo:
Yes, I am hoping it will be all that and more.  ;)

By the way, since this is a lot to take in, here is an example program to simply display the "getkey" codes for each key (which are different from the BASIC getkey.  Its the GetCSC codes for all you asm programmers)

DJ Omnimaga:
In other words, the code in real TI-BASIC, omitting the command to disable the run indicator (since it's impossible without abusing ASM libs), would be:


--- Code: ---ClrHome
0->K
While K=/=15
Getkey->K
If K=/=0
ClrHome
Disp K
End:End
--- End code ---

In case anyone gets a bit confused at some of the order

Silver Shadow:
 :o
Amazing!

--- Quote from: Quigibo on February 01, 2010, 03:52:51 am ---Axe Parser
Alpha 0.0.1

WARNING:
This is still an alpha version.  It is not stable and you should not run this on any calculator that has anything intellectually valuable in the RAM.  Just for liability reasons, I will also add that there is a non-zero possibility your archive might not be safe either.
--- End quote ---
Thanks for warning us, I'll try it once I backup my calc files or finish Crystal Defenders.

Navigation

[0] Message Index

[#] Next page

Go to full version