SA-MP Forums Archive
[Include] y_tho - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Filterscripts (https://sampforum.blast.hk/forumdisplay.php?fid=17)
+---- Forum: Includes (https://sampforum.blast.hk/forumdisplay.php?fid=83)
+---- Thread: [Include] y_tho (/showthread.php?tid=656015)



y_tho - Y_Less - 05.07.2018

y_tho
Introduction

Have you ever wished pawn wasn’t so C-like? Would you much prefer to script in the superior language of unix shell scripting? Well now you can! y_tho brings pawn syntax in to the 22nd century, with new keywords such as esac, fi, and many many more; just take a look:

Examples

Before:

Code:
for (new i = 0; i != 10; ++i)
{
    printf("i is %d", i);
}
Now:

Code:
for i in {0 .. 10}
do
    echo i is %d, i
done
Before:

Code:
if (playerid < 7)
{
    SetPlayerPos(playerid, 0.0, 0.0, 4.0);
}
Now:

Code:
if [ playerid -lt 7 ]
then
    SetPlayerPos playerid, 0.0, 0.0, 4.0
fi
Before:

Code:
switch (boss)
{
    case 5:
    {
        printf("boss is 5");
    }
    case 10:
    {
        printf("boss is 10");
    }
}
Now:

Code:
switch boss of
case 5)
    printf("boss is 5");
case 10)
    printf("boss is 10");
esac
All syntax

if/elif/else

Code:
if [ i -gt 5 ]
then
    echo "i is %d", i
elif [ i -eq 5 ]
then
    echo i is 5
else
    echo "i is something else"
fi
for (range)

Code:
for j in {7 .. 11}
do
    echo j is %d, j
done
Note that this syntax will declare j as new.

for (arithmetic)

Code:
for ((k = 10; k != 100; ++k))
do
    echo k is %d, k
done
while

Code:
while [ i -lt 10 ]
do
    echo "i is %d", i
    ++i
done
until (!while)

Code:
until [ i -eq 15 ]
do
    echo "i is %d", i
    SetPlayerPos i, 0.0, 0.0, 4.0
    ++i
done
switch

Code:
switch i of
case 5)
    echo i is 5
case 10)
    echo i is 5
default)
    echo i is %d, i
esac
Note that this doesn’t QUITE match the bash case syntax for technical reasons .

echo

Code:
echo Hello world
echo "How are you?"
echo "The answer is %d", 42
comparisons
Semi-colons

These are now optional:

Code:
SetPlayerPos(playerid, 0.0, 0.0, 4.0)
Bonus

If you are using the new (community) compiler (which you really should be - it is available here: https://github.com/pawn-lang/compiler/releases), brackets are also optional:

Code:
SetPlayerPos playerid, 0.0, 0.0, 4.0
Note that they’re never required on echo regardless of your compiler.

y_tho?

y_not?

Seriously, why though?

Because people kept joking about me writing a library called “y_tho”, so I did.

Installation

I’m slightly apprehensive about even giving you the link to this, but here:

https://github.com/Y-Less/y_tho

It is also available through sampctl (another tool you should get from here: http://sampctl.com/) here:

Code:
sampctl package install Y-Less/y_tho
Include in your code and begin using the library:

Code:
#include <y_tho>



Re: y_tho - Graber - 05.07.2018

woah


Re: y_tho - iAmir - 05.07.2018

<when dreams come true>

waiting for y_not library, love `if-fi` part !


Re: y_tho - BigETI - 05.07.2018

nice, finally


Re: y_tho - J0sh... - 05.07.2018

been waiting for this legendary include... now waiting for y_not


Re: y_tho - Kaperstone - 05.07.2018

makes me want to grind potatoes.


Re: y_tho - TommyB - 05.07.2018

I can't believe it.


Re: y_tho - Exhibit - 05.07.2018

y_tho?


Re: y_tho - Codeah - 05.07.2018

10/10. Thank you for blessing us with this amazing include!


Re: y_tho - [HLF]Southclaw - 05.07.2018

This will spruce up my releases, implementing it everywhere right now.