Jump to content

A cross-platform implementation of the AutoIt language


How interested are you?  

61 members have voted

  1. 1. How interested are you?

    • I am willing to work on the code
    • I am willing to help with testing
    • I would love to see this becoming a reality
    • Nah mate, I don't think this is a good idea


Recommended Posts

Thanks for testing and for the advice @argumentum, I wanted to quickly put out something that people can try, so this is not really a proper release, that is why you found a lack of any instructions in the downloads. Next time I will definitely put some more effort into it :D

6 hours ago, argumentum said:

took me some time to "get it".

Yeah, I can completely understand, I find this method of outputting data awkward too, but I couldn't come up with anything better without adding more dependencies... originally I wanted the program to output the data in the JSON format, but since that requires me to use a library, I decided against that. Maybe in the future I will include JSON output :)

Right now the program will just print out all of the tokens in my own DIY format. Also, you might find the token type "Word" a bit confusing, this is because I use the same type of token for both keywords (like If, While, Do, For, Break, Switch etc.) and functions (MsgBox) as they technically share the same syntax. During further parsing, these words will be properly split into functions and keywords.

6 hours ago, argumentum said:

( i don't know Linux, I think is called a bash file )

You are pretty close, there are many names for it in *nix land, but the most technically accurate term is shell script, because it is a script which is ran by a shell. A shell is nothing but a program which takes commands from the user in a terminal.

Windows is a bit of a special case, because it has cmd.exe which acts both as a virtual terminal emulator (the black window) and as the command shell, atleast that is what I think is happening in Windows. In Linux we have a more obvious separation, we have different programs for the terminal and different shell programs that we can use according to our preferences.

The overwhelming majority in Linux use the bash shell, so you are not really wrong ;)

6 hours ago, argumentum said:

Other than that, kudos.

Thanks!

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

5 minutes ago, TheDcoder said:

I find this method of outputting data awkward too, ... ... originally I wanted the program to output the data in the JSON format, ... ... Maybe in the future I will include JSON output

Forget about JSONing anything. The token output is a tool while coding. Is fine as is. In any case those tokens are never going to see the light of day in the finished product anyway.

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

@argumentum You are right, JSON is just a potential format to output data, and I agree that the tokens are probably never going to see the light of the day... so JSON is pretty low on the priority list. However I will eventually add it as an output option for the final parsed source tree but that is far in the future.

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

On 7/4/2020 at 4:02 PM, TheDcoder said:

Right now the interface is very simple

You wouldn't believe how long I was waiting for a GUI to pop up... I agree with argumentum, a batch file would be great :D

What are the requirements for running this on Linux? I have a Raspberry Pi or two I could boot up and test with

All my code provided is Public Domain... but it may not work. ;) Use it, change it, break it, whatever you want.

Spoiler

My Humble Contributions:
Personal Function Documentation - A personal HelpFile for your functions
Acro.au3 UDF - Automating Acrobat Pro
ToDo Finder - Find #ToDo: lines in your scripts
UI-SimpleWrappers UDF - Use UI Automation more Simply-er
KeePass UDF - Automate KeePass, a password manager
InputBoxes - Simple Input boxes for various variable types

Link to comment
Share on other sites

43 minutes ago, avikdhupar said:

And where are the binaries for MacOS?

Where they always are .... according to Ronald.

Spoiler

In the carpark just after the drive thru. Where the rubbish from Maccos can always be found. :muttley:

 

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

5 hours ago, seadoggie01 said:

What are the requirements for running this on Linux? I have a Raspberry Pi or two I could boot up and test with

The pre-built binary that I uploaded cannot be run on RPi as it uses a different processor architecture (ARM). So you will have to compile the code yourself, you just need a C compiler and CMake, then you are on your way to compiling the code. Here are some simple commands that should get you started:

$ git clone https://github.com/DcodingTheWeb/EasyCodeIt.git
$ cd EasyCodeIt
$ mkdir build && cd build
$ cmake ..
$ make
2 hours ago, TheSaint said:

Where they always are .... according to Ronald.

I don't see the post that you quoted, has it been removed? :think:

2 hours ago, bakdlpzptk said:

Just one Question: Is MacOS not a cross-platform candidate. And why?

Mac is currently not a target because I don't have any Apple devices, I have never used them in my life. That being said, it should be easy enough to compile the current version for MacOS, and in the future it might be easy enough to have a separate MacOS fork maintained by 3rd-party developers with mac experience. I also welcome hardware donations :D

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

3 minutes ago, TheDcoder said:

has it been removed

Yup, the poster posted spam afterwards.

Hmm... okay, I'll see what I can do with that tonight... I've never compiled anything from source before, that's cool!

All my code provided is Public Domain... but it may not work. ;) Use it, change it, break it, whatever you want.

Spoiler

My Humble Contributions:
Personal Function Documentation - A personal HelpFile for your functions
Acro.au3 UDF - Automating Acrobat Pro
ToDo Finder - Find #ToDo: lines in your scripts
UI-SimpleWrappers UDF - Use UI Automation more Simply-er
KeePass UDF - Automate KeePass, a password manager
InputBoxes - Simple Input boxes for various variable types

Link to comment
Share on other sites

@TheDcoder -  Both avikdhupar (who I quoted) and bakdlpzptk (who you quoted) would appear to be spammers .... even though they both registered long ago. There certainly aren't many posts by them in all that time, so they are indeed suspicious to my mind. I wouldn't be surprised if they were both the same person.

avikdhupar did two posts here about MacOS, which I see now have been removed. Too much of a coincidence to my mind for another similar post to have then later appeared by bakdlpzptk.

 

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

13 hours ago, seadoggie01 said:

Hmm... okay, I'll see what I can do with that tonight... I've never compiled anything from source before, that's cool!

Nice, good luck! Do post any issues that you encounter during compilation, I will try to help :)

2 hours ago, TheSaint said:

Both avikdhupar (who I quoted) and bakdlpzptk (who you quoted) would appear to be spammers

I find that to be very strange, why would a spammer have accounts back from 2008? and why would they post in a legitimate thread such as mine before posting spam? And I see that @bakdlpzptk is still here, no spam posts in their account.

2 hours ago, TheSaint said:

avikdhupar did two posts here about MacOS, which I see now have been removed. Too much of a coincidence to my mind for another similar post to have then later appeared by bakdlpzptk.

bakdlpzptk might be simply inspired by what was said by avikdhupar, and decided to ask. I do wonder what kind of spam was posted... maybe their computers were infected with spamware :think:

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

6 hours ago, TheDcoder said:

I find that to be very strange, why would a spammer have accounts back from 2008?

When a spammer makes an account, it only gets removed if discovered.

I am guessing you did not look at their post count and wonder why so few in all that time. Not to mention the amazing coincidence of two members who have barely ever posted in all that time, being motivated to post in this topic around the same time ... it being a hugely popular topic to be drawn to and all.

Then there are those who create multiple accounts.
bakdlpzptk and avikdhupar are quite similar nonsense seeming names too ... the kind that might be created by a bot.

P.S. Some spam is obvious, others not. The removed spam post, was just a link seemingly related to there not being any MacOS binaries. Even a normal seeming post can be spam if it wasn't posted for a genuine reason (genuine reason not being the same as genuine sounding). bakdlpzptk joined in 2008 and the only post they have made in all that time is here ... can you really ImagineIt was genuine?

Edited by TheSaint

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

29 minutes ago, TheSaint said:

The removed spam post, was just a link seemingly related to there not being any MacOS binaries.

This definitely sounds like a scam, and I have no idea about the user as I have never seen them. Was this user back from 2008 too?

30 minutes ago, TheSaint said:

I am guessing you did not look at their post count and wonder why so few in all that time.

I did, and it is pretty amazing that my post was able to attract old members and make them post their first post here.

31 minutes ago, TheSaint said:

Not to mention the amazing coincidence of two members who have barely ever posted in all that time, being motivated to post in this topic around the same time

The first bit is indeed a good coincidence, but they part about motivation can easily be explained (as I did, in my previous post). @bakdlpzptk looks legitimate to me, they haven't made any spam post and their query is fully legitimate... not to mention the fact that they have had their account from 2008, not something a spammer is likely to have.

Any comments on this @bakdlpzptk?

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

  • Developers

Guys,

Don't worry, all of the above was already know when we approved the post, but we will indeed only ban accounts when a violation is made.
Let's just go back to the topic at hand and just report when you see something wrong. ;) 

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

2 hours ago, TheSaint said:

can you ImagineIt

Still pushing hard for that name change, huh? :D

All my code provided is Public Domain... but it may not work. ;) Use it, change it, break it, whatever you want.

Spoiler

My Humble Contributions:
Personal Function Documentation - A personal HelpFile for your functions
Acro.au3 UDF - Automating Acrobat Pro
ToDo Finder - Find #ToDo: lines in your scripts
UI-SimpleWrappers UDF - Use UI Automation more Simply-er
KeePass UDF - Automate KeePass, a password manager
InputBoxes - Simple Input boxes for various variable types

Link to comment
Share on other sites

3 hours ago, TheDcoder said:

looks legitimate to me, they haven't made any spam post and their query is fully legitimate... not to mention the fact that they have had their account from 2008, not something a spammer is likely to have.

Gawd bud, I already explained all that. :blink:

But lets do as Jos says. And I won't mention anything more about your imaginary fan(s). :D

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

19 hours ago, TheDcoder said:

I also welcome hardware donations

Now we see your true motivation. Just ImagineIt. :muttley:

EasyCodeIt for sure ..... look at all the trouble argumentum and seadoggie01 had. :lol:

Anyway bud, ignore me while I wait for the easy bits .... and keep up the good work ... good to see you are now gaining in the polls. :)

Edited by TheSaint

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

  • 3 weeks later...

Many years ago, when the world was still young, I worked on something similar... I never finished it and I added many new features to the language so it’s more like a derivative language.

Anyways, the code (including compiler and runtime) is publicly available on GitHub: https://github.com/andreasjhkarlsson/ai5 maybe it will provide useful for your project. 

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

Link to comment
Share on other sites

@monoceres Thank you for sharing! I am sure the project has immense value, I will make sure to study the code sometime to get ideas and inspirations :)

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

  • 2 months later...

Hey everyone, just got back from my 2 month break from posting in this topic, LOL :muttley:

Before you add this project to the long list of other "AutoIt wannabe languages", let me tell you that I am still actively thinking about how to progress forward ;).

As a matter of fact, the reason for the delay is that I got busy with another freelance project and so I haven't been able to concentrate on this project with that and all the other good stuff in life.

Today I would like to break the silence by reporting on some progress I made while I was quiet.

--

I have started work on the next step of parsing, which is syntactic analysis, i.e taking those tokens and building the actual code tree so that the interpreter/compiler can know what the code is trying to do.

Before I could start writing code to do that, I need to get all the tokens in a neat array, so I implemented a linked list to do just that... a linked list is a kind of dynamic array, to which elements could be added/removed easily compared to traditional arrays: https://github.com/DcodingTheWeb/EasyCodeIt/commit/5c43ffd392e8a2c26d9187767298167cf2de66c2

I also modified the output code to work with the new dynamic array instead of getting the tokens one-by-one and printing them without storing anything in the memory, and I have also added a neat feature which lets the user know in advance if there are any unknown tokens in the code, which was previously not possible :). Here is some sample output:

ConsoleWrite("This script has an unknown token" & @CRLF)

% ; Here it is
!!! WARNING: Unknown token(s) encountered !!!
---### TOKEN ###---
Type: Word
Data: ConsoleWrite
---### TOKEN ###---
Type: Bracket
Data: (
---### TOKEN ###---
Type: String
Data: This script has an unknown token
---### TOKEN ###---
Type: Operator
Data: &
---### TOKEN ###---
Type: Macro
Data: CRLF
---### TOKEN ###---
Type: Bracket
Data: )
---### TOKEN ###---
Type: Unknown
Data: %
---### TOKEN ###---
Type: Comment
Data:  Here it is

 

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

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

×
×
  • Create New...