Jaksel Script, Programming language very modern and Indonesian style

Overview

Jaksel Script

Jaksel Script is a new programming language, very modern, easy to learn, using Indonesia-slang language. No programming experience required.

Thank you for all your contributions, share, star, and everything.

Instalation & Run

Install from npm

npm install -g jaksel-language

Or Clone this repository

git clone https://github.com/RioChndr/jaksel-language.git

Run

If you install from npm, run jaksel script using jaksel command

jaksel example/example1.jaksel

Or run from this repository

node jaksel-interpreter.js example/example1.jaksel

Table Of Content

github-markdown-toc

Example

Example :

literally umur itu 21
spill "Umur lu " + umur
kalo umur lebih gede 20
  spill "Elu tua"
  literally umurgua itu umur + 10
  spill "Kalo gua umurnya " + umurgua
  kalo umurgua lebih gede 30
    spill "gua lebih tua"
  udahan
kalogak
  spill "dasar bocil"
udahan
spill "Udahan ah"
literally jumlah itu 10
spill "Jumlah: " + jumlah

whichis jumlah itu 11
spill "Jumlah: " + jumlah

literally isHidup itu positive vibes
spill "is hidup :" + isHidup

fomo i endup 10
  kalo i lebih gede 3
    spill "loop ke " + i
  udahan
udahan

Command

Some command just like javascript, the only different is keyword and this language will translate to javascript and run as javascript. I know, this is just for fun.

Disclaimer

This project just for fun, I don't want to hurt anyone. Just from idea "what if jaksel language is a programming language" and make it true. This project only for education purpose, not for production ready.

Showcase

Some cool project from you, submit your project like highlight text, jaksel-to-js, etc. Make PR link to your repo !. Don't limit your creativity

Highlight Text Editor

  • vim-jaksel jaksel programming language plugin for (n)vim
Comments
  • update cli and refactor

    update cli and refactor

    PR (pull request) ini mengandung update yang ada di PR #36 dengan sedikit perubahan dan perbaikan Isi PR ini :

    • update cli dan menambahkan command run dan compile
    • fixing bug di regex
    • penghapusan openGroup dan closeGroup supaya menghemat baris kode :v
    • edit readme.md
    • penambahan package [email protected] dan [email protected]

    preview cli: run single file image run multi file image compile singe file image compile multi file image hasil compile image

    hope you like this and thank you

    opened by hasheemi 6
  • Refactor code

    Refactor code

    This pull request is just refactoring code and a little bit of a change. I think we should refactor the code before getting bigger and more complicated. It provides better readability and maintainability.

    opened by reacto11mecha 5
  • add: proper executable

    add: proper executable

    Closes #12

    This pull request contains a feature that can run on the command line when you run jaksel <filename>. Just run the npm install command at the root of the project as a global package.

    npm i -g .
    

    And to remove just run this command

    npm rm -g jaksel-language
    
    opened by reacto11mecha 4
  • Implemented `for of loop`, `break`, and `continue`

    Implemented `for of loop`, `break`, and `continue`

    Hey, I hope this helps a little. Maybe the keyword that I chose can be changed later.

    Preview

    fomo semua foo dari bar
      kalo foo itu 3
        skip
      perhaps foo itu 5
        spill "Loop diakhiri"
        stop
      udahan
      spill foo
    udahan
    
    // transforms to
    for (const foo of bar) {
      if (foo == 3) {
        continue;
      } else if (foo == 5) {
        console.log("Loop diakhiri");
        break;
      }
      console.log(foo);
    }
    

    Fix : Variable naming rules (commit )

    opened by Andndre 3
  • Standard library untuk perpajakan

    Standard library untuk perpajakan

    Sebagai warga negara yang baik (™) we literally have to bayar pajak despite rada-rada ngeselin gitu...

    Awalnya gw mau bikin PPN, PB1, && i++ jadi kek konstan gitu, for example konstan _WIN32 and __linux__ yang ada di C gitu...

    Tapi, tapi kan... ngitung pajak kek PPh kan ribet, perlu liat paycheck gw berapa banyak lagi. Gw mau hal-hal sepele kek gini jadi gampang. Segampang klik "bayar" dan scan QR gitu...

    Maybe kita perlu bikin standard library with functions yang ngevibes sama pajak gitu?

    opened by reinhart1010 2
  • Security concern

    Security concern

    Hello 👋

    I run a security community that finds and fixes vulnerabilities in OSS. A researcher (@kerupuksambel) has found a potential issue, which I would be eager to share with you.

    Could you add a SECURITY.md file with an e-mail address for me to send further details to? GitHub recommends a security policy to ensure issues are responsibly disclosed, and it would help direct researchers in the future.

    Looking forward to hearing from you 👍

    (cc @huntr-helper)

    opened by benharvie 1
  • const params = paramNames?.trim().split(/\s+/) ?? [];

    const params = paramNames?.trim().split(/\s+/) ?? [];

    hallo bang kenapa di saya ketika saya jalankan untuk example1.jaksel muncul error

    /usr/lib/node_modules/jaksel-language/lib/logics/parser/functionDeclarationBegin.js:11 const params = paramNames?.trim().split(/\s+/) ?? []; ^ SyntaxError: Unexpected token '.' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object. (/usr/lib/node_modules/jaksel-language/lib/logics/index.js:10:34) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)

    saya menggunkaan node version 12.12, apakah tidak support di version node tersebut di beberapa command seperti

    jaksel example/example2.jaksel

    ataupun menggunakan command

    node jaksel-interpreter.js example/example2.jaksel

    opened by iqbalnur32 1
  • fix: fix flexing command

    fix: fix flexing command

    fs.readFileSync in jaksel-interpreter.js will yield different result when run on windows platform. see this stackoverflow answer

    we need to replace endline \r\n with \n to accomodate further parsing downstream.

    # run on windows
    # notice the `\r\n` does not exist in mac or linux. 
    {
      inputJaksel: 'literally umur itu 21\r\n' +
        'spill "Umur lu " + umur\r\n' +
        'kalo umur lebih gede 20\r\n' +
        '  spill "Elu tua"\r\n' +
        '  literally umurgua itu umur + 10\r\n' +
        '  spill "Kalo gua umurnya " + umurgua\r\n' +
        '  kalo umurgua lebih gede 30\r\n' +
        '    spill "gua lebih tua"\r\n' +
        '  udahan\r\n' +
        'kalogak\r\n' +
        '  spill "dasar bocil"\r\n' +
        'udahan\r\n' +
        'spill "Udahan ah"'
    }
    {
      cmdLines: [
        'literally umur itu 21',
        'spill "Umur lu " + umur\r',
        'kalo umur lebih gede 20\r',
        '  spill "Elu tua"\r',
        '  literally umurgua itu umur + 10\r',
        '  spill "Kalo gua umurnya " + umurgua\r',
        '  kalo umurgua lebih gede 30\r',
        '    spill "gua lebih tua"\r',
        '  udahan\r',
        'kalogak\r',
        '  spill "dasar bocil"\r',
        'udahan\r',
        'spill "Udahan ah"'
      ],
      cmds: [
        { exp: 'let umur = 21;' },
        { exp: 'console.log("Umur lu " + umur);' },
        { exp: 'if (umur  >  20\r)', openGroup: true },
        { exp: 'console.log("Elu tua");' },
        { exp: 'let umurgua = umur + 10\r;' },
        { exp: 'console.log("Kalo gua umurnya " + umurgua);' },
        { exp: 'if (umurgua  >  30\r)', openGroup: true },
        { exp: 'console.log("gua lebih tua");' },
        { exp: 'console.log("dasar bocil");' },
        { exp: 'console.log("Udahan ah");' }
      ],
      input: 'literally umur itu 21\r\n' +
        'spill "Umur lu " + umur\r\n' +
        'kalo umur lebih gede 20\r\n' +
        '  spill "Elu tua"\r\n' +
        '  literally umurgua itu umur + 10\r\n' +
        '  spill "Kalo gua umurnya " + umurgua\r\n' +
        '  kalo umurgua lebih gede 30\r\n' +
        '    spill "gua lebih tua"\r\n' +
        '  udahan\r\n' +
        'kalogak\r\n' +
        '  spill "dasar bocil"\r\n' +
        'udahan\r\n' +
        'spill "Udahan ah"',
    }
    
    opened by hkar19 1
  • fix/better call argument with string literal

    fix/better call argument with string literal

    This PR should fix #41

    This allows passing string into multi-parameter function

    Suppose we have function that takes 3 parameters

    so about fungsiMultiParam a b c
        spill "argumen pertama: " + a
        spill "argumen kedua: " + b
        spill "argumen ketiga: " + c
    thats it sih
    

    when we call

    literally nama2 itu "budi"
    
    call fungsiMultiParam 2 nama2 "hello world"
    

    it should outputs

    argumen pertama: 2
    argumen kedua: budi
    argumen ketiga: hello world
    

    it also support escaping quotes inside string literal

    literally nama2 itu "budi"
    
    call fungsiMultiParam 3 nama2 "and then Romeo says \"I love you\" to Juliet"
    

    it should outputs

    argumen pertama: 2
    argumen kedua: budi
    argumen ketiga: and then Romeo says "I love you" to Juliet
    
    opened by RayhanHamada 1
  • Bugs when passing string literal into multi-parameter function call

    Bugs when passing string literal into multi-parameter function call

    Currently i encounter some bugs when passing string literal into multi-parameter function call

    Suppose we have a function that takes 3 parameters

    so about fungsiMultiParam a b c
        spill "a: " + a
        spill "b: " + b
        spill "c: " + c
    thats it sih
    

    When fungsiMultiParam called like

    call fungsiMultiParam "hello" 4 5
    

    It outputs

    a: hello
    b: undefined // should be 4
    c: undefined // should be 5
    

    Or when i switch the position like such

    call fungsiMultiParam 3 "hello" 5
    

    It outputs

    a: 3
    b: undefined
    c: undefined
    

    It seems that only parse the first argument. Function with only one parameter works fine with string literal.

    opened by RayhanHamada 1
  • Unit Testing

    Unit Testing

    Karena sudah makin banyak function parsingnya. Perlu unit testing untuk menjaga stabilitas ini. Akan saya setup dulu unit testingnya

    • [x] varAssign
    • [ ] varReassign,
    • [ ] constAssign,
    • [ ] consoleLog,
    • [ ] conditionIf,
    • [ ] conditionElIf,
    • [ ] conditionElse,
    • [ ] conditionClose,
    • [ ] loopFor,
    • [ ] functionDeclarationBegin,
    • [ ] functionDeclarationEnd,
    • [ ] functionCall,
    • [ ] throwError,
    • [ ] tryFn,
    • [ ] catchFn,
    • [ ] finallyFn,

    related to #27

    opened by RioChndr 0
  • Logo Baru

    Logo Baru

    Logo ini dibuat untuk have fun :)

    Filosofi logo : bertulisan huruf handwriting, seperti lagi di cafe cafe kesukaan hyunger

    Link Download : https://www.mediafire.com/file/ec92h33pf7cfwnm/JakselCode-Logo.zip/file

    Disclaimer

    font didalam logo ini terdapat lisensi Free To Personal Use, jika untuk komersial harap bikin logo yang baru

    opened by MininxD 5
  • Add more keyword

    Add more keyword

    List command that 'maybe' need to add to this language.

    • [x] Function
    • [ ] Module Import
    • [ ] Module Export
    • [ ] Object
    • [ ] Class
    • [ ] Method in class
    • [ ] Promise, Resolve, Reject
    help wanted 
    opened by RioChndr 12
Releases(v1.1.0)
Owner
Rio Chandra
Nothing impossible
Rio Chandra
When a person that doesn't know how to create a programming language tries to create a programming language

Kochanowski Online Spróbuj Kochanowskiego bez konfiguracji projektu! https://mmusielik.xyz/projects/kochanowski Instalacja Stwórz nowy projekt przez n

Maciej Musielik 18 Dec 4, 2022
Holy Qur'an Telegram Bot with pagination and audio, in Indonesian language.

quran-telegram-bot Contributions are Welcome! Demo @fio_quran_bot Run Tested on Node.js v14.x.x with NPM v6.x.x, Windows 10 and Ubuntu 18.04.6 LTS. Cr

Rioze 5 Oct 21, 2022
Cookbook Method is the process of learning a programming language by building up a repository of small programs that implement specific programming concepts.

CookBook - Hacktoberfest Find the book you want to read next! PRESENTED BY What is CookBook? A cookbook in the programming context is collection of ti

GDSC-NITH 16 Nov 17, 2022
Write "hello world" in your native language, code "hello world" in your favorite programming language!

Hello World, All languages! ?? ?? Write "hello world" in your native language, code "hello world" in your favorite language! #hacktoberfest2022 How to

Carolina Calixto 6 Dec 13, 2022
List of jokes in English and Indonesian 👌

Jokes API Jokes API is a simple REST API for showing a list of jokes in English and Indonesia????. When to use ✨ Jokes API is a free online REST API t

Rades Pratama 8 Nov 13, 2022
Collection of job openings from Indonesian remote-friendly companies

id-wfa ???? This project scrapes job openings from Indonesian companies that have publicly announced that they provide WFA (work-from-anywhere) perks

Jacky Efendi 74 Dec 25, 2022
An exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes.

Stupid Database This is an exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes. None of this co

Fabio Akita 196 Dec 20, 2022
A Very Good Documentation Site created by the Very Good Ventures Team 🦄

Very Good Docs Site Developed with ?? by Very Good Ventures ?? A Very Good Docs Site created by the Very Good Ventures Team. Generated by the Very Goo

Very Good Open Source 8 Nov 2, 2022
The Javascript and canvas port of MarkovJunior : A Probabilistic Programming Language.

MarkovJunior.js MarkovJunior is a probabilistic programming language where programs are combinations of rewrite rules and inference is performed via c

nullday 17 Nov 15, 2022
A type programming language which compiles to and interops with type-level TypeScript

Prakaar Prakaar (hindi for "type") is a type programming language which compiles to and interops with type-level TypeScript. Prakaar itself is also a

Devansh Jethmalani 17 Sep 21, 2022
⚡ Extremely fast online playground for every programming language.

Riju Riju is a very fast online playground for every programming language. In less than a second, you can start playing with a Python interpreter or c

Radon Rosborough 845 Dec 28, 2022
Programming language makes by hobby <3

Joule Programming language makes by hobby <3 About It's a compiled programming language written in JavaScript :/. Codes compile into Assembly code tha

null 6 Feb 17, 2022
VSCode extension for the rickroll-lang programming language (incomplete)

Rickroll-Lang VSCode Extension The Rick Roll programming language is a rickroll based, process oriented, dynamic, strong, esoteric programming languag

Siddhesh Zantye 6 Oct 10, 2022
A Flow-based programming language for universal applications.

Hlang A Flow-based programming language for universal applications. Hlang aims to make programming easier, faster and more comfortable. It avoids codi

HSET 5 Dec 25, 2022
A programming language (WIP)

Umo programming language Concept Effect system (not implemented) Subtyping (not implemented) Opt-in shared mutability (not implemented) Gradual typing

Masaki Hara 15 Feb 25, 2022
One-stop Go+ programming language environment manager

InGop (Go+ language) One-stop Go+ programming language environment manager How do I learn the Go+ programming language quickly? Start with installatio

uiuing 15 Nov 21, 2022
An enhanced VSCode extension for the Move programming language.

Move Analyzer Plus Provides language support for the Move programming language. Install on the VSCode Extension Marketplace: Move Analyzer Plus on the

The Moving Company 10 Aug 12, 2022
Simple JSON parse/stringify for the Wren programming language

wren-json Simple JSON parse/stringify for the Wren programming language. Parses strict json and relaxed json Comments Unquoted keys Trailing commas St

.ruby 8 May 18, 2022