Jump to content

Recommended Posts

Posted (edited)

Posted Image

Current version 1.0.2.9 released 09/12/2010 [ view changelog ] [ ]

Beta version 2.0.0.0 released 03/12/2010 [ No changelog ] [ ]

I recently decided to try out ruby, and was very surprised when I saw how they they set out the many advantages of being an interpreted language. Along with the usual reasons, they mentioned how it was shipped with 'interactive ruby', an interpreter. When they gave all the benefits of having an interpreter like this I couldn't resist the oppertunity to make AutoIt one. The result? The AutoIt3 Interpreter, Au3Int for short.

There are lots of things that were a bit of a pain to build in, and so the code is (although short) a bit more long and complex than I would've liked, but there are still a few useful tidbits in there... For example there is finally a good example of using _WinApi_OpenFile and CON, as well as setting the console window title which i've always wanted to do. The screenshot is a few versions out, I had to fix a few bugs, and build a few things in making it a nice and round 1.0.0.20 for the initial release (not least because it still takes a few tries before compiling :idea: )

Posted Image

Project page

Changelog

Downloads

Bug tracker

Mat

Edited by Mat
Posted

Nice!

However, isn't autoit supposed to be a dynamic language?

This works:

Local $a=10

While does generates some warnign and then gives subscript error:

$a=10

Too bad autoit doesn't support multiline statements in execute.. doesn't make any sense that it doesn't.

I actually made something similar like this with the public autoit source, it wasn't well received :idea:

Ps.

Python have this too!

Broken link? PM me and I'll send you the file!

Posted

This does what... like a shell for AutoIt (like cmd or PowerShell)? So would let you execute single lines of AutoIt code?

Yes. But it also does other stuff like allow you to have variables which are kept in memory. Technically you could build a GUI using this (I tried :idea: ).

Any change you got a lingering Au3Int.chm file laying around over there? (just checking)

Not quite yet... I'm working on it. Docs was never my strength.

Nice!

However, isn't autoit supposed to be a dynamic language?

This works:

Local $a=10

While does generates some warnign and then gives subscript error:

$a=10

Too bad autoit doesn't support multiline statements in execute.. doesn't make any sense that it doesn't.

I actually made something similar like this with the public autoit source, it wasn't well received :)

The warning is me unsure you want to test if a=10 or if you want a=10... the default was for an bool to be returned so a built a bit more in as It was annoying, and I'd already told it to throw a warning if you tried to redeclare a variable (although it would reassign it).

You can use the '_' to continue lines if you want... Loops and functions will probably never be there.

The subscript error is the last thing I expected... I will look into it.

Posted

Nice!

However, isn't autoit supposed to be a dynamic language?

This works:

Local $a=10

While does generates some warnign and then gives subscript error:

$a=10

Too bad autoit doesn't support multiline statements in execute.. doesn't make any sense that it doesn't.

I actually made something similar like this with the public autoit source, it wasn't well received :idea:

Ps.

Python have this too!

HAHAHAHAHAHA You just hit the jackpot. I was using $a in the script... There I was looking for a bug.
Posted

HAHAHAHAHAHA You just hit the jackpot. I was using $a in the script... There I was looking for a bug.

Heh :idea:

Enforce a name mangling scheme, so this tragedy won't happen again!

Broken link? PM me and I'll send you the file!

Posted

Heh :idea:

Enforce a name mangling scheme, so this tragedy won't happen again!

I was going to but never got round to it. Maybe I will now :)

Google code says:

Uploads are temporarily disabled. Please try again Later.

perfect timing.

Posted

Fine.

HAHAHAHAHAHA You just hit the jackpot.

I'm too. Try this:

msgbox(0,"",$sInput)

BTW {Up} key allows to get previous command. {Alt-Space} menu is also working and you can insert command from outside very easy.

The point of world view

Posted (edited)

Download updated. Helpfile is minimal, but has what you need.

A few bugs fixed:

  • 'local $a = 10' will now show a return value of '10' as it should.
  • Variables names are now long and complex so no-one will mess with them.

Edit: That should fix yours too Valery.

Edited by Mat
Posted (edited)

Awesome!! Thank you very Much Mat

Fire,

Thanks for the reply, but if you want to post a link to a user just use:

[member='Mat']

and you get:

Mat

Which is much easier than finding out what my user ID is (and it shows the tooltip as 'Member profile' rather than 'External link').

Edited by Mat
Posted

What are the advantages of this over normal .au3 scripts?

This you can see what's happening step by step, and hence test code without having to do too much.

I hate having to make lots of au3's, as I am not very tidy, and so I have last years ideas that never worked hidden all over the place. With this, I can test a theory without having to have any ode first.

Posted

Also, it makes learning some things a more hands-on experience. Very cool, Mat!

hands-on is a good way of putting it. I wish i'd thought of that :)

Thanks for all the comments... It's nice to have lots of comments but only a few bugs :idea:

I was also thinking of a new tutorial based on this page as I find that is a great way to learn.

Posted

Google has now officially screwed up big time. The bugs I said have been fixed (which have been) are not fixed in the download. Google code has taken the decision to ignore my new uploads, so the old zip is still there, and the only reason I found out is because I tried the download... :idea::):(

files should be downloaded from here until I get that fixed.

Posted

I had an idea for executing multi-line code this morning while driving to work. It would be kind of a one shot deal, but... the idea is to have a line continuation character that your interpreter would process, then write out a temp script in @TempDir or something, then execute the script. I would think that ; (semicolon) would work, since a shell has no use for comments. Then you could do something like this:

> Func _MyMsg();MsgBox(0, "Function", "Hi there.");EndFunc;_MyMsg()

You'd have to watch out for ; in literal strings, but you get the idea.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...