So it's an IDE for developing Axe programs, but typing on the computer?
That looks sweet. Linux ftw!
Wow, that was pretty fast.
It looks nice!
Consider highlighting some keywords like 'If', 'While', and ' Repeat'?
Wow, that was pretty fast.
It looks nice!
Consider highlighting some keywords like 'If', 'While', and ' Repeat'?
Yeah Michael, I just started the highlighter, but I will add those eventually :)
Cool!
Although I don't use Axe all too much, this sounds great, and might make me start using it more (keyboards are so much better than the TI-84 buttons)
Can't wait to see it finished!
Sigh, another project which does almost as much as mine, but gets 100x more attention... D: It looks pretty good so far though... :)
Advertising your own project in other people's project thread is not allowed either.Oh the new version, I think I was the one who tried it first :) It was good, don't worry.
Can't wait to try it! Downloading it right now :D
What OS are you running?
What OS are you running?
OSX
svn checkout http://croquette.googlecode.com/svn/trunk/ croquette-read-only
cd croquette
python croquette.py
What OS are you running?
OSX
You need SubVersion and Python installed, on the terminal this should work:Code: [Select]svn checkout http://croquette.googlecode.com/svn/trunk/ croquette-read-only
cd croquette
python croquette.py
:)
If it gives any errors post the output here.
What OS are you running?
OSX
What OS are you running?
OSX
(http://rr-bb.com/images/smilies/Puke.gif)
It starts to execute it but breaks when it tries to import wx for some reason ???
Linux AND Mac OS X can be bundled into a single executable (surprisingly)! :)
You just have to look a little closer and not be deceived by the names of projects. ;)
Meet PyInstaller (http://www.pyinstaller.org/). As such, the name can be quite deceiving. But this project isn't an installer - it's a python -> EXE converter! :D And by EXE I mean "system executable" - yup, this isn't limited to Windows. It is truly cross-platform - able to deploy Python programs to any user without lugging Python along! :D
As proof, here's a standalone executable in Linux. Extract, and make sure you make the program croquette executable! :)
Included is the PyInstaller v1.5 archive, as well as a convenient script to build a standalone binary. I built the Python source in r13.
http://dl.dropbox.com/u/1016340/croquette_linux_x86.zip
MD5SUM: 04b64b0e6db44310187285688d29e253
Size: 15 MB (Yes, it's big, but that's what happens when you build it into a standalone binary. PyInstaller says if you build the dependencies as static binaries, it can be compressed further.)
Unfortunately, you can't build to another platform - that is, building a Windows binary on Linux, a Mac OS X binary on Windows, etc. So you will need people with those OSes to build binaries for the project.
What OS are you running?
OSX
(http://rr-bb.com/images/smilies/Puke.gif)
This is not the topic to criticize OS choices.
What OS are you running?
OSX
(http://rr-bb.com/images/smilies/Puke.gif)
This is not the topic to criticize OS choices.
Hey dude, sorry if I offended anyone. I was just joking around.
To clarify, exes made on Linux are also compatible with Macs?
To clarify, exes made on Linux are also compatible with Macs?
QuoteTo clarify, exes made on Linux are also compatible with Macs?
Um, .exe's on Linux? Are you using WINE?
Woah, thanks a lot alberthrocks, just use his link to download Croquette IDE for Linux.Could you still release the Python source alone for those of us who already have Python and all of the necessary libraries installed? :)
I will (from now on) release separate binaries for all OSs on major versions.
Woah, thanks a lot alberthrocks, just use his link to download Croquette IDE for Linux.Could you still release the Python source alone for those of us who already have Python and all of the necessary libraries installed? :)
I will (from now on) release separate binaries for all OSs on major versions.
What OS are you running?
OSX
(http://rr-bb.com/images/smilies/Puke.gif)
What OS are you running?
OSX
(http://rr-bb.com/images/smilies/Puke.gif)
Please don't make it into more than it is.
ephan: Ah, sorry, didn't notice that. I think I'll checkout the repository when I want to try it :)
Also, you could try to add an ignore for .pyc files, since you probably don't want them in the repo.
Awesome stuff! :D For some reason, I've never figured out how to make my text control as fancy as that... :P
Awesome stuff! :D For some reason, I've never figured out how to make my text control as fancy as that... :Pephan is using an awesomesauce special text editor thingie specially designed for code. :)
I would still like a CLI only version, even if it's just importing the decoding library and calling it.That should be easy. For now, just run 'console.py' (get the version from the repository, not the downloads, which has a few bugs).
== Add option to detokenize into Axe OR Basic tokens. And as a plus, a menu option to instantly switch tokens to and from Axe! :DThat should be pretty easy.
== Solving the "token vs. letter" problem by catching keyboard and mouse input to avoid positioning the cursor in the middle of a token, and maybe coloring it as well? (optional, but pretty cool, and you guys will be the only one who has done it successfully... if you can, that is.) This will require a different file format specific to Croquette, like 8xpxml to distinguish letters from tokens.Hmm. This one might be a bit trickier.
== Intellisense :P Sounds insane, but my theory of Intellisense is that it's just a non-focused wxFrame, with a wxListBox inside it. If you guys manage to do it, you will gain quite a bit of notoriety from the wxWidgets community. :P (Again, this is optional, but something to aim for if you can do it! ;)) Also include a help box - something like VC++/VB, where they show a yellow box as you type telling you how to use the command.@ephan: doesn't wx.stc come with a bunch of autocompletion methods?
ephan is using an awesomesauce special text editor thingie specially designed for code. :)Ahh yes, just did some research on magical text boxes and found out that wxWidgets has a code text box - a Scintilla wrapper, which it seems you are using! :)
That should be easy. For now, just run 'console.py' (get the version from the repository, not the downloads, which has a few bugs).Got it. If you intend to make it in one file (as in croquette.py becomes both a GUI and CLI program), make sure you don't import wx! (If you do, trap the error with a try/catch statement.)
That should be pretty easy.Oh, cool! :) Yeah, the core code is pretty sophisticated - I know there's support, just no GUI option for it yet. ;)
Actually, even though Croquette is supposed to only work with Axe, it'll still convert TI-Basic tokens anyways. I don't encourage it (due to code-readability reasons), but you can mix and match Axe and Basic tokens freely, and still have it convert.
We'll look into adding a menu option for fully switching.
I can supply some code... unfortunately C++ (but the APIs for the wxPython are VERY much alike), but it should give you an idea. I haven't been tapping into Python's OOP part, but you should be able to derive classes (called subclasses?), and add input event hooks.Quote== Solving the "token vs. letter" problem by catching keyboard and mouse input to avoid positioning the cursor in the middle of a token, and maybe coloring it as well? (optional, but pretty cool, and you guys will be the only one who has done it successfully... if you can, that is.) This will require a different file format specific to Croquette, like 8xpxml to distinguish letters from tokens.Hmm. This one might be a bit trickier.
@ephan: doesn't wx.stc come with a bunch of autocompletion methods?Yes indeed! O_O This wxStyledTextCtrl is very, very fancy....
Oh, cool! Yeah, the core code is pretty sophisticated - I know there's support, just no GUI option for it yet.
Progress report:
Autocompletion is now working! Hooray!
Converting Axe to TI-Basic tokens (and vice versa) is now supported too.
I feel slightly uncomfortable with the code I wrote though (I feel like I re-invented too many wheels), so we might swap it out with what ephan used in his other project.
Alberthrocks, I am sorry but we're not using C++ for any part of the GUI, this is a pure Python project.Oh no no no, I'm not asking you guys to write it in C++! :P (That would be quite a pain!)
class RedButton(wx.Button):
def __init__(self, *a, **k):
wx.Button.__init__(self, *a, **k)
self.SetBackgroundColour('RED')
# more customization here
Every word that the user writes gets added to the list (a temporary list, it's over when the file is closed). Why? Because a lot of times we need to write the same thing more than once. In Axe, it's not so usual, because we don't have long variable names, but it's still useful sometimes with strings and commnts.
Wow, holy crap how did I miss this. This is amazing. Keep up the awesome work!
Bump ;D
Okay, I have a stupid bug.
This text, in the spoiler, in a .txt file, doesn't want to be converted.
I tried to copy/paste it into Croquette and save it; it freezes. D:
I tried to drag/drop it into TI Convert 0.5.1; it shows a blinking cursor on the command prompt. :(
When I delete all from ". DIVERS", it works (but the file is obviously not complete -.-°)
What to do ?Spoiler For Spoiler:
Could you try deleting lines from the end until you get it to work then post which lines work and which ones you had to remove?OK, I'll try, but I don't have a lot of time either :(, so my answer may come a long time after.
Yup, that's a bug.Necro, but... :P
I fixed it so that it will now the parser will ignore any characters it doesn't recognize instead of just hanging there.
I don't really have time to do make an exe until the weekend though (and do some other minor fixes) so if you need an update, just download a fresh copy from the repository.
Sure, that would be great!Yup, that's a bug.Necro, but... :P
I fixed it so that it will now the parser will ignore any characters it doesn't recognize instead of just hanging there.
I don't really have time to do make an exe until the weekend though (and do some other minor fixes) so if you need an update, just download a fresh copy from the repository.
I can provide builds for Linux and Windows if you want.
Also, can I submit patches to fix some of those issues on your bug tracker? :)
ITS SCREWIN' UP!
Edit: After like 5 attempts, it now works
Edit: NO IT DOESNT D:
/me slaps the creator
I think the new prgm is appearing somewhere on the memory list tho. But not in the prgms
I think the new prgm is appearing somewhere on the memory list tho. But not in the prgms
Lol, ok. It's not in the programs when I transfer it to the calc, but I think I found the file somewhere within the memory menu.
.EXMPL3D
.VARS
.POSITION
.{L1}, 6BYTES
.DIRECTION
.{L1+6}, 1BYTE
0->{L1}^^r->{L1+2}^^r->{L1+4}^^r
0->{L1+6}
ClrDraw
Repeat getKey(15)
.INIT CAMERA
{L1}^^r->{L2}^^r
{L1+2}^^r->{L2+2}^^r
{L1+4}^^r->{L2+4}^^r
{L1}^^r+cos({L1+6})->{L2+6}^^r
{L1+2}^^r+sin({L1+6})->{L2+8}^^r
1.0->{L2+10}^^r->{L2+16}^^r
0->{L2+12}^^r->{L2+14}^^r
INT()
.RENDER
ClrDraw
CVT(~1.0,5.0,0)
X->V
Y->W
CVT(1.0,5.0,0)
Line(V,W,X,Y)
DispGraph
.MOVE
If getKey(4)
cos({L1+6})**0.2+{L1}^^r->{L1}^^r
sin({L1+6})**0.2+{L1+2}^^r->{L1+2}^^r
End
If getKey(1)
cos({L1+6})**~0.2+{L1}^^r->{L1}^^r
sin({L1+6})**~0.2+{L1+2}^^r->{L1+2}^^r
End
If getKey(2)
{L1+6}++
End
If getKey(3)
{L1+6}--
End
End
Return
.ENGINE VARS:
.FROM VEC
.{L2}, 6BYTES
.TO VEC
.{L2+6}, 6BYTES
.UP VEC
.{L2+12}, 6BYTES
.TEMP VARS
.{L2+18}, 6BYTES
.CROSS VEC
.{L2+24}, 6BYTES
Lbl INT
{L2+6}^^r-{L2}^^r->{L2+6}^^r
{L2+8}^^r-{L2+2}^^r->{L2+8}^^r
{L2+10}^^r-{L2+4}^^r->{L2+10}^^r
sqrt(({L2+6}^^r)²+({L2+8}^^r)²+({L2+10}^^r)²)^^r->{L2+18}^^r
{L2+6}^^r**({L2+18}^^r)^^-1->{L2+6}^^r
{L2+8}^^r**({L2+18}^^r)^^-1->{L2+8}^^r
{L2+10}^^r**({L2+18}^^r)^^-1->{L2+10}^^r
{L2+12}^^r**{L2+6}^^r->{L2+18}^^r
{L2+14}^^r**{L2+8}^^r->{L2+20}^^r
{L2+16}^^r**{L2+10}^^r+{L2+18}^^r+{L2+20}^^r->{L2+18}^^r
{L2+12}^^r-({L2+18}^^r**{L2+6}^^r)->{L2+12}^^r
{L2+14}^^r-({L2+18}^^r**{L2+8}^^r)->{L2+14}^^r
{L2+16}^^r-({L2+18}^^r**{L2+10}^^r)->{L2+16}^^r
sqrt(({L2+12}^^r)²+({L2+14}^^r)²+({L2+16}^^r)²)^^r->{L2+18}^^r
{L2+12}^^r**({L2+18}^^r)^^-1->{L2+12}^^r
{L2+14}^^r**({L2+18}^^r)^^-1->{L2+14}^^r
{L2+16}^^r**({L2+18}^^r)^^-1->{L2+16}^^r
{L2+14}^^r**{L2+10}^^r-({L2+16}^^r**{L2+8}^^r)->{L2+24}^^r
{L2+16}^^r**{L2+6}^^r-({L2+12}^^r**{L2+10}^^r)->{L2+26}^^r
{L2+12}^^r**{L2+8}^^r-({L2+14}^^r**{L2+6}^^r)->{L2+28)^^r
Return
Lbl CVT
r1-{L2}^^r->r1
r2-{L2+2}^^r->r2
r3-{L2+4}^^r->r3
r1**{L2+6}^^r+(r2**{L2+8}^^r)+(r3**{L2+10}^^r)->{L2+18}^^r
{L2+18}^^r<<0->{L2+20}
(r1**{L2+24}^^r+(r2**{L2+26}^^r)+(r3**{L2+28}^^r))**({L2+18}^^r)^^-1->X
(r1**{{L2+12}^^r+(r2**{L2+14}^^r)+(r3**{L2+16}^^r))**({L2+18}^^r)^^-1->Y
Return