npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

machan-script

v3.0.0

Published

MachanScript is a lightweight programming language written in Javascript.

Downloads

5

Readme

MachanScript

MachanScript is a adipoli 😎 programming language written in Javascript.

✨ Getting Started ✨

To start using MachanScript, follow these simple steps:

  1. Installation: Install MachanScript globally using npm:

    npm i -g machan-script

    Note :- Assuming that you have Node.js installed, if not please install before continuing

  2. Syntax Overview:

    • Machane!! : Every MachanScript file should start by calling Machan, or else the code will not run.
    • ithu varName = value aanu : Used to declare variables.
    • ithu const varName = value aanu : Used to declare constant variables.
    • ithu b = "Hello World" aanu : Used to declare strings.
    • ithu arr = [ 1 , 4 , 6 , 8 , 3 ] : Used to declare arrays.
    • ithu obj = { x : 100 , y : 200 , } aanu : Example of creating objects.
    • obj . x | obj . y : Accessing object properties.
  3. Examples:

    • Variable Declaration:

      ithu variableName = value aanu
      ithu const constantName = value aanu
    • Object Creation:

      ithu obj1 = { x : 100 , y : 200 , } aanu
      ithu const obj2 = { z : 300 , v : 400 , } aanu
    • Printing:

      para ( "Hello World!!" ) ;
      para ( "Sum: " ,  obj1 . x + obj2 . z ) ;
  4. Saving the file:

    • .ms : Save the file with .ms extension.

Native Functions

MachanScript provides the following native functions:

  • para ( message ) ; : Prints the message to the console.
  • input_eduku ( varName , prompt ) ; : Prompts the user to enter a value and assigns it to the variable specified by varName.
  • orangu ( milliseconds ) ; : It will synchronously pause the execution of other operations for the specified number of milliseconds before resuming.
  • veluthu ( arg1 , arg2...., varName ) ; : Returns the largest. We can either pass sperate values or an array or seperate values and an array. The returned value will be stored in the last passed varName.
  • cheruthu ( arg1 , arg2...., varName) ; : Same as of veluthu except it returns the smallest value
  • inathe_date ( boolVal , varName ) ; : Returns the date, if true it also returns the time, if we pass the varName the returned value will be stored in the new variable created.
  • vayiku ( file , varName ) ; : Prints the content in the file, if we pass the varName the returned content will be stored in the new variable created.
  • ezhuthu ( file , data ) ; : Stores the data we passed to the file. We can either directly pass a string or a variable containing a string,
  • random ( min , max , varName ) ; : Returns a random number between the min and max range, if we pass the varName the returned value will be stored in the new variable created.
  • fact ( number , varName ) ; : Returns the factorial of the number, if we pass the varName the returned value will be stored in the new variable created.

Control Statements

MachanScript supports the following control statements:

  • ipo : Used for conditional execution. Followed by a condition and a block of code to execute if the condition is true.
  • anengi : Marks the beginning of the block of code to execute if the condition in an ipo statement is true.
  • alengi : Marks the beginning of the block of code to execute if the condition in an ipo statement is false.
  • switch machane : Used for conditional execution. Different cases are declared by ipo value anengi and the default it set by onnum_alengi.

Loop Statements

MachanScript supports the following loop statements:

  • machane : Used to create while loops. Followed by a condition and a block of code to execute repeatedly as long as the condition is true.
  • avane and vare : Marks the beginning and end of the block of code to execute in a machane loop.
  • for machane : Used to create for loops. Followed by a condition and a block of code to execute repeatedly as long as the condition is true.
  • enit : Marks the beginning block of code to execute in a for machane loop.

Examples 😉

Conditional Execution ( ipo, anengi, alengi )

  • Usage:
Machane!!

ithu x = 5 aanu

ipo ( x < 10 ) anengi {

  para ( " x is less than 10 " ) ;

} alengi {

  para ( "x is greater than or equal to 10" ) ;

}

Conditional Execution ( swicth machane, ipo, anengi, onnum_alengi )

  • Usage:
Machane!!

input_eduku ( x , "Enter a number: ") ;

switch machane ( x ) {

  ipo 1 anengi {

    para ( " You selected 1 " ) ;

  }
  ipo 2 anengi {

    para ( " You selected 2 " ) ;

  }
  onnum_alengi {

    para ( "MachanScript" ) ;

  }
}

While Loop ( machane, avane, vare )

  • Usage:
Machane!!

ithu a = 1 aanu

machane ( a <= 5 ) avane vare {

  para ( a ) ;
  a = a + 1

}

For Loop ( for, machane, enit )

  • Usage:
Machane!!

for machane ( ithu i = 0 aanu : i < 5 : i = i + 1 ) enit {

   para ( i ) ;

}

Machan Native Functions

input_eduku

Usage :

Machane!!

input_eduku ( w , "Enter a number, a string or an array: ") ;
para ( w ) ;
para ( w [ 2 ] ) ; //arrays

orangu

Usage :

Machane!!

ithu b = 10 aanu
ithu c = 0 aanu

machane ( c <= b ) avane vare {

    para ( c ) ;
    orangu ( 2000 ) ;
    c = c + 1
}

cheruthu , veluthu

Usage :

Machane!!

ithu arr = [ 3 , 5 , 6 , 9 , 7 , 101 ] aanu

cheruthu ( arr , small ) ;
para ( small ) ;

veluthu ( arr , 12 , 4 , 65 , 1 , 100 , 99 , large ) ;
para ( large ) ;

innathe_date

Usage :

Machane!!

inathe_date ( ) ;
inathe_date ( true ) ;
inathe_date ( true , y ) ;
inathe_date ( false , x ) ;
para ( "date: " , x ) ;

vayiku

Usage :

Machane!!

vayiku ( "./test1.txt" ) ;
ithu filePath = "./test1.txt" aanu
vayiku ( filePath ) ;

ezhuthu

Usage :

Machane!!

ezhuthu ( "./test1.txt", "Hello") ;
ithu y = "./test1.txt" aanu
ithu x = "Hello" aanu
ezhuthu ( y , x ) ;

random

Usage :

Machane!!

random ( 1 , 5 ) ;
random ( 1 , 5 , a ) ;
para ( a ) ;

fact

Usage :

Machane!!

fact ( 4 ) ;
fact ( 4 , a ) ;
para ( a ) ;

Running Code 🚀

You can run MachanScript files from the command line using the following command:

machane filename.ms

VSCode Extension

The MachanScript extension enables syntax highlighting in VSCode.

Version History 📝

v0.1 (June-2024)

  • Initial release of MachanScript.
  • Basic functionality for variable declaration, object creation, and control statements.
  • Machan Native Functions like para, input_eduku, cheruthu, veluthu, inathe_date, vayiku, ezhuthu, random, fact, orangu.
  • Support for conditional execution with ipo, anengi, alengi, switch machane, oonum-alengi.
  • Support for while Loops with machane, avane, vare.
  • Support for for loops with for, enit.

Author 😁

MachanScript was created by GeorgeET15. You can find more about the him on GitHub, LinknedIn.