Jump to content

AutoIt3 Interpreter.


Mat
 Share

Recommended Posts

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
Link to comment
Share on other sites

whatever Edited by MvGulik

"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

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